Browse Source

1. Several fixes

master
Rubenlagu 11 years ago
committed by Rubenlagus
parent
commit
a8c6a622fc
  1. 451
      .idea/workspace.xml
  2. 5
      src/main/java/org/telegram/SenderHelper.java
  3. 238
      src/main/java/org/telegram/services/BotLogger.java
  4. 45
      src/main/java/org/telegram/services/DirectionsService.java
  5. 72
      src/main/java/org/telegram/services/WeatherService.java
  6. 9
      src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java
  7. 25
      src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
  8. 44
      src/main/java/org/telegram/updatesreceivers/UpdatesThread.java

451
.idea/workspace.xml

@ -3,14 +3,15 @@
<component name="ChangeListManager">
<list default="true" id="cc3252dd-ba1f-404e-b603-ef880b5c3341" name="Default" comment="1. Several fixes">
<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/updateshandlers/DirectionsHandlers.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.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/api/Message.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/api/Message.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/TransifexHandlers.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/updatesreceivers/Webhook.java" afterPath="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.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$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
<ignored path="BotAPi.iws" />
@ -39,75 +40,62 @@
<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.0">
<caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#1815#1816#0" expanded="true" />
<element signature="e#1861#1862#0" expanded="true" />
</folding>
<caret line="173" column="0" selection-start-line="173" selection-start-column="0" selection-end-line="173" selection-end-column="0" />
<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">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="8" column="39" selection-start-line="8" selection-start-column="39" selection-end-line="8" selection-end-column="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
<file leaf-file-name="2662015.log" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/2662015.log">
<provider editor-type-id="com.intellij.database.editor.CsvTableFileEditorProvider">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="UpdatesCallback.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/UpdatesCallback.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<state vertical-scroll-proportion="-7.827586">
<caret line="1176" column="36" selection-start-line="1176" selection-start-column="36" selection-end-line="1176" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
</file>
<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">
<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="21" column="59" selection-start-line="21" selection-start-column="59" selection-end-line="21" selection-end-column="59" />
<caret line="9" column="91" selection-start-line="9" selection-start-column="47" selection-end-line="9" selection-end-column="91" />
<folding />
</state>
</provider>
</entry>
</file>
<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">
<file leaf-file-name="Main.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="25" column="55" selection-start-line="25" selection-start-column="55" selection-end-line="25" selection-end-column="55" />
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding>
<element signature="e#1443#1444#0" expanded="true" />
<element signature="e#1483#1484#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DirectionsHandlers.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java">
<file leaf-file-name="UpdatesThread.java" pinned="false" current-in-tab="true">
<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="31" column="51" selection-start-line="31" selection-start-column="51" selection-end-line="31" selection-end-column="51" />
<state vertical-scroll-proportion="0.14285715">
<caret line="107" column="46" selection-start-line="107" selection-start-column="46" selection-end-line="107" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Webhook.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.java">
<file leaf-file-name="Update.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Update.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.5396419">
<caret line="54" column="30" selection-start-line="54" selection-start-column="30" selection-end-line="54" selection-end-column="30" />
<state vertical-scroll-proportion="0.0">
<caret line="43" column="0" selection-start-line="43" selection-start-column="0" selection-end-line="43" selection-end-column="0" />
<folding />
</state>
</provider>
@ -147,9 +135,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/database/ConectionDB.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/UpdatesCallback.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/api/ReplyKeyboard.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/ForwardMessage.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendPhoto.java" />
@ -181,23 +166,26 @@
<option value="$PROJECT_DIR$/src/main/java/org/telegram/api/Chat.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/api/User.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/SendChatAction.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/RestApi.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/CustomMessages.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/TransifexService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/UpdatesCallback.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/Main.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/api/Message.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.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/updatesreceivers/Webhook.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/DirectionsService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/BotConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/Main.java" />
<option value="$PROJECT_DIR$/2662015.log" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/methods/GetUpdates.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/services/BotLogger.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java" />
<option value="$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java" />
</list>
</option>
</component>
@ -916,7 +904,7 @@
<workItem from="1435083767937" duration="474000" />
<workItem from="1435087589530" duration="13495000" />
<workItem from="1435164520307" duration="6553000" />
<workItem from="1435251996845" duration="4274000" />
<workItem from="1435251996845" duration="12801000" />
</task>
<task id="LOCAL-00001" summary="First Commit:&#10;1. Transifex bot&#10;2. Weather bot">
<created>1434854005227</created>
@ -1032,11 +1020,17 @@
<option name="project" value="LOCAL" />
<updated>1435253672379</updated>
</task>
<option name="localTasksCounter" value="20" />
<task id="LOCAL-00020" summary="1. Fix webhooks, they only allow port 443">
<created>1435262669527</created>
<option name="number" value="00020" />
<option name="project" value="LOCAL" />
<updated>1435262669527</updated>
</task>
<option name="localTasksCounter" value="21" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="95587000" />
<option name="totallyTimeSpent" value="104114000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@ -1062,7 +1056,7 @@
<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.39971346" sideWeight="0.4939577" order="3" 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.27793697" sideWeight="0.4939577" 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.39971346" sideWeight="0.5060423" 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.3295129" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
@ -1139,14 +1133,15 @@
<MESSAGE value="1. Support for webhooks" />
<MESSAGE value="1. Fix JSON deserialization" />
<MESSAGE value="1. Several fixes" />
<option name="LAST_COMMIT_MESSAGE" value="1. Several fixes" />
<MESSAGE value="1. Fix webhooks, they only allow port 443" />
<option name="LAST_COMMIT_MESSAGE" value="1. Fix webhooks, they only allow port 443" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/services/WeatherService.java</url>
<line>124</line>
<line>130</line>
<properties />
<option name="timeStamp" value="36" />
</line-breakpoint>
@ -1156,12 +1151,6 @@
<properties />
<option name="timeStamp" value="68" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.java</url>
<line>59</line>
<properties />
<option name="timeStamp" value="83" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/services/TransifexService.java</url>
<line>321</line>
@ -1169,89 +1158,43 @@
<option name="timeStamp" value="84" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java</url>
<line>47</line>
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java</url>
<line>128</line>
<properties />
<option name="timeStamp" value="86" />
<option name="timeStamp" value="101" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java</url>
<line>38</line>
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java</url>
<line>113</line>
<properties />
<option name="timeStamp" value="87" />
<option name="timeStamp" value="134" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.java</url>
<line>55</line>
<url>file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java</url>
<line>107</line>
<properties />
<option name="timeStamp" value="88" />
<option name="timeStamp" value="135" />
</line-breakpoint>
</breakpoints>
<breakpoints-dialog>
<breakpoints-dialog />
</breakpoints-dialog>
<option name="time" value="89" />
<option name="time" value="136" />
</breakpoint-manager>
<watches-manager />
<watches-manager>
<configuration name="Application">
<watch expression="" />
<watch expression="message.getFrom()" language="JAVA" custom="" />
<watch expression="jsonArray.length()" language="JAVA" custom="" />
<watch expression="updates.size()" language="JAVA" custom="" />
</configuration>
</watches-manager>
</component>
<component name="antWorkspaceConfiguration">
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/lang/Class.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33248082">
<caret line="347" column="52" selection-start-line="347" selection-start-column="52" selection-end-line="347" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6930946">
<caret line="82" column="21" selection-start-line="82" selection-start-column="21" selection-end-line="82" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/glassfish/grizzly/grizzly-framework/2.3.19/grizzly-framework-2.3.19-sources.jar!/org/glassfish/grizzly/ssl/SSLEngineConfigurator.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.83120203">
<caret line="176" column="0" selection-start-line="176" selection-start-column="0" selection-end-line="176" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/net/URI.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="2847" column="0" selection-start-line="2847" selection-start-column="0" selection-end-line="2847" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<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="41" column="84" selection-start-line="41" selection-start-column="74" selection-end-line="41" selection-end-column="84" />
<folding />
</state>
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/rt.jar!/sun/nio/ch/KQueueArrayWrapper.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.814815">
<caret line="138" column="23" selection-start-line="138" selection-start-column="23" selection-end-line="138" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5/httpclient-4.5.jar!/org/apache/http/impl/client/CloseableHttpClient.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.814815">
<caret line="41" column="0" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/methods/Constants.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -1405,16 +1348,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/Update.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.58056265">
<caret line="29" column="31" selection-start-line="29" selection-start-column="31" selection-end-line="29" selection-end-column="31" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</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">
@ -1450,14 +1383,6 @@
</state>
</provider>
</entry>
<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="0.03409091">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/CustomMessages.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -1466,38 +1391,6 @@
</state>
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/Queue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.41964287">
<caret line="198" column="6" selection-start-line="198" selection-start-column="6" selection-end-line="198" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/concurrent/ConcurrentLinkedQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.29166666">
<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>
<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="0.58035713">
<caret line="208" column="32" selection-start-line="208" selection-start-column="32" selection-end-line="208" selection-end-column="32" />
<folding>
<element signature="docComment;method#fetchWeatherForecast#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherForecastByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrent#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrentByLocation#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" />
</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.24107143">
@ -1523,132 +1416,248 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/UpdatesThread.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/RestApi.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.12895928">
<caret line="90" column="0" selection-start-line="90" selection-start-column="0" selection-end-line="90" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="14" column="7" selection-start-line="14" selection-start-column="7" selection-end-line="14" selection-end-column="7" />
<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/api/Message.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" />
<state vertical-scroll-proportion="0.2173913">
<caret line="109" column="35" selection-start-line="109" selection-start-column="35" selection-end-line="109" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/RestApi.java">
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/PhotoSize.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="7" selection-start-line="14" selection-start-column="7" selection-end-line="14" selection-end-column="7" />
<state vertical-scroll-proportion="0.33248082">
<caret line="36" column="0" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
<folding />
</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/updatesreceivers/Webhook.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.2173913">
<caret line="109" column="35" selection-start-line="109" selection-start-column="35" selection-end-line="109" selection-end-column="35" />
<state vertical-scroll-proportion="0.65473145">
<caret line="57" column="0" selection-start-line="57" selection-start-column="0" selection-end-line="57" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/SenderHelper.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.769821">
<caret line="62" column="13" selection-start-line="62" selection-start-column="13" selection-end-line="62" selection-end-column="13" />
<state vertical-scroll-proportion="0.30690536">
<caret line="25" column="55" selection-start-line="25" selection-start-column="55" selection-end-line="25" selection-end-column="55" />
<folding>
<element signature="e#1766#1781#0" expanded="true" />
<element signature="e#1443#1444#0" expanded="false" />
<element signature="e#1483#1484#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<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.46035805">
<caret line="21" column="59" selection-start-line="21" selection-start-column="59" selection-end-line="21" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/UpdatesCallback.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.46035805">
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
</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.37084398">
<caret line="69" column="0" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="70" column="9" selection-start-line="70" selection-start-column="9" selection-end-line="70" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/api/PhotoSize.java">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/Queue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33248082">
<caret line="36" column="0" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
<caret line="198" column="6" selection-start-line="198" selection-start-column="6" selection-end-line="198" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/BuildVars.java">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/concurrent/ConcurrentLinkedQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3836317">
<caret line="10" column="50" selection-start-line="10" selection-start-column="50" selection-end-line="10" selection-end-column="50" />
<state vertical-scroll-proportion="0.40920717">
<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>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/UpdatesCallback.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5/httpclient-4.5.jar!/org/apache/http/impl/client/HttpClientBuilder.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
<state vertical-scroll-proportion="-1.0851648">
<caret line="164" column="36" selection-start-line="164" selection-start-column="36" selection-end-line="164" selection-end-column="36" />
<folding>
<element signature="e#7865#7866#0" expanded="true" />
<element signature="e#7911#7912#0" expanded="true" />
</folding>
</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="0.0">
<caret line="31" column="51" selection-start-line="31" selection-start-column="51" selection-end-line="31" selection-end-column="51" />
<caret line="103" column="46" selection-start-line="103" selection-start-column="46" selection-end-line="103" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/FilesHandlers.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5/httpclient-4.5.jar!/org/apache/http/impl/client/CloseableHttpClient.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-3.3333333">
<caret line="27" column="22" selection-start-line="27" selection-start-column="22" selection-end-line="27" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5/httpclient-4.5-sources.jar!/org/apache/http/impl/client/CloseableHttpClient.java">
<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>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="25" column="55" selection-start-line="25" selection-start-column="55" selection-end-line="25" selection-end-column="55" />
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding>
<element signature="e#1443#1444#0" expanded="true" />
<element signature="e#1483#1484#0" expanded="true" />
<element signature="imports" expanded="true" />
</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/Update.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="21" column="59" selection-start-line="21" selection-start-column="59" selection-end-line="21" selection-end-column="59" />
<caret line="43" column="0" selection-start-line="43" selection-start-column="0" selection-end-line="43" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/src.zip!/java/util/logging/Level.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<state vertical-scroll-proportion="0.7928389">
<caret line="156" column="30" selection-start-line="156" selection-start-column="30" selection-end-line="156" selection-end-column="30" />
<folding />
</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">
<state vertical-scroll-proportion="0.33248082">
<caret line="1514" column="0" selection-start-line="1514" selection-start-column="0" selection-end-line="1514" selection-end-column="0" />
<folding>
<element signature="e#1815#1816#0" expanded="true" />
<element signature="e#1861#1862#0" expanded="true" />
<element signature="e#65752#65753#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/Main.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.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/BotConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="8" column="39" selection-start-line="8" selection-start-column="39" selection-end-line="8" selection-end-column="39" />
<caret line="9" column="91" selection-start-line="9" selection-start-column="47" selection-end-line="9" selection-end-column="91" />
<folding />
</state>
</provider>
</entry>
<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="0.71611255">
<caret line="67" column="33" selection-start-line="67" selection-start-column="33" selection-end-line="67" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3005#3006#0" expanded="true" />
<element signature="e#3032#3033#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/org/telegram/updatesreceivers/Webhook.java">
<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="-7.827586">
<caret line="1176" column="36" selection-start-line="1176" selection-start-column="36" selection-end-line="1176" selection-end-column="36" />
<folding />
</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.4961637">
<caret line="58" column="82" selection-start-line="58" selection-start-column="12" selection-end-line="58" selection-end-column="82" />
<folding>
<element signature="e#1902#1917#0" expanded="true" />
</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">
<caret line="29" column="27" selection-start-line="29" selection-start-column="27" selection-end-line="29" selection-end-column="27" />
<folding>
<element signature="e#1592#1593#0" expanded="true" />
<element signature="e#1649#1650#0" expanded="true" />
</folding>
</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="0.25575447">
<caret line="80" column="0" selection-start-line="80" selection-start-column="0" selection-end-line="80" selection-end-column="0" />
<folding>
<element signature="docComment;method#fetchWeatherForecast#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherForecastByLocation#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrent#0;class#WeatherService#0" expanded="false" />
<element signature="docComment;method#fetchWeatherCurrentByLocation#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" />
</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.0">
<caret line="173" column="0" selection-start-line="173" selection-start-column="0" selection-end-line="173" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<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.5396419">
<caret line="54" column="30" selection-start-line="54" selection-start-column="30" selection-end-line="54" selection-end-column="30" />
<state vertical-scroll-proportion="0.14285715">
<caret line="107" column="46" selection-start-line="107" selection-start-column="46" selection-end-line="107" selection-end-column="46" />
<folding />
</state>
</provider>

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

@ -20,6 +20,7 @@ import org.telegram.methods.Constants;
import org.telegram.methods.SendDocument;
import org.telegram.methods.SendMessage;
import org.telegram.methods.SetWebhook;
import org.telegram.services.BotLogger;
import java.io.File;
import java.io.IOException;
@ -34,6 +35,8 @@ import java.util.List;
* @date 20 of June of 2015
*/
public class SenderHelper {
private static volatile BotLogger log = BotLogger.getLogger(SenderHelper.class.getName());
public static Message SendMessage(SendMessage message, String botToken) {
try {
CloseableHttpClient httpclient = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
@ -54,6 +57,8 @@ public class SenderHelper {
nameValuePairs.add(new BasicNameValuePair(SendMessage.REPLYTOMESSAGEID_FIELD, message.getReplayToMessageId().toString()));
}
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
log.warning(httppost.toString());
log.warning(nameValuePairs.toString());
CloseableHttpResponse response = httpclient.execute(httppost);
HttpEntity ht = response.getEntity();

238
src/main/java/org/telegram/services/BotLogger.java

@ -1,79 +1,89 @@
package org.telegram.services;
import com.apple.concurrent.Dispatch;
import org.telegram.BuildVars;
import javax.validation.constraints.NotNull;
import java.io.*;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Ruben Bermudez
* @version 2.0
* @brief Logger to file
* @version 1.0
* @brief Logger
* @date 21/01/15
*/
public class BotLogger {
private static final Object lockToWrite = new Object();
private volatile Object lockToWrite = new Object();
private final Logger logger;
private static volatile PrintWriter logginFile;
private Calendar lastFileDate;
private static volatile String currentFileName;
private static LoggerThread loggerThread = new LoggerThread();
private static volatile ConcurrentHashMap<String, BotLogger> instances = new ConcurrentHashMap<>();
private final Logger logger;
private LocalDateTime lastFileDate;
private final static ConcurrentLinkedQueue<String> logsToFile = new ConcurrentLinkedQueue<>();
private BotLogger(String classname) {
this.logger = Logger.getLogger(classname);
this.logger.setLevel(Level.ALL);
this.lastFileDate = LocalDateTime.now();
if (currentFileName == null || currentFileName.compareTo("") == 0) {
currentFileName = BuildVars.pathToLogs + dateFormatterForFileName(this.lastFileDate) + ".log";
try {
File file = new File(currentFileName);
if (file.exists()) {
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} else {
boolean created = file.createNewFile();
if (created) {
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} else {
throw new NullPointerException("File for loggin error");
}
}
} catch (IOException ignored) {
}
static {
}
loggerThread.start();
}
public static BotLogger getLogger(@NotNull String className) {
BotLogger currentInstance;
if (instances.containsKey(className)) {
currentInstance = instances.get(className);
} else {
if (!instances.containsKey(className)) {
synchronized (BotLogger.class) {
if (instances.containsKey(className)) {
currentInstance = instances.get(className);
} else {
if (!instances.containsKey(className)) {
BotLogger instance = new BotLogger(className);
instances.put(className, instance);
currentInstance = instance;
return instance;
} else {
return instances.get(className);
}
}
} else {
return instances.get(className);
}
}
private BotLogger(String classname) {
logger = Logger.getLogger(classname);
logger.setLevel(Level.WARNING);
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.ALL);
logger.addHandler(handler);
lastFileDate = new GregorianCalendar();
if (currentFileName == null || currentFileName.length() == 0) {
currentFileName = BuildVars.pathToLogs + dateFormaterForFileName(lastFileDate) + ".log";
try {
File file = new File(currentFileName);
if (!file.exists()) {
file.createNewFile();
}
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return currentInstance;
}
}
public void log(@NotNull Level level, String msg) {
this.logger.log(level, msg);
logger.log(level, msg);
logToFile(level, msg);
}
public void severe(String msg) {
this.logger.severe(msg);
logger.severe(msg);
logToFile(Level.SEVERE, msg);
}
@ -94,49 +104,49 @@ public class BotLogger {
}
public void warning(String msg) {
this.logger.warning(msg);
logger.warning(msg);
logToFile(Level.WARNING, msg);
}
public void info(String msg) {
this.logger.info(msg);
logger.info(msg);
logToFile(Level.INFO, msg);
}
public void config(String msg) {
this.logger.config(msg);
logger.config(msg);
logToFile(Level.CONFIG, msg);
}
public void fine(String msg) {
this.logger.fine(msg);
logger.fine(msg);
logToFile(Level.FINE, msg);
}
public void finer(String msg) {
this.logger.finer(msg);
logger.finer(msg);
logToFile(Level.FINER, msg);
}
public void finest(String msg) {
this.logger.finest(msg);
logger.finest(msg);
logToFile(Level.FINEST, msg);
}
public void log(@NotNull Level level, @NotNull Throwable throwable) {
this.logger.log(level, "Exception", throwable);
throwable.printStackTrace();
logToFile(level, throwable);
}
public void log(@NotNull Level level, String msg, Throwable thrown) {
this.logger.log(level, msg, thrown);
logToFile(level, msg, thrown);
logger.log(level, msg, thrown);
logToFile(level, msg ,thrown);
}
public void severe(@NotNull Throwable throwable) {
@ -227,84 +237,94 @@ public class BotLogger {
log(Level.FINER, msg, throwable);
}
private boolean isCurrentDate(LocalDateTime dateTime) {
return dateTime.toLocalDate().isEqual(this.lastFileDate.toLocalDate());
private boolean isCurrentDate(Calendar calendar) {
if (calendar.get(Calendar.DAY_OF_MONTH) != lastFileDate.get(Calendar.DAY_OF_MONTH)) {
return false;
}
if (calendar.get(Calendar.MONTH) != lastFileDate.get(Calendar.MONTH)) {
return false;
}
if (calendar.get(Calendar.YEAR) != lastFileDate.get(Calendar.YEAR)) {
return false;
}
return true;
}
private String dateFormatterForFileName(@NotNull LocalDateTime dateTime) {
private String dateFormaterForFileName(@NotNull Calendar calendar) {
String dateString = "";
dateString += dateTime.getDayOfMonth();
dateString += dateTime.getMonthValue();
dateString += dateTime.getYear();
dateString += calendar.get(Calendar.DAY_OF_MONTH);
dateString += calendar.get(Calendar.MONTH) + 1;
dateString += calendar.get(Calendar.YEAR);
return dateString;
}
private String dateFormatterForLogs(@NotNull LocalDateTime dateTime) {
private String dateFormaterForLogs(@NotNull Calendar calendar) {
String dateString = "[";
dateString += dateTime.getDayOfMonth() + "_";
dateString += dateTime.getMonthValue() + "_";
dateString += dateTime.getYear() + "_";
dateString += dateTime.getHour() + ":";
dateString += dateTime.getMinute() + ":";
dateString += dateTime.getSecond();
dateString += calendar.get(Calendar.DAY_OF_MONTH) + "_";
dateString += (calendar.get(Calendar.MONTH) + 1) + "_";
dateString += calendar.get(Calendar.YEAR) + "_";
dateString += calendar.get(Calendar.HOUR_OF_DAY) + "_";
dateString += calendar.get(Calendar.MINUTE) + ":";
dateString += calendar.get(Calendar.SECOND);
dateString += "] ";
return dateString;
}
private void updateAndCreateFile(LocalDateTime dateTime) {
if (!isCurrentDate(dateTime)) {
this.lastFileDate = LocalDateTime.now();
currentFileName = BuildVars.pathToLogs + dateFormatterForFileName(this.lastFileDate) + ".log";
private void updateAndCreateFile(Calendar calendar) {
if (isCurrentDate(calendar)) {
return;
}
lastFileDate = new GregorianCalendar();
currentFileName = BuildVars.pathToLogs + dateFormaterForFileName(lastFileDate) + ".log";
try {
logginFile.flush();
logginFile.close();
File file = new File(currentFileName);
if (file.exists()) {
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} else {
boolean created = file.createNewFile();
if (created) {
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} else {
throw new NullPointerException("Error updating log file");
}
}
} catch (IOException ignored) {
if (!file.exists()) {
file.createNewFile();
}
logginFile = new PrintWriter(new BufferedWriter(new FileWriter(currentFileName, true)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void logToFile(@NotNull Level level, Throwable throwable) {
if (isLoggable(level)) {
if (!isLoggable(level)){
return;
}
synchronized (lockToWrite) {
LocalDateTime currentDate = LocalDateTime.now();
String dateForLog = dateFormatterForLogs(currentDate);
Calendar currentDate = new GregorianCalendar();
String dateForLog = dateFormaterForLogs(currentDate);
updateAndCreateFile(currentDate);
logThrowableToFile(level, throwable, dateForLog);
}
}
}
private void logToFile(@NotNull Level level, String msg) {
if (isLoggable(level)) {
if (!isLoggable(level)){
return;
}
synchronized (lockToWrite) {
LocalDateTime currentDate = LocalDateTime.now();
Calendar currentDate = new GregorianCalendar();
updateAndCreateFile(currentDate);
String dateForLog = dateFormatterForLogs(currentDate);
String dateForLog = dateFormaterForLogs(currentDate);
logMsgToFile(level, msg, dateForLog);
}
}
}
private void logToFile(Level level, String msg, Throwable throwable) {
if (!isLoggable(level)) {
if (!isLoggable(level)){
return;
}
synchronized (lockToWrite) {
LocalDateTime currentDate = LocalDateTime.now();
Calendar currentDate = new GregorianCalendar();
updateAndCreateFile(currentDate);
String dateForLog = dateFormatterForLogs(currentDate);
String dateForLog = dateFormaterForLogs(currentDate);
logMsgToFile(level, msg, dateForLog);
logThrowableToFile(level, throwable, dateForLog);
}
@ -312,20 +332,25 @@ public class BotLogger {
private void logMsgToFile(Level level, String msg, String dateForLog) {
dateForLog += level.toString() + " - " + msg;
logginFile.println(dateForLog);
logginFile.flush();
logsToFile.add(dateForLog);
synchronized (logsToFile) {
logsToFile.notifyAll();
}
}
private void logThrowableToFile(Level level, Throwable throwable, String dateForLog) {
logginFile.println(dateForLog + level.getName() + " - " + throwable);
String throwableLog = dateForLog + level.getName() + " - " + throwable + "\n";
for (StackTraceElement element : throwable.getStackTrace()) {
logginFile.println("\tat " + element);
throwableLog += "\tat " + element + "\n";
}
logsToFile.add(throwableLog);
synchronized (logsToFile) {
logsToFile.notifyAll();
}
logginFile.flush();
}
private boolean isLoggable(Level level) {
return this.logger.isLoggable(level) && BuildVars.debug;
return logger.isLoggable(level) && BuildVars.debug;
}
@Override
@ -334,4 +359,33 @@ public class BotLogger {
logginFile.close();
super.finalize();
}
private static class LoggerThread extends Thread {
@Override
public void run() {
setPriority(Thread.MIN_PRIORITY);
while(true) {
ConcurrentLinkedQueue<String> stringsToLog = new ConcurrentLinkedQueue<>();
synchronized (logsToFile) {
if (logsToFile.isEmpty()) {
try {
logsToFile.wait();
} catch (InterruptedException e) {
return;
}
if (logsToFile.isEmpty()) {
continue;
}
}
stringsToLog.addAll(logsToFile);
logsToFile.clear();
}
for (String stringToLog: stringsToLog) {
logginFile.println(stringToLog);
}
logginFile.flush();
}
}
}
}

45
src/main/java/org/telegram/services/DirectionsService.java

@ -17,6 +17,8 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Ruben Bermudez
@ -64,8 +66,8 @@ public class DirectionsService {
* @param destination Destination address
* @return Destinations
*/
public String getDirections(String origin, String destination) {
String responseToUser;
public List<String> getDirections(String origin, String destination) {
final List<String> responseToUser = new ArrayList<>();
try {
String completURL = BASEURL + "?origin=" + getQuery(origin) + "&destination=" + getQuery(destination) + PARAMS + APIIDEND;
HttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
@ -79,20 +81,22 @@ public class DirectionsService {
JSONObject jsonObject = new JSONObject(responseContent);
if (jsonObject.getString("status").equals("OK")) {
JSONObject route = jsonObject.getJSONArray("routes").getJSONObject(0);
responseToUser = route.getJSONArray("legs").getJSONObject(0).getString("start_address");
responseToUser += " is ";
responseToUser += route.getJSONArray("legs").getJSONObject(0).getJSONObject("distance").getString("text");
responseToUser += " away from ";
responseToUser += route.getJSONArray("legs").getJSONObject(0).getString("end_address"); // TODO Destination
responseToUser += " and it takes ";
responseToUser += route.getJSONArray("legs").getJSONObject(0).getJSONObject("duration").getString("text");
responseToUser += " to arrive there following these directions:\n\n";
responseToUser += getDirectionsSteps(route.getJSONArray("legs").getJSONObject(0).getJSONArray("steps"));
String partialResponseToUser;
partialResponseToUser = route.getJSONArray("legs").getJSONObject(0).getString("start_address");
partialResponseToUser += " is ";
partialResponseToUser += route.getJSONArray("legs").getJSONObject(0).getJSONObject("distance").getString("text");
partialResponseToUser += " away from ";
partialResponseToUser += route.getJSONArray("legs").getJSONObject(0).getString("end_address"); // TODO Destination
partialResponseToUser += " and it takes ";
partialResponseToUser += route.getJSONArray("legs").getJSONObject(0).getJSONObject("duration").getString("text");
partialResponseToUser += " to arrive there following these directions:\n\n";
responseToUser.add(partialResponseToUser);
responseToUser.addAll(getDirectionsSteps(route.getJSONArray("legs").getJSONObject(0).getJSONArray("steps")));
} else {
responseToUser = "Directions not found between " + origin + " and " + destination;
responseToUser.add("Directions not found between " + origin + " and " + destination);
}
} catch (Exception e) {
responseToUser = "Error fetching weather info";
responseToUser.add("Error fetching weather info");
}
return responseToUser;
}
@ -101,10 +105,19 @@ public class DirectionsService {
return URLEncoder.encode(address, "UTF-8");
}
private String getDirectionsSteps(JSONArray steps) {
String stepsStringify = "";
private List<String> getDirectionsSteps(JSONArray steps) {
List<String> stepsStringify = new ArrayList<>();
String partialStepsStringify = "";
for (int i = 0; i < steps.length(); i++) {
stepsStringify += i + ".\t" + getDirectionForStep(steps.getJSONObject(i)) + "\n\n";
String step = getDirectionForStep(steps.getJSONObject(i));
if (partialStepsStringify.length() > 1000) {
stepsStringify.add(partialStepsStringify);
partialStepsStringify = "";
}
partialStepsStringify += i + ".\t" + step + "\n\n";
}
if (!partialStepsStringify.isEmpty()) {
stepsStringify.add(partialStepsStringify);
}
return stepsStringify;
}

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

@ -1,10 +1,15 @@
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;
import org.apache.http.entity.BufferedHttpEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.telegram.BuildVars;
import org.telegram.database.DatabaseManager;
@ -26,6 +31,7 @@ import java.time.format.DateTimeFormatter;
* @date 20 of June of 2015
*/
public class WeatherService {
private static volatile BotLogger log = BotLogger.getLogger(WeatherService.class.getName());
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";
@ -73,17 +79,17 @@ public class WeatherService {
String responseToUser;
try {
String completURL = BASEURL + FORECASTPATH + "?" + getCityQuery(city) + FORECASTPARAMS + APIIDEND;
HttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
CloseableHttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
HttpGet request = new HttpGet(completURL);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
String responseString = "";
while ((line = rd.readLine()) != null) {
responseString += line;
}
CloseableHttpResponse response = client.execute(request);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
String responseString = EntityUtils.toString(buf, "UTF-8");
JSONObject jsonObject = new JSONObject(responseString);
log.warning(jsonObject.toString());
if (jsonObject.getInt("cod") == 200) {
cityFound = jsonObject.getJSONObject("city").getString("name") + " (" +
jsonObject.getJSONObject("city").getString("country") + ")";
@ -93,9 +99,11 @@ public class WeatherService {
responseToUser += "Thank you for using our Weather Bot.\n\n" +
"Your Telegram Team";
} else {
log.warning(jsonObject.toString());
responseToUser = "City not found";
}
} catch (Exception e) {
log.error(e);
responseToUser = "Error fetching weather info";
}
return responseToUser;
@ -112,15 +120,13 @@ public class WeatherService {
String responseToUser;
try {
String completURL = BASEURL + FORECASTPATH + "?lat=" + URLEncoder.encode(latitude + "", "UTF-8") + "&lon=" + URLEncoder.encode(longitude + "", "UTF-8") + FORECASTPARAMS + APIIDEND;;
HttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
CloseableHttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
HttpGet request = new HttpGet(completURL);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
String responseString = "";
while ((line = rd.readLine()) != null) {
responseString += line;
}
CloseableHttpResponse response = client.execute(request);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
String responseString = EntityUtils.toString(buf, "UTF-8");
JSONObject jsonObject = new JSONObject(responseString);
if (jsonObject.getInt("cod") == 200) {
@ -132,9 +138,11 @@ public class WeatherService {
responseToUser += "Thank you for using our Weather Bot.\n\n" +
"Your Telegram Team";
} else {
log.warning(jsonObject.toString());
responseToUser = "City not found";
}
} catch (Exception e) {
log.error(e);
responseToUser = "Error fetching weather info";
}
return responseToUser;
@ -152,15 +160,13 @@ public class WeatherService {
String responseToUser;
try {
String completURL = BASEURL + CURRENTPATH + "?" + getCityQuery(city) + CURRENTPARAMS + APIIDEND;
HttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
CloseableHttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
HttpGet request = new HttpGet(completURL);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
String responseString = "";
while ((line = rd.readLine()) != null) {
responseString += line;
}
CloseableHttpResponse response = client.execute(request);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
String responseString = EntityUtils.toString(buf, "UTF-8");
JSONObject jsonObject = new JSONObject(responseString);
if (jsonObject.getInt("cod") == 200) {
@ -172,9 +178,11 @@ public class WeatherService {
responseToUser += "Thank you for using our Weather Bot.\n\n" +
"Your Telegram Team";
} else {
log.warning(jsonObject.toString());
responseToUser = "City not found";
}
} catch (Exception e) {
log.error(e);
responseToUser = "Error fetching weather info";
}
return responseToUser;
@ -191,15 +199,13 @@ public class WeatherService {
String responseToUser;
try {
String completURL = BASEURL + CURRENTPATH + "?q=" + URLEncoder.encode("lat=" + latitude + "&lon=" + longitude, "UTF-8") + CURRENTPARAMS + APIIDEND;;
HttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
CloseableHttpClient client = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
HttpGet request = new HttpGet(completURL);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
String responseString = "";
while ((line = rd.readLine()) != null) {
responseString += line;
}
CloseableHttpResponse response = client.execute(request);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
String responseString = EntityUtils.toString(buf, "UTF-8");
JSONObject jsonObject = new JSONObject(responseString);
if (jsonObject.getInt("cod") == 200) {
@ -211,9 +217,11 @@ public class WeatherService {
responseToUser += "Thank you for using our Weather Bot.\n\n" +
"Your Telegram Team";
} else {
log.warning(jsonObject.toString());
responseToUser = "City not found";
}
} catch (Exception e) {
log.error(e);
responseToUser = "Error fetching weather info";
}
return responseToUser;

9
src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java

@ -89,15 +89,18 @@ public class DirectionsHandlers implements UpdatesCallback {
DatabaseManager.getInstance().getUserDestinationMessageId(message.getFrom().getId()) == message.getReplyToMessage().getMessageId()) {
String origin = DatabaseManager.getInstance().getUserOrigin(message.getFrom().getId());
String destiny = message.getText();
String directions = DirectionsService.getInstance().getDirections(origin, destiny);
List<String> directions = DirectionsService.getInstance().getDirections(origin, destiny);
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
sendMessageRequest.setReplayMarkup(replyKeyboardHide);
sendMessageRequest.setReplayToMessageId(message.getMessageId());
sendMessageRequest.setText(directions);
Message sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN);
Message sentMessage = null;
for (String direction: directions) {
sendMessageRequest.setText(direction);
sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN);
}
if (sentMessage != null) {
DatabaseManager.getInstance().deleteUserForDirections(message.getFrom().getId());
}

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

@ -1,10 +1,7 @@
package org.telegram.updateshandlers;
import org.telegram.*;
import org.telegram.api.ForceReply;
import org.telegram.api.Message;
import org.telegram.api.ReplyKeyboardMarkup;
import org.telegram.api.Update;
import org.telegram.api.*;
import org.telegram.database.DatabaseManager;
import org.telegram.methods.SendMessage;
import org.telegram.services.BotLogger;
@ -64,6 +61,11 @@ public class WeatherHandlers implements UpdatesCallback {
String citywithoutdescription = parts[1].split("-->", 2)[0].trim();
String weather = WeatherService.getInstance().fetchWeatherForecast(citywithoutdescription, message.getFrom().getId());
SendMessage sendMessageRequest = new SendMessage();
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
replyKeyboardHide.setHideKeyboard(true);
sendMessageRequest.setReplayMarkup(replyKeyboardHide);
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId());
sendMessageRequest.setText(weather);
sendMessageRequest.setChatId(message.getChatId());
SenderHelper.SendMessage(sendMessageRequest, TOKEN);
@ -105,6 +107,11 @@ public class WeatherHandlers implements UpdatesCallback {
String citywithoutdescription = parts[1].split("-->", 2)[0].trim();
String weather = WeatherService.getInstance().fetchWeatherCurrent(citywithoutdescription, message.getFrom().getId());
SendMessage sendMessageRequest = new SendMessage();
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
replyKeyboardHide.setHideKeyboard(true);
sendMessageRequest.setReplayMarkup(replyKeyboardHide);
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId());
sendMessageRequest.setText(weather);
sendMessageRequest.setChatId(message.getChatId());
SenderHelper.SendMessage(sendMessageRequest, TOKEN);
@ -150,6 +157,11 @@ public class WeatherHandlers implements UpdatesCallback {
String weather = WeatherService.getInstance().fetchWeatherForecast(message.getText(), message.getFrom().getId());
sendMessageRequest.setText(weather);
}
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
replyKeyboardHide.setHideKeyboard(true);
sendMessageRequest.setReplayMarkup(replyKeyboardHide);
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId());
sendMessageRequest.setChatId(message.getChatId());
SenderHelper.SendMessage(sendMessageRequest, TOKEN);
} else if (parts[0].startsWith(Commands.help) ||
@ -163,6 +175,11 @@ public class WeatherHandlers implements UpdatesCallback {
String weather = WeatherService.getInstance().fetchWeatherForecastByLocation(message.getLocation().getLongitude(),
message.getLocation().getLatitude(), message.getFrom().getId());
SendMessage sendMessageRequest = new SendMessage();
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
replyKeyboardHide.setHideKeyboard(true);
sendMessageRequest.setReplayMarkup(replyKeyboardHide);
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId());
sendMessageRequest.setText(weather);
sendMessageRequest.setChatId(message.getChatId());
SenderHelper.SendMessage(sendMessageRequest, TOKEN);

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

@ -1,12 +1,17 @@
package org.telegram.updatesreceivers;
import jdk.internal.org.objectweb.asm.Handle;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.entity.BufferedHttpEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
@ -15,6 +20,8 @@ import org.telegram.BuildVars;
import org.telegram.api.Update;
import org.telegram.methods.Constants;
import org.telegram.methods.GetUpdates;
import org.telegram.methods.SendMessage;
import org.telegram.services.BotLogger;
import org.telegram.updateshandlers.UpdatesCallback;
import java.io.IOException;
@ -32,6 +39,8 @@ import java.util.concurrent.ConcurrentLinkedQueue;
* @date 20 of June of 2015
*/
public class UpdatesThread {
private static volatile BotLogger log = BotLogger.getLogger(UpdatesThread.class.getName());
private final UpdatesCallback callback;
private final ReaderThread readerThread;
private final HandlerThread handlerThread;
@ -52,17 +61,27 @@ public class UpdatesThread {
private class ReaderThread extends Thread {
@Override
public void run() {
setPriority(Thread.MIN_PRIORITY);
while(true) {
GetUpdates request = new GetUpdates();
request.setOffset(lastReceivedUpdate+1);
request.setLimit(100);
request.setOffset(lastReceivedUpdate + 1);
CloseableHttpClient httpclient = HttpClientBuilder.create().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
String url = Constants.BASEURL + token + "/" + GetUpdates.PATH;
HttpGet httpGet = new HttpGet(url + request.getUrlParams());
httpGet.addHeader("Content-type", "application/x-www-form-urlencoded");
httpGet.addHeader("charset", "UTF-8");
HttpResponse response;
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair(GetUpdates.OFFSET_FIELD, "0"));
nameValuePairs.add(new BasicNameValuePair(GetUpdates.LIMIT_FIELD, request.getLimit()+""));
if (request.getTimeout() != null) {
nameValuePairs.add(new BasicNameValuePair(GetUpdates.TIMEOUT_FIELD, request.getTimeout()+""));
}
try {
response = httpclient.execute(httpGet);
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
httpPost.addHeader("Content-type", "application/x-www-form-urlencoded");
httpPost.addHeader("charset", "UTF-8");
HttpResponse response;
log.debug(httpPost.toString());
response = httpclient.execute(httpPost);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
@ -74,8 +93,9 @@ public class UpdatesThread {
throw new InvalidObjectException(jsonObject.toString());
}
JSONArray jsonArray = jsonObject.getJSONArray("result");
log.debug(jsonArray.toString());
if (jsonArray.length() != 0) {
List<Update> updates = new ArrayList<Update>();
List<Update> updates = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
Update update = new Update(jsonArray.getJSONObject(i));
if (update.getUpdateId() > lastReceivedUpdate) {
@ -84,8 +104,8 @@ public class UpdatesThread {
updates.add(update);
}
receivedUpdates.addAll(updates);
synchronized (receivedUpdates) {
receivedUpdates.addAll(updates);
receivedUpdates.notifyAll();
}
} else {
@ -99,14 +119,7 @@ public class UpdatesThread {
}
}
} catch (JSONException e) {
try {
synchronized (this) {
this.wait(500);
}
} catch (InterruptedException e1) {
e.printStackTrace();
continue;
}
}
} catch (IOException e) {
e.printStackTrace();
@ -118,6 +131,7 @@ public class UpdatesThread {
private class HandlerThread extends Thread {
@Override
public void run() {
setPriority(Thread.MIN_PRIORITY);
while(true) {
Update update = receivedUpdates.poll();
if (update == null) {

Loading…
Cancel
Save