Browse Source

1. Added spanish localization

master
Rubenlagu 11 years ago
committed by Rubenlagus
parent
commit
aa94a2ead8
  1. 629
      .idea/workspace.xml
  2. 47
      src/main/java/org/telegram/SenderHelper.java
  3. 56
      src/main/java/org/telegram/methods/SendSticker.java
  4. 167
      src/main/java/org/telegram/services/Emoji.java
  5. 18
      src/main/java/org/telegram/services/LocalisationService.java
  6. 72
      src/main/java/org/telegram/services/WeatherService.java
  7. 6
      src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
  8. 4
      src/main/java/org/telegram/updatesreceivers/UpdatesThread.java
  9. 22
      src/main/resources/localisation/strings.properties
  10. 31
      src/main/resources/localisation/strings_es.properties

629
.idea/workspace.xml

@ -1,12 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="cc3252dd-ba1f-404e-b603-ef880b5c3341" name="Default" comment="">
<list default="true" id="cc3252dd-ba1f-404e-b603-ef880b5c3341" name="Default" comment="1. Fix filesbot bug &#10;">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/services/Emoji.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/localisation/strings_de.properties" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/localisation/strings_es.properties" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/localisation/strings_pt.properties" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/Main.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/Main.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendSticker.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendSticker.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/localisation/strings.properties" afterPath="$PROJECT_DIR$/src/main/resources/localisation/strings.properties" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
<ignored path="BotAPi.iws" />
@ -35,7 +45,45 @@
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="118" column="13" selection-start-line="118" selection-start-column="13" selection-end-line="118" selection-end-column="13" />
<caret line="148" column="0" selection-start-line="148" selection-start-column="0" selection-end-line="148" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="strings_es.properties" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings_es.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.3448277">
<caret line="20" column="98" selection-start-line="20" selection-start-column="98" selection-end-line="20" selection-end-column="98" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="strings.properties" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.446429">
<caret line="30" column="49" selection-start-line="30" selection-start-column="49" selection-end-line="30" selection-end-column="49" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="SenderHelper.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.3333335">
<caret line="38" column="0" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
<folding />
</state>
</provider>
@ -44,43 +92,61 @@
<file leaf-file-name="WeatherHandlers.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.4017857">
<caret line="34" column="34" selection-start-line="34" selection-start-column="34" selection-end-line="34" selection-end-column="34" />
<state vertical-scroll-proportion="0.27631578">
<caret line="7" column="8" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
<folding>
<marker date="1437345643000" expanded="true" signature="46:709" placeholder="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="LocalisationService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="54" column="27" selection-start-line="54" selection-start-column="27" selection-end-line="54" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BotConfig.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java">
<file leaf-file-name="TransifexHandlers.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="5" column="29" selection-start-line="5" selection-start-column="29" selection-end-line="5" selection-end-column="29" />
<caret line="35" column="38" selection-start-line="35" selection-start-column="38" selection-end-line="35" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Main.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.java">
<file leaf-file-name="Commands.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Commands.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="29" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<caret line="43" column="31" selection-start-line="43" selection-start-column="31" selection-end-line="43" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BotLogger.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java">
<file leaf-file-name="FilesHandlers.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="56" column="34" selection-start-line="56" selection-start-column="34" selection-end-line="56" selection-end-column="34" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<caret line="71" column="24" selection-start-line="71" selection-start-column="24" selection-end-line="71" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BotConfig.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="13" column="80" selection-start-line="13" selection-start-column="80" selection-end-line="13" selection-end-column="80" />
<folding />
</state>
</provider>
</entry>
@ -92,6 +158,7 @@
<list>
<option value="Interface" />
<option value="Class" />
<option value="Enum" />
</list>
</option>
</component>
@ -119,11 +186,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendPhoto.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/GetUserProfilePhotos.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendMessage.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/games/FivesTools.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/UpdatesThread.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/Server.java" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/RestApi.java" />
@ -153,23 +215,28 @@
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/GetUpdates.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/TransifexService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/database/DatabaseManager.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/database/CreationStrings.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/CustomMessages.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/Commands.java" />
<option value="$PROJECT_DIR$/src/main/resources/localisation/strings.properties" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/Main.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendSticker.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/EmojiService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/Emoji.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" />
<option value="$PROJECT_DIR$/src/main/resources/localisation/strings_pt_pt.properties" />
<option value="$PROJECT_DIR$/src/main/resources/localisation/strings.properties" />
<option value="$PROJECT_DIR$/src/main/resources/localisation/strings_es.properties" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java" />
</list>
</option>
</component>
@ -301,7 +368,6 @@
<sortByType />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
@ -360,6 +426,10 @@
<option name="myItemId" value="localisation" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Resource Bundle 'strings'" />
<option name="myItemType" value="com.intellij.lang.properties.projectView.ResourceBundleNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@ -447,6 +517,36 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="BotAPi" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="BotAPi" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="telegram" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="methods" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="BotAPi" />
@ -479,6 +579,7 @@
</PATH>
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="Scope" />
</panes>
</component>
@ -493,7 +594,7 @@
<property name="options.lastSelected" value="File.Encoding" />
<property name="options.splitter.main.proportions" value="0.3" />
<property name="options.splitter.details.proportions" value="0.2" />
<property name="settings.editor.selected.configurable" value="reference.projectsettings.compiler.javacompiler" />
<property name="settings.editor.selected.configurable" value="File.Encoding" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="aspect.path.notification.shown" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
@ -516,6 +617,7 @@
<recent name="org.telegram.services" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/resources/localisation" />
<recent name="$PROJECT_DIR$/src/main/java/org/telegram/services" />
<recent name="$PROJECT_DIR$/src/main/resources" />
<recent name="$PROJECT_DIR$/src/main/java/org/telegram" />
@ -905,7 +1007,11 @@
<workItem from="1435347109974" duration="3390000" />
<workItem from="1435513506044" duration="8978000" />
<workItem from="1435530470766" duration="806000" />
<workItem from="1435611753936" duration="412000" />
<workItem from="1435611753936" duration="4989000" />
<workItem from="1435777532316" duration="394000" />
<workItem from="1435786919421" duration="5772000" />
<workItem from="1436699650076" duration="253000" />
<workItem from="1437342132224" duration="2615000" />
</task>
<task id="LOCAL-00001" summary="First Commit:&#10;1. Transifex bot&#10;2. Weather bot">
<created>1434854005227</created>
@ -1075,11 +1181,35 @@
<option name="project" value="LOCAL" />
<updated>1435531042174</updated>
</task>
<option name="localTasksCounter" value="29" />
<task id="LOCAL-00029" summary="1. Refactor weatherbot">
<created>1435612308869</created>
<option name="number" value="00029" />
<option name="project" value="LOCAL" />
<updated>1435612308869</updated>
</task>
<task id="LOCAL-00030" summary="1. Refactor directionsbot&#10;">
<created>1435612610051</created>
<option name="number" value="00030" />
<option name="project" value="LOCAL" />
<updated>1435612610051</updated>
</task>
<task id="LOCAL-00031" summary="1. Refactor filesbot&#10;">
<created>1435612816385</created>
<option name="number" value="00031" />
<option name="project" value="LOCAL" />
<updated>1435612816385</updated>
</task>
<task id="LOCAL-00032" summary="1. Fix filesbot bug &#10;">
<created>1436699817668</created>
<option name="number" value="00032" />
<option name="project" value="LOCAL" />
<updated>1436699817668</updated>
</task>
<option name="localTasksCounter" value="33" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="118758000" />
<option name="totallyTimeSpent" value="132369000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@ -1104,21 +1234,22 @@
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.39285713" sideWeight="0.4879154" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.27793697" sideWeight="0.5120846" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.19561933" sideWeight="0.1718377" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32857144" sideWeight="0.49697885" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3295129" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Dynamic Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3295129" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32930514" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.19561933" sideWeight="0.8281623" order="0" side_tool="false" content_ui="combo" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3295129" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32857144" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3939828" sideWeight="0.4879154" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3295129" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
@ -1164,7 +1295,6 @@
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="First Commit:&#10;1. Transifex bot&#10;2. Weather bot" />
<MESSAGE value="First Commit:&#10;1. Fix pom.xml and related&#10;2. First files vault verions" />
<MESSAGE value="1. Fix pom.xml and related" />
<MESSAGE value="1. Files bot&#10;2. Locations for weatherbot" />
@ -1186,14 +1316,18 @@
<MESSAGE value="1. Several fixes" />
<MESSAGE value="1. Localization" />
<MESSAGE value="1. Fix" />
<option name="LAST_COMMIT_MESSAGE" value="1. Fix" />
<MESSAGE value="1. Refactor weatherbot" />
<MESSAGE value="1. Refactor directionsbot&#10;" />
<MESSAGE value="1. Refactor filesbot&#10;" />
<MESSAGE value="1. Fix filesbot bug &#10;" />
<option name="LAST_COMMIT_MESSAGE" value="1. Fix filesbot bug &#10;" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java</url>
<line>131</line>
<line>135</line>
<properties />
<option name="timeStamp" value="36" />
</line-breakpoint>
@ -1209,47 +1343,71 @@
<properties />
<option name="timeStamp" value="84" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java</url>
<line>105</line>
<properties />
<option name="timeStamp" value="134" />
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java</url>
<line>99</line>
<properties />
<option name="timeStamp" value="135" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java</url>
<line>115</line>
<line>66</line>
<properties />
<option name="timeStamp" value="138" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java</url>
<line>92</line>
<line>60</line>
<properties />
<option name="timeStamp" value="141" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java</url>
<line>72</line>
<line>57</line>
<properties />
<option name="timeStamp" value="142" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java</url>
<line>301</line>
<properties />
<option name="timeStamp" value="148" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java</url>
<line>170</line>
<properties />
<option name="timeStamp" value="150" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java</url>
<line>167</line>
<properties />
<option name="timeStamp" value="151" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java</url>
<line>94</line>
<properties />
<option name="timeStamp" value="157" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java</url>
<line>58</line>
<line>237</line>
<properties />
<option name="timeStamp" value="146" />
<option name="timeStamp" value="159" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java</url>
<line>254</line>
<properties />
<option name="timeStamp" value="160" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java</url>
<line>59</line>
<properties />
<option name="timeStamp" value="161" />
</line-breakpoint>
</breakpoints>
<breakpoints-dialog>
<breakpoints-dialog />
</breakpoints-dialog>
<option name="time" value="147" />
<option name="time" value="162" />
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
@ -1264,70 +1422,6 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Location.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.56265986">
<caret line="17" column="32" selection-start-line="17" selection-start-column="32" selection-end-line="17" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/ReplyKeyboard.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3836317">
<caret line="10" column="17" selection-start-line="10" selection-start-column="17" selection-end-line="10" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/ReplyKeyboardHide.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7928389">
<caret line="27" column="33" selection-start-line="27" selection-start-column="33" selection-end-line="27" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/ReplyKeyboardMarkup.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.67774934">
<caret line="24" column="39" selection-start-line="24" selection-start-column="39" selection-end-line="24" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Sticker.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.9079284">
<caret line="26" column="32" selection-start-line="26" selection-start-column="32" selection-end-line="26" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/UserProfilePhotos.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.56265986">
<caret line="21" column="30" selection-start-line="21" selection-start-column="30" selection-end-line="21" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Video.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.9232737">
<caret line="35" column="31" selection-start-line="35" selection-start-column="31" selection-end-line="35" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/User.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.3810742">
<caret line="41" column="4" selection-start-line="41" selection-start-column="4" selection-end-line="41" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/methods/SendChatAction.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7314578">
@ -1367,7 +1461,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3318182">
<caret line="55" column="22" selection-start-line="55" selection-start-column="22" selection-end-line="55" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
@ -1378,14 +1471,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.16624041">
<caret line="9" column="45" selection-start-line="9" selection-start-column="45" selection-end-line="9" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/methods/GetUpdates.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7314578">
@ -1400,18 +1485,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6671642">
<caret line="133" column="58" selection-start-line="133" selection-start-column="58" selection-end-line="133" selection-end-column="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.049253732">
<caret line="23" column="71" selection-start-line="23" selection-start-column="71" selection-end-line="23" selection-end-column="71" />
<folding />
</state>
</provider>
</entry>
@ -1433,7 +1510,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.8214286">
<caret line="320" column="4" selection-start-line="320" selection-start-column="4" selection-end-line="320" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
@ -1441,19 +1517,18 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.15625">
<caret line="22" column="40" selection-start-line="22" selection-start-column="40" selection-end-line="22" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/2662015.log">
<provider editor-type-id="com.intellij.database.editor.CsvTableFileEditorProvider">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="56.517857">
<caret line="2" column="49" selection-start-line="2" selection-start-column="49" selection-end-line="2" selection-end-column="49" />
</state>
</provider>
<provider editor-type-id="com.intellij.database.editor.CsvTableFileEditorProvider">
<state />
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/logging/Logger.java">
<provider selected="true" editor-type-id="text-editor">
@ -1473,7 +1548,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3318182">
<caret line="355" column="13" selection-start-line="355" selection-start-column="13" selection-end-line="355" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
@ -1509,166 +1583,289 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.8432836">
<caret line="42" column="4" selection-start-line="42" selection-start-column="4" selection-end-line="42" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/database/DatabaseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.49367088">
<caret line="75" column="38" selection-start-line="75" selection-start-column="38" selection-end-line="75" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.40298507">
<caret line="37" column="56" selection-start-line="37" selection-start-column="56" selection-end-line="37" selection-end-column="56" />
<state vertical-scroll-proportion="0.87341774">
<caret line="74" column="82" selection-start-line="74" selection-start-column="82" selection-end-line="74" selection-end-column="82" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Message.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33164558">
<caret line="149" column="19" selection-start-line="149" selection-start-column="19" selection-end-line="149" selection-end-column="19" />
<folding>
<element signature="e#7525#7526#0" expanded="false" />
<element signature="e#7557#7558#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/TransifexService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.35714287">
<caret line="269" column="21" selection-start-line="269" selection-start-column="21" selection-end-line="269" selection-end-column="21" />
<folding>
<element signature="docComment;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#TransifexService#0;class#TransifexService#0" expanded="false" />
<element signature="method#TransifexService#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#getInstance#0;class#TransifexService#0" expanded="false" />
<element signature="method#getInstance#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#fixCaseCompositedLanguages#0;class#TransifexService#0" expanded="false" />
<element signature="method#fixCaseCompositedLanguages#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#getAndroidSupportLanguageFile#0;class#TransifexService#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/scratches/scratch_1">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="15" selection-end-column="67" />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/scratches/scratch_2">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="69" column="98" selection-start-line="69" selection-start-column="28" selection-end-line="69" selection-end-column="98" />
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.2985075">
<caret line="74" column="24" selection-start-line="74" selection-start-column="24" selection-end-line="74" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.5">
<caret line="95" column="21" selection-start-line="95" selection-start-column="21" selection-end-line="95" selection-end-column="21" />
<state vertical-scroll-proportion="0.0">
<caret line="56" column="34" selection-start-line="56" selection-start-column="34" selection-end-line="56" selection-end-column="34" />
<folding>
<element signature="class#CustomClassLoader#0;class#LocalisationService#0" expanded="false" />
<element signature="docComment;method#getInstance#0;class#LocalisationService#0" expanded="false" />
<element signature="method#getInstance#0;class#LocalisationService#0" expanded="false" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/database/DatabaseManager.java">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/Set.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.49367088">
<caret line="75" column="38" selection-start-line="75" selection-start-column="38" selection-end-line="75" selection-end-column="38" />
<state vertical-scroll-proportion="0.9012658">
<caret line="248" column="12" selection-start-line="248" selection-start-column="12" selection-end-line="248" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/methods/SendDocument.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="50" column="5" selection-start-line="41" selection-start-column="4" selection-end-line="50" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings.properties">
<provider editor-type-id="ResourceBundle">
<state />
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/methods/SendSticker.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="13" column="54" selection-start-line="13" selection-start-column="54" selection-end-line="13" selection-end-column="54" />
<folding>
<element signature="e#1046#1047#0" expanded="true" />
<element signature="e#1069#1070#0" expanded="true" />
<element signature="e#1103#1104#0" expanded="true" />
<element signature="e#1132#1133#0" expanded="true" />
<element signature="e#2013#2014#0" expanded="true" />
<element signature="e#2048#2049#0" expanded="true" />
<element signature="e#2086#2087#0" expanded="true" />
<element signature="e#2120#2121#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/ReplyKeyboardHide.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.39240506">
<caret line="19" column="0" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="45" />
<state vertical-scroll-proportion="0.51857585">
<caret line="30" column="11" selection-start-line="30" selection-start-column="11" selection-end-line="30" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/Emoji.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.73257697">
<caret line="142" column="0" selection-start-line="142" selection-start-column="0" selection-end-line="142" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.2151898">
<caret line="53" column="0" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="15" column="44" selection-start-line="15" selection-start-column="44" selection-end-line="15" selection-end-column="44" />
<folding>
<element signature="e#1620#1621#0" expanded="true" />
<element signature="e#1660#1661#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Commands.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="9" column="45" selection-start-line="9" selection-start-column="45" selection-end-line="9" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings_pt.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6962025">
<caret line="43" column="70" selection-start-line="43" selection-start-column="70" selection-end-line="43" selection-end-column="70" />
<state vertical-scroll-proportion="0.31623933">
<caret line="16" column="86" selection-start-line="16" selection-start-column="86" selection-end-line="16" selection-end-column="86" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="8.43038">
<caret line="280" column="0" selection-start-line="280" selection-start-column="0" selection-end-line="280" selection-end-column="0" />
<state vertical-scroll-proportion="0.5631579">
<caret line="268" column="23" selection-start-line="268" selection-start-column="23" selection-end-line="268" selection-end-column="23" />
<folding>
<element signature="docComment;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#WeatherService#0;class#WeatherService#0" expanded="false" />
<element signature="method#WeatherService#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#getInstance#0;class#WeatherService#0" expanded="false" />
<element signature="method#getInstance#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherForecast#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherForecastByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="method#fetchWeatherForecastByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrent#0;class#WeatherService#0" expanded="false" />
<element signature="method#fetchWeatherCurrent#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrentByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="method#fetchWeatherCurrentByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="method#convertCurrentWeatherToString#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#convertListOfForecastToString#0;class#WeatherService#0" expanded="false" />
<element signature="method#convertListOfForecastToString#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#convertInternalInformationToString#0;class#WeatherService#0" expanded="false" />
<element signature="method#saveRecentWeather#0;class#WeatherService#0" expanded="false" />
<element signature="method#getCityQuery#0;class#WeatherService#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.87341774">
<caret line="74" column="82" selection-start-line="74" selection-start-column="82" selection-end-line="74" selection-end-column="82" />
<state vertical-scroll-proportion="0.0">
<caret line="13" column="80" selection-start-line="13" selection-start-column="80" selection-end-line="13" selection-end-column="80" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java">
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings_de.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="118" column="13" selection-start-line="118" selection-start-column="13" selection-end-line="118" selection-end-column="13" />
<state vertical-scroll-proportion="0.64102566">
<caret line="15" column="76" selection-start-line="0" selection-start-column="0" selection-end-line="29" selection-end-column="117" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Message.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Commands.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33164558">
<caret line="149" column="19" selection-start-line="149" selection-start-column="19" selection-end-line="149" selection-end-column="19" />
<folding>
<element signature="e#7525#7526#0" expanded="true" />
<element signature="e#7557#7558#0" expanded="true" />
</folding>
<state vertical-scroll-proportion="0.0">
<caret line="43" column="31" selection-start-line="43" selection-start-column="31" selection-end-line="43" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="56" column="34" selection-start-line="56" selection-start-column="34" selection-end-line="56" selection-end-column="34" />
<caret line="148" column="0" selection-start-line="148" selection-start-column="0" selection-end-line="148" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/TransifexService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.35714287">
<caret line="269" column="21" selection-start-line="269" selection-start-column="21" selection-end-line="269" selection-end-column="21" />
<folding>
<element signature="docComment;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#TransifexService#0;class#TransifexService#0" expanded="false" />
<element signature="method#TransifexService#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#getInstance#0;class#TransifexService#0" expanded="false" />
<element signature="method#getInstance#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#fixCaseCompositedLanguages#0;class#TransifexService#0" expanded="false" />
<element signature="method#fixCaseCompositedLanguages#0;class#TransifexService#0" expanded="false" />
<element signature="docComment;method#getAndroidSupportLanguageFile#0;class#TransifexService#0" expanded="false" />
</folding>
<state vertical-scroll-proportion="-4.3333335">
<caret line="38" column="0" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.java">
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.446429">
<caret line="30" column="49" selection-start-line="30" selection-start-column="49" selection-end-line="30" selection-end-column="49" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/localisation/strings_es.properties">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.3448277">
<caret line="20" column="98" selection-start-line="20" selection-start-column="98" selection-end-line="20" selection-end-column="98" />
<folding />
</state>
</provider>
<provider editor-type-id="ResourceBundle">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/services/LocalisationService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="29" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<caret line="54" column="27" selection-start-line="54" selection-start-column="27" selection-end-line="54" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="5" column="29" selection-start-line="5" selection-start-column="29" selection-end-line="5" selection-end-column="29" />
<caret line="35" column="38" selection-start-line="35" selection-start-column="38" selection-end-line="35" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.4017857">
<caret line="34" column="34" selection-start-line="34" selection-start-column="34" selection-end-line="34" selection-end-column="34" />
<state vertical-scroll-proportion="0.0">
<caret line="71" column="24" selection-start-line="71" selection-start-column="24" selection-end-line="71" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.27631578">
<caret line="7" column="8" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
<folding>
<marker date="1437345643000" expanded="true" signature="46:709" placeholder="..." />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>

47
src/main/java/org/telegram/SenderHelper.java

@ -16,10 +16,7 @@ import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.telegram.api.Message;
import org.telegram.methods.Constants;
import org.telegram.methods.SendDocument;
import org.telegram.methods.SendMessage;
import org.telegram.methods.SetWebhook;
import org.telegram.methods.*;
import org.telegram.services.BotLogger;
import java.io.File;
@ -139,4 +136,46 @@ public class SenderHelper {
}
}
public static void sendSticker(SendSticker sendSticker, String botToken) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
String url = Constants.BASEURL + botToken + "/" + SendSticker.PATH;
HttpPost httppost = new HttpPost(url);
if (sendSticker.isNewSticker()) {
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody(SendSticker.CHATID_FIELD, sendSticker.getChatId().toString());
builder.addBinaryBody(SendSticker.STICKER_FIELD, new File(sendSticker.getSticker()), ContentType.APPLICATION_OCTET_STREAM, sendSticker.getStickerName());
if (sendSticker.getReplayMarkup() != null) {
builder.addTextBody(SendSticker.REPLYMARKUP_FIELD, sendSticker.getReplayMarkup().toJson().toString());
}
if (sendSticker.getReplayToMessageId() != null) {
builder.addTextBody(SendSticker.REPLYTOMESSAGEID_FIELD, sendSticker.getReplayToMessageId().toString());
}
HttpEntity multipart = builder.build();
httppost.setEntity(multipart);
} else {
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair(SendSticker.CHATID_FIELD, sendSticker.getChatId().toString()));
nameValuePairs.add(new BasicNameValuePair(SendSticker.STICKER_FIELD, sendSticker.getSticker()));
if (sendSticker.getReplayMarkup() != null) {
nameValuePairs.add(new BasicNameValuePair(SendSticker.REPLYMARKUP_FIELD, sendSticker.getReplayMarkup().toString()));
}
if (sendSticker.getReplayToMessageId() != null) {
nameValuePairs.add(new BasicNameValuePair(SendSticker.REPLYTOMESSAGEID_FIELD, sendSticker.getReplayToMessageId().toString()));
}
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
}
CloseableHttpResponse response = httpClient.execute(httppost);
if (sendSticker.isNewSticker()) {
File fileToDelete = new File(sendSticker.getSticker());
fileToDelete.delete();
}
} catch (IOException e) {
log.error(e);
}
}
}

56
src/main/java/org/telegram/methods/SendSticker.java

@ -11,7 +11,7 @@ import org.telegram.api.ReplyKeyboard;
public class SendSticker {
public static final String PATH = "sendsticker";
public static final String CHATID_FIELD = "document";
public static final String CHATID_FIELD = "chat_id";
private Integer chatId; ///< Unique identifier for the message recepient — User or GroupChat id
public static final String STICKER_FIELD = "sticker";
private String sticker; ///< Sticker file to send. file_id as String to resend a sticker that is already on the Telegram servers
@ -19,4 +19,58 @@ public class SendSticker {
private Integer replayToMessageId; ///< Optional. If the message is a reply, ID of the original message
public static final String REPLYMARKUP_FIELD = "reply_markup";
private ReplyKeyboard replayMarkup; ///< Optional. JSON-serialized object for a custom reply keyboard
private boolean isNewSticker;
private String stickerName;
public SendSticker() {
super();
}
public Integer getChatId() {
return chatId;
}
public void setChatId(Integer chatId) {
this.chatId = chatId;
}
public String getSticker() {
return sticker;
}
public Integer getReplayToMessageId() {
return replayToMessageId;
}
public void setReplayToMessageId(Integer replayToMessageId) {
this.replayToMessageId = replayToMessageId;
}
public ReplyKeyboard getReplayMarkup() {
return replayMarkup;
}
public void setReplayMarkup(ReplyKeyboard replayMarkup) {
this.replayMarkup = replayMarkup;
}
public void setSticker(String sticker) {
this.sticker = sticker;
this.isNewSticker = false;
}
public void setSticker(String sticker, String stickerName) {
this.sticker = sticker;
this.isNewSticker = true;
this.stickerName = stickerName;
}
public boolean isNewSticker() {
return isNewSticker;
}
public String getStickerName() {
return stickerName;
}
}

167
src/main/java/org/telegram/services/Emoji.java

@ -0,0 +1,167 @@
package org.telegram.services;
/**
* @author Ruben Bermudez
* @version 1.0
* @brief Enumerate of emojis with unicode chars
* @date 02 of July of 2015
*/
public enum Emoji {
// Emoticones group
GRINNING_FACE_WITH_SMILING_EYES('\uD83D', '\uDE01'),
FACE_WITH_TEARS_OF_JOY('\uD83D', '\uDE02'),
SMILING_FACE_WITH_OPEN_MOUTH('\uD83D', '\uDE03'),
SMILING_FACE_WITH_OPEN_MOUTH_AND_SMILING_EYES('\uD83D', '\uDE04'),
SMILING_FACE_WITH_OPEN_MOUTH_AND_COLD_SWEAT('\uD83D', '\uDE05'),
SMILING_FACE_WITH_OPEN_MOUTH_AND_TIGHTLY_CLOSED_EYES('\uD83D', '\uDE06'),
WINKING_FACE('\uD83D', '\uDE09'),
SMILING_FACE_WITH_SMILING_EYES('\uD83D', '\uDE0A'),
FACE_SAVOURING_DELICIOUS_FOOD('\uD83D', '\uDE0B'),
RELIEVED_FACE('\uD83D', '\uDE0C'),
SMILING_FACE_WITH_HEART_SHAPED_EYES('\uD83D', '\uDE0D'),
SMIRKING_FACE('\uD83D', '\uDE0F'),
UNAMUSED_FACE('\uD83D', '\uDE12'),
FACE_WITH_COLD_SWEAT('\uD83D', '\uDE13'),
PENSIVE_FACE('\uD83D', '\uDE14'),
CONFOUNDED_FACE('\uD83D', '\uDE16'),
FACE_THROWING_A_KISS('\uD83D', '\uDE18'),
KISSING_FACE_WITH_CLOSED_EYES('\uD83D', '\uDE1A'),
FACE_WITH_STUCK_OUT_TONGUE_AND_WINKING_EYE('\uD83D', '\uDE1C'),
FACE_WITH_STUCK_OUT_TONGUE_AND_TIGHTLY_CLOSED_EYES('\uD83D', '\uDE1D'),
DISAPPOINTED_FACE('\uD83D', '\uDE1E'),
ANGRY_FACE('\uD83D', '\uDE20'),
POUTING_FACE('\uD83D', '\uDE21'),
CRYING_FACE('\uD83D', '\uDE22'),
PERSEVERING_FACE('\uD83D', '\uDE23'),
FACE_WITH_LOOK_OF_TRIUMPH('\uD83D', '\uDE24'),
DISAPPOINTED_BUT_RELIEVED_FACE('\uD83D', '\uDE25'),
FEARFUL_FACE('\uD83D', '\uDE28'),
WEARY_FACE('\uD83D', '\uDE29'),
SLEEPY_FACE('\uD83D', '\uDE2A'),
TIRED_FACE('\uD83D', '\uDE2B'),
LOUDLY_CRYING_FACE('\uD83D', '\uDE2D'),
FACE_WITH_OPEN_MOUTH_AND_COLD_SWEAT('\uD83D', '\uDE30'),
FACE_SCREAMING_IN_FEAR('\uD83D', '\uDE31'),
ASTONISHED_FACE('\uD83D', '\uDE32'),
FLUSHED_FACE('\uD83D', '\uDE33'),
DIZZY_FACE('\uD83D', '\uDE35'),
FACE_WITH_MEDICAL_MASK('\uD83D', '\uDE37'),
GRINNING_CAT_FACE_WITH_SMILING_EYES('\uD83D', '\uDE38'),
CAT_FACE_WITH_TEARS_OF_JOY('\uD83D', '\uDE39'),
SMILING_CAT_FACE_WITH_OPEN_MOUTH('\uD83D', '\uDE3A'),
SMILING_CAT_FACE_WITH_HEART_SHAPED_EYES('\uD83D', '\uDE3B'),
CAT_FACE_WITH_WRY_SMILE('\uD83D', '\uDE3C'),
KISSING_CAT_FACE_WITH_CLOSED_EYES('\uD83D', '\uDE3D'),
POUTING_CAT_FACE('\uD83D', '\uDE3E'),
CRYING_CAT_FACE('\uD83D', '\uDE3F'),
WEARY_CAT_FACE('\uD83D', '\uDE40'),
FACE_WITH_NO_GOOD_GESTURE('\uD83D', '\uDE45'),
FACE_WITH_OK_GESTURE('\uD83D', '\uDE46'),
PERSON_BOWING_DEEPLY('\uD83D', '\uDE47'),
SEE_NO_EVIL_MONKEY('\uD83D', '\uDE48'),
HEAR_NO_EVIL_MONKEY('\uD83D', '\uDE49'),
SPEAK_NO_EVIL_MONKEY('\uD83D', '\uDE4A'),
HAPPY_PERSON_RAISING_ONE_HAND('\uD83D', '\uDE4B'),
PERSON_RAISING_BOTH_HANDS_IN_CELEBRATION('\uD83D', '\uDE4C'),
PERSON_FROWNING('\uD83D', '\uDE4D'),
PERSON_WITH_POUTING_FACE('\uD83D', '\uDE4E'),
PERSON_WITH_FOLDED_HANDS('\uD83D', '\uDE4F'),
// Dingbats group
BLACK_SCISSORS(null, '\u2702'),
WHITE_HEAVY_CHECK_MARK(null, '\u2705'),
AIRPLANE(null, '\u2708'),
ENVELOPE(null, '\u2709'),
RAISED_FIST(null, '\u270A'),
RAISED_HAND(null, '\u270B'),
VICTORY_HAND(null, '\u270C'),
PENCIL(null, '\u270F'),
BLACK_NIB(null, '\u2712'),
HEAVY_CHECK_MARK(null, '\u2714'),
HEAVY_MULTIPLICATION_X(null, '\u2716'),
SPARKLES(null, '\u2728'),
EIGHT_SPOKED_ASTERISK(null, '\u2733'),
EIGHT_POINTED_BLACK_STAR(null, '\u2734'),
SNOWFLAKE(null, '\u2744'),
SPARKLE(null, '\u2747'),
CROSS_MARK(null, '\u274C'),
NEGATIVE_SQUARED_CROSS_MARK(null, '\u274E'),
BLACK_QUESTION_MARK_ORNAMENT(null, '\u2753'),
WHITE_QUESTION_MARK_ORNAMENT(null, '\u2754'),
WHITE_EXCLAMATION_MARK_ORNAMENT(null, '\u2755'),
HEAVY_EXCLAMATION_MARK_SYMBOL(null, '\u2757'),
HEAVY_BLACK_HEART(null, '\u2764'),
HEAVY_PLUS_SIGN(null, '\u2795'),
HEAVY_MINUS_SIGN(null, '\u2796'),
HEAVY_DIVISION_SIGN(null, '\u2797'),
BLACK_RIGHTWARDS_ARROW(null, '\u27A1'),
CURLY_LOOP(null, '\u27B0'),
// Transport and map symbols Group
ROCKET('\uD83D', '\uDE80'),
RAILWAY_CAR('\uD83D', '\uDE83'),
HIGH_SPEED_TRAIN('\uD83D', '\uDE84'),
HIGH_SPEED_TRAIN_WITH_BULLET_NOSE('\uD83D', '\uDE85'),
METRO('\uD83D', '\uDE87'),
STATION('\uD83D', '\uDE89'),
BUS('\uD83D', '\uDE8C'),
BUS_STOP('\uD83D', '\uDE8F'),
AMBULANCE('\uD83D', '\uDE91'),
FIRE_ENGINE('\uD83D', '\uDE92'),
POLICE_CAR('\uD83D', '\uDE93'),
TAXI('\uD83D', '\uDE95'),
AUTOMOBILE('\uD83D', '\uDE97'),
RECREATIONAL_VEHICLE('\uD83D', '\uDE99'),
DELIVERY_TRUCK('\uD83D', '\uDE9A'),
SHIP('\uD83D', '\uDEA2'),
SPEEDBOAT('\uD83D', '\uDEA4'),
HORIZONTAL_TRAFFIC_LIGHT('\uD83D', '\uDEA5'),
CONSTRUCTION_SIGN('\uD83D', '\uDEA7'),
POLICE_CARS_REVOLVING_LIGHT('\uD83D', '\uDEA8'),
TRIANGULAR_FLAG_ON_POST('\uD83D', '\uDEA9'),
DOOR('\uD83D', '\uDEAA'),
NO_ENTRY_SIGN('\uD83D', '\uDEAB'),
SMOKING_SYMBOL('\uD83D', '\uDEAC'),
NO_SMOKING_SYMBOL('\uD83D', '\uDEAD'),
BICYCLE('\uD83D', '\uDEB2'),
PEDESTRIAN('\uD83D', '\uDEB6'),
MENS_SYMBOL('\uD83D', '\uDEB9'),
WOMENS_SYMBOL('\uD83D', '\uDEBA'),
RESTROOM('\uD83D', '\uDEBB'),
BABY_SYMBOL('\uD83D', '\uDEBC'),
TOILET('\uD83D', '\uDEBD'),
WATER_CLOSET('\uD83D', '\uDEBE'),
BATH('\uD83D', '\uDEC0'),
// Weather
UMBRELLA_WITH_RAIN_DROPS(null, '\u2614'),
HIGH_VOLTAGE_SIGN(null, '\u26A1'),
SNOWMAN_WITHOUT_SNOW(null, '\u26C4'),
SUN_BEHIND_CLOUD(null, '\u26C5'),
CLOSED_UMBRELLA('\uD83C', '\uDF02'),
SUN_WITH_FACE('\uD83C', '\uDF1E'),
FOGGY('\uD83C', '\uDF01'),
CLOUD(null, '\u2601');
Character firstChar;
Character secondChar;
Emoji(Character firstChar, Character secondChar) {
this.firstChar = firstChar;
this.secondChar = secondChar;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
if (this.firstChar != null) {
sb.append(this.firstChar);
}
if (this.secondChar != null) {
sb.append(this.secondChar);
}
return sb.toString();
}
}

18
src/main/java/org/telegram/services/LocalisationService.java

@ -87,18 +87,18 @@ public class LocalisationService {
CustomClassLoader loader = new CustomClassLoader(Thread.currentThread().getContextClassLoader());
english = ResourceBundle.getBundle("localisation.strings", new Locale("en", "US"), loader);
supportedLanguages.put("en", "English");
/*spanish = ResourceBundle.getBundle("localisation.strings", new Locale("es", "ES"), loader);
spanish = ResourceBundle.getBundle("localisation.strings", new Locale("es", "ES"), loader);
supportedLanguages.put("es", "Español");
/*german = ResourceBundle.getBundle("localisation.strings", new Locale("de", "DE"), loader);
supportedLanguages.put("de", "Deutsch");
portuguese = ResourceBundle.getBundle("localisation.strings", new Locale("pt", "PT"), loader);
supportedLanguages.put("pt", "Portuguese");
dutch = ResourceBundle.getBundle("localisation.strings", new Locale("nl", "NL"), loader);
supportedLanguages.put("nl", "Dutch");
german = ResourceBundle.getBundle("localisation.strings", new Locale("de", "DE"), loader);
supportedLanguages.put("de", "Deutsch");
italian = ResourceBundle.getBundle("localisation.strings", new Locale("it", "IT"), loader);
supportedLanguages.put("it", "Italian");
french = ResourceBundle.getBundle("localisation.strings", new Locale("fr", "FR"), loader);
supportedLanguages.put("fr", "French");
portuguese = ResourceBundle.getBundle("localisation.strings", new Locale("pt", "PT"), loader);
supportedLanguages.put("pt_pt", "Portuguese PT");
portuguesebr = ResourceBundle.getBundle("localisation.strings", new Locale("pt", "BR"), loader);
supportedLanguages.put("pt_br", "Portuguese BR");*/
/**
@ -143,9 +143,12 @@ public class LocalisationService {
case "en":
result = english.getString(key);
break;
/*case "es":
case "es":
result = spanish.getString(key);
break;
/*case "pt":
result = portuguese.getString(key);
break;
case "nl":
result = dutch.getString(key);
break;
@ -164,9 +167,6 @@ public class LocalisationService {
case "hi":
result = hindi.getString(key);
break;
case "pt":
result = portuguese.getString(key);
break;
case "pt-BR":
result = portuguesebr.getString(key);
break;

72
src/main/java/org/telegram/services/WeatherService.java

@ -1,8 +1,6 @@
package org.telegram.services;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
@ -14,9 +12,6 @@ import org.json.JSONObject;
import org.telegram.BuildVars;
import org.telegram.database.DatabaseManager;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.Instant;
@ -33,6 +28,15 @@ import java.time.format.DateTimeFormatter;
public class WeatherService {
private static volatile BotLogger log = BotLogger.getLogger(WeatherService.class.getName());
private static final String FILEIDSUNNY = "BQADBAADEgoAAnVbtwRqrxn89vjb1wI";
private static final String FILEIDFEWCLOUDS = "BQADBAADEwoAAnVbtwT3NZvlhOXiKQI";
private static final String FILEIDCLOUDS = "BQADBAADFAoAAnVbtwR8DOcw8SdYbwI";
private static final String FILEIDSHOWERRAIN = "BQADBAADFQoAAnVbtwQL2CuuhfiIYgI";
private static final String FILEIDRAIN = "BQADBAADFgoAAnVbtwSxZkQoAlHhJAI";
private static final String FILEIDTHUNDERSTORM = "BQADBAADGAoAAnVbtwQp1kcPThwm7QI";
private static final String FILEIDSNOW = "BQADBAADGAoAAnVbtwRtYBVrEJPQPQI";
private static final String FILEIDFOGGY = "BQADBAADFwoAAnVbtwRwJotTvbcb0gI";
private static final String BASEURL = "http://api.openweathermap.org/data/2.5/"; ///< Base url for REST
private static final String FORECASTPATH = "forecast/daily";
private static final String CURRENTPATH = "weather";
@ -157,6 +161,7 @@ public class WeatherService {
public String fetchWeatherCurrent(String city, Integer userId, String language) {
String cityFound;
String responseToUser;
Emoji emoji = null;
try {
String completURL = BASEURL + CURRENTPATH + "?" + getCityQuery(city) +
CURRENTPARAMS.replace("@language@", language) + APIIDEND;
@ -173,8 +178,9 @@ public class WeatherService {
cityFound = jsonObject.getString("name") + " (" +
jsonObject.getJSONObject("sys").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getInt("id"));
emoji = getEmojiForWeather(jsonObject.getJSONArray("weather").getJSONObject(0));
responseToUser = String.format(LocalisationService.getInstance().getString("weatherCurrent", language),
cityFound, convertCurrentWeatherToString(jsonObject, language));
cityFound, convertCurrentWeatherToString(jsonObject, language, emoji));
} else {
log.warning(jsonObject.toString());
responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
@ -212,7 +218,7 @@ public class WeatherService {
jsonObject.getJSONObject("sys").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getInt("id"));
responseToUser = String.format(LocalisationService.getInstance().getString("weatherCurrent", language),
cityFound, convertCurrentWeatherToString(jsonObject, language));
cityFound, convertCurrentWeatherToString(jsonObject, language, null));
} else {
log.warning(jsonObject.toString());
responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
@ -224,13 +230,13 @@ public class WeatherService {
return responseToUser;
}
private String convertCurrentWeatherToString(JSONObject jsonObject, String language) {
private String convertCurrentWeatherToString(JSONObject jsonObject, String language, Emoji emoji) {
String temp = jsonObject.getJSONObject("main").getDouble("temp")+"";
String cloudiness = jsonObject.getJSONObject("clouds").getInt("all") + "%";
String weatherDesc = jsonObject.getJSONArray("weather").getJSONObject(0).getString("description");
String responseToUser = LocalisationService.getInstance().getString("currentWeatherPart", language);
responseToUser = String.format(responseToUser, weatherDesc, cloudiness, temp);
responseToUser = String.format(responseToUser, emoji == null ? weatherDesc : emoji.toString(), cloudiness, temp);
return responseToUser;
}
@ -266,11 +272,12 @@ public class WeatherService {
tempMax = internalJSON.getJSONObject("temp").getDouble("max") + "";
tempMin = internalJSON.getJSONObject("temp").getDouble("min") + "";
JSONObject weatherObject = internalJSON.getJSONArray("weather").getJSONObject(0);
Emoji emoji = getEmojiForWeather(internalJSON.getJSONArray("weather").getJSONObject(0));
weatherDesc = weatherObject.getString("description");
responseToUser = LocalisationService.getInstance().getString("forecastWeatherPart", language);
responseToUser = String.format(responseToUser, dateFormaterFromDate.format(date), weatherDesc,
tempMax, tempMin);
responseToUser = String.format(responseToUser, dateFormaterFromDate.format(date),
emoji == null ? weatherDesc : emoji.toString(), tempMax, tempMin);
return responseToUser;
}
@ -288,4 +295,47 @@ public class WeatherService {
}
return cityQuery;
}
private Emoji getEmojiForWeather(JSONObject weather) {
Emoji emoji;
switch(weather.getString("icon")) {
case "01n":
case "01d":
emoji = Emoji.SUN_WITH_FACE;
break;
case "02n":
case "02d":
emoji = Emoji.SUN_BEHIND_CLOUD;
break;
case "03n":
case "03d":
case "04n":
case "04d":
emoji = Emoji.CLOUD;
break;
case "09n":
case "09d":
case "10n":
case "10d":
emoji = Emoji.UMBRELLA_WITH_RAIN_DROPS;
break;
case "11n":
case "11d":
emoji = Emoji.HIGH_VOLTAGE_SIGN;
break;
case "13n":
case "13d":
emoji = Emoji.SNOWFLAKE;
break;
case "50n":
case "50d":
emoji = Emoji.FOGGY;
break;
default:
emoji = null;
}
return emoji;
}
}

6
src/main/java/org/telegram/updateshandlers/WeatherHandlers.java

@ -1,9 +1,11 @@
package org.telegram.updateshandlers;
import org.telegram.*;
import org.telegram.BotConfig;
import org.telegram.BuildVars;
import org.telegram.Commands;
import org.telegram.SenderHelper;
import org.telegram.api.*;
import org.telegram.database.DatabaseManager;
import org.telegram.methods.ForwardMessage;
import org.telegram.methods.SendMessage;
import org.telegram.services.BotLogger;
import org.telegram.services.LocalisationService;

4
src/main/java/org/telegram/updatesreceivers/UpdatesThread.java

@ -26,6 +26,7 @@ import java.io.InvalidObjectException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.TimeUnit;
/**
* @author Ruben Bermudez
@ -60,8 +61,9 @@ public class UpdatesThread {
while(true) {
GetUpdates request = new GetUpdates();
request.setLimit(100);
request.setTimeout(20);
request.setOffset(lastReceivedUpdate + 1);
CloseableHttpClient httpclient = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
CloseableHttpClient httpclient = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).setConnectionTimeToLive(20, TimeUnit.SECONDS).build();
String url = Constants.BASEURL + token + "/" + GetUpdates.PATH;
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePairs = new ArrayList<>();

22
src/main/resources/localisation/strings.properties

@ -1,27 +1,26 @@
helpWeather= Curious about the weather?\nJust send me these commands and you'll know a lot better.\n\n|-- %s CITY,COUNTRY : Get a 3-day weather forecast for a city.\n|-- %s CITY,COUNTRY : Get the current weather of a city.\n\n|-- Send a location to get the forecast for it.
helpTransifex= Tricks with words is the game that I play, give it a shot, I might make your day.\n\nTo get the latest Telegram localization file for a language: \n|-- %s LANG_CODE : Get the latest iOS language.\n|-- %s LANG_CODE : Get the latest android language.\n|-- %s LANG_CODE : Get the latest webogram language.\n|-- %s LANG_CODE : Get the latest Tdesktop language.\n|-- %s LANG_CODE : Get the latest OSX-App language.\n|-- %s LANG_CODE : Get the latest Windows Phone language.\n\n2. To get an updated localization file for your Android beta-app: \n|-- %s LANG_CODE : Get the latest Android-beta language.
helpFiles= Leaving a file for some others to find? Just dock your boat here and a bay comes to mind.\n\nShare files through a custom link: \n|-- %s FILEID : Get a file by id.\n|-- %s : Start your file upload.\n|-- %s : Choose one of your files to delete it.\n|-- %s : Show a list of your shared files.
helpDirections= The road ahead, paved with good intentions, the right path ahead however is what I tend to mention.\n\nTo get directions between two locations: \n|-- %s : Start to get directions
helpDirections= The road ahead, paved with good intentions, the right path ahead however, is what I tend to mention.\n\nTo get directions between two locations: \n|-- %s : Start to get directions
sendFileToUpload= Please send me a file you want to share. Make sure you attach it as file, not as an image or video.
fileUploaded= Great, your file has been uploaded. Send this link to anyone you want and they will be able to download the file:\n\n
deleteUploadedFile= Please select the file you want to delete:
fileDeleted= The file was deleted
wrongFileId= Sorry, we can't find a file with that ID. Either a typo was made or it was deleted already.
listOfFiles= This your currently shared files list:
noFiles= You haven't shared any file yet.
listOfFiles= This your currently shared list of files:
noFiles= You haven't shared any files yet.
processFinished= The current process was cancelled.
uploadedFileURL= https://telegram.me/filesbot?start=
chooseFromRecentWeather= Please choose an option from your recent requests:
initDirections= Please reply with your departing location.
sendDestination= Please reply with your destination.
initDirections= Please reply to this message with your starting point.
sendDestination= Please reply to this message with your destination.
youNeedReplyDirections= I'm sorry, I can't help you unless you reply to the message I sent you.
pleaseSendMeCityWeather= Send me the city and country you are interested in, use this format: CITY,COUNTRY
chooselanguage= Please, choose a language from the list to change to that language
languageModified= New language has been saved
errorLanguage= We don't support that language or you didn't wrote it correclty. The process has been cancelled.
directionsInit= %s is %s away from %s and it takes %s to arrive there following these directions:\n\n
directionsNotFound= Directions not found between %s and %s
errorFetchingDirections= Error fetching weather info
chooselanguage= Please, choose a language from the list to change to that language.
errorLanguage= We don't support that language or a typo was made. The process has been cancelled.
directionsInit= %s is %s away from %s and it takes %s to arrive there, following these directions:\n\n
directionsNotFound= Directions not found between %s and %s.
errorFetchingDirections= Error fetching directions info
directionsStep= %s during %s (%s)
weatherForcast= The weather for %s will be:\n %s Thank you for using our Weather Bot.
weatherCurrent= The weather for %s will be:\n %s Thank you for using our Weather Bot.
@ -29,3 +28,4 @@ cityNotFound= City not found
errorFetchingWeather= We are sorry, there was an error fetching the weather.
currentWeatherPart= |-- Weather: %s\n|-- Cloudiness: %s\n |-- Temperature: %s ºC\n\n
forecastWeatherPart= * On %s \n\t|--Forecast: %s\n\t|--High temperature: %s ºC\n\t|--Low temperature: %s ºC\n\n
languageModified= Your language has been updated.

31
src/main/resources/localisation/strings_es.properties

@ -0,0 +1,31 @@
helpWeather= ¿Preocupado por el tiempo?\nSimplemente envíame uno de estos comandos y solucionaré to preocupación\n\n|-- %s CIUDAD,PAÍS \: Obtén el pronóstico para 3 días en tu ciudad.\n|-- %s CIUDAD,PAÍS \: Obtén el tiempo actual en tu ciudad.\n\n|-- Envíame una localización y te daré el pronóstico para ese lugar
helpTransifex= Magia con las palabras es lo que se me da bien, quizás te alegre el día.\n\nPara obtener las últimas traducciones de las aplicaciones de Telegram para un idioma\:\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para iOS.\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para Android.\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para Webogram.\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para Tdesktop.\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para OSX App.\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para Windows Phone.\n\n2. Para la última traducción de la versión beta de Android\:\n|-- %s CODIGO_DEL_IDIOMA \: Última traducción para Android beta.
helpFiles= ¿Quieres compartir un archivo con alguien? Has llegado al puerto adecuado.\n\nComparte archivos usando un link personalizado\:\n|-- %s IDDELARCHIVO \: Obtener un archivo por id.\n|-- %s \: Comenzar a compartir un archivo.\n|-- %s \: Elimina uno de tus archivos.\n|-- %s \: Muestra una lista de tus archivos compartidos.
helpDirections= Un viaje por delante es una buena ocasión, ¿pero no sería mejor conociendo el camino?\n\nPara obtener la ruta que debes seguir entre dos lugares\:\n|-- %s \: Comienza a obtener la ruta
sendFileToUpload= Por favor, envíame el archivo que quieres compartir. Asegúrate de adjuntarlo como archivo, no como imagen o vídeo.
fileUploaded= Perfecto, ya tengo to archivo. Envía este link a cualquiera que desees que lo tenga y podrá descargarlo\:\n\n
deleteUploadedFile= Por favor, selecciona un archivo de la lista para eliminarlo\:
fileDeleted= El archivo fue eliminado
wrongFileId= Lo siento, no podemos encontrar el archivo con ese ID. Puede que haya un error o que el archivo haya sido eliminado.
listOfFiles= Esta es la lista actual de tus archivos compartidos\:
noFiles= Aún no has compartido ningún archivo.
processFinished= El proceso actual ha sido cancelado.
uploadedFileURL= https\://telegram.me/filesbot?start\=
chooseFromRecentWeather= Por favor, selecciona una opción de tus últimas peticiones\:
initDirections= Por favor, responde a este mensaje con el lugar de salida.
sendDestination= Por favor, responde a este mensaje con el lugar de destino.
youNeedReplyDirections= Lo siento, no puedo ayudarte a menos que respondas al mensaje que te he enviado.
pleaseSendMeCityWeather= Envíame la ciudad y el país que te interesa, usa este formato\: CIUDAD,PAÍS
chooselanguage= Por favor, elige un idioma de la lista para que nos entendamos mejor.
errorLanguage= No soportamos ese idioma o ha habido un error. El proceso ha sido cancelado.
directionsInit= %s está a %s de %s y se necesita %s para llegar, siguiendo estas direcciones\:\n\n
directionsNotFound= No hemos encontrado una ruta desde %s hasta %s.
errorFetchingDirections= Ha habido un error obteniendo la ruta
directionsStep= %s durante %s (%s)
weatherForcast= El tiempo para %s será\:\n%s Gracias por usar nuestro Bot del tiempo.
weatherCurrent= El tiempo para %s será\:\n%s Gracias por usar nuestro Bot del tiempo.
cityNotFound= Ciudad no encontrada
errorFetchingWeather= Lo siento, ha habido un error obteniendo el tiempo.
currentWeatherPart= |-- Tiempo\: %s\n|-- Nubes\: %s\n|-- Temperatura\: %s ºC\n
forecastWeatherPart= * El %s \n|--Pronóstico\: %s\n|--Temperatura máxima\: %s ºC\n|--Temperatura mínima\: %s ºC\n\n
languageModified= Tu idioma ha sido modificado.
Loading…
Cancel
Save