Browse Source

1. Samples Bots 2.0

master
Rubenlagu 10 years ago
committed by Rubenlagus
parent
commit
f33714eaf5
  1. 8
      .idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_0_0.xml
  2. 2
      BotAPi.iml
  3. 4
      pom.xml
  4. 10
      src/main/java/org/telegram/services/TransifexService.java
  5. 6
      src/main/java/org/telegram/updateshandlers/ChannelHandlers.java
  6. 13
      src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java
  7. 17
      src/main/java/org/telegram/updateshandlers/FilesHandlers.java
  8. 21
      src/main/java/org/telegram/updateshandlers/RaeHandlers.java
  9. 4
      src/main/java/org/telegram/updateshandlers/TransifexHandlers.java
  10. 65
      src/main/java/org/telegram/updateshandlers/WeatherHandlers.java

8
.idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v1_0.xml → .idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_0_0.xml

@ -1,13 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.github.rubenlagus:TelegramBots:v1.0">
<library name="Maven: com.github.rubenlagus:TelegramBots:v2.0.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v1.0/TelegramBots-v1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v2.0.0/TelegramBots-v2.0.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v1.0/TelegramBots-v1.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v2.0.0/TelegramBots-v2.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v1.0/TelegramBots-v1.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/github/rubenlagus/TelegramBots/v2.0.0/TelegramBots-v2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

2
BotAPi.iml

@ -11,7 +11,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.github.rubenlagus:TelegramBots:v1.0" level="project" />
<orderEntry type="library" name="Maven: com.github.rubenlagus:TelegramBots:v2.0.0" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.22.1" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.hk2.external:javax.inject:2.4.0-b31" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.grizzly:grizzly-http-server:2.3.23" level="project" />

4
pom.xml

@ -6,7 +6,7 @@
<groupId>BotApi</groupId>
<artifactId>org.telegram.botapi</artifactId>
<version>1.0</version>
<version>2.0</version>
<repositories>
<repository>
@ -26,7 +26,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jersey.version>2.22.1</jersey.version>
<httpcompontents.version>4.5.1</httpcompontents.version>
<telegrambots.version>v1.0</telegrambots.version>
<telegrambots.version>v2.0.0</telegrambots.version>
</properties>
<dependencyManagement>

10
src/main/java/org/telegram/services/TransifexService.java

@ -8,9 +8,15 @@ import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.telegram.BuildVars;
import org.telegram.telegrambots.api.methods.SendDocument;
import org.telegram.telegrambots.api.methods.send.SendDocument;
import java.io.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
/**
* @author Ruben Bermudez

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

@ -3,11 +3,11 @@ package org.telegram.updateshandlers;
import org.telegram.BotConfig;
import org.telegram.services.BotLogger;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.objects.ForceReplyKeyboard;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import java.io.InvalidObjectException;

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

@ -9,8 +9,13 @@ import org.telegram.services.DirectionsService;
import org.telegram.services.LocalisationService;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.BotApiMethod;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.objects.*;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.updateshandlers.SentCallback;
@ -222,9 +227,9 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
sendMessageRequest.setChatId(message.getChatId().toString());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
HashMap<String, String> languages = LocalisationService.getInstance().getSupportedLanguages();
List<List<String>> commands = new ArrayList<>();
List<KeyboardRow> commands = new ArrayList<>();
for (Map.Entry<String, String> entry : languages.entrySet()) {
List<String> commandRow = new ArrayList<>();
KeyboardRow commandRow = new KeyboardRow();
commandRow.add(entry.getKey() + " --> " + entry.getValue());
commands.add(commandRow);
}

17
src/main/java/org/telegram/updateshandlers/FilesHandlers.java

@ -7,12 +7,13 @@ import org.telegram.services.BotLogger;
import org.telegram.services.Emoji;
import org.telegram.services.LocalisationService;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.SendDocument;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.methods.send.SendDocument;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import java.io.InvalidObjectException;
@ -144,9 +145,9 @@ public class FilesHandlers extends TelegramLongPollingBot {
HashMap<String, String> files = DatabaseManager.getInstance().getFilesByUser(message.getFrom().getId());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
if (files.size() > 0) {
List<List<String>> commands = new ArrayList<>();
List<KeyboardRow> commands = new ArrayList<>();
for (Map.Entry<String, String> entry : files.entrySet()) {
List<String> commandRow = new ArrayList<>();
KeyboardRow commandRow = new KeyboardRow();
commandRow.add(Commands.deleteCommand + " " + entry.getKey() + " " + Emoji.LEFT_RIGHT_ARROW.toString()
+ " " + entry.getValue());
commands.add(commandRow);
@ -244,9 +245,9 @@ public class FilesHandlers extends TelegramLongPollingBot {
sendMessageRequest.setChatId(message.getChatId().toString());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
HashMap<String, String> languages = LocalisationService.getInstance().getSupportedLanguages();
List<List<String>> commands = new ArrayList<>();
List<KeyboardRow> commands = new ArrayList<>();
for (Map.Entry<String, String> entry : languages.entrySet()) {
List<String> commandRow = new ArrayList<>();
KeyboardRow commandRow = new KeyboardRow();
commandRow.add(entry.getKey() + " " + Emoji.LEFT_RIGHT_ARROW.toString() + " " + entry.getValue());
commands.add(commandRow);
}

21
src/main/java/org/telegram/updateshandlers/RaeHandlers.java

@ -5,8 +5,13 @@ import org.telegram.services.BotLogger;
import org.telegram.services.RaeService;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.AnswerInlineQuery;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.objects.*;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.inlinequery.InlineQuery;
import org.telegram.telegrambots.api.objects.inlinequery.inputmessagecontent.InputTextMessageContent;
import org.telegram.telegrambots.api.objects.inlinequery.result.InlineQueryResult;
import org.telegram.telegrambots.api.objects.inlinequery.result.InlineQueryResultArticle;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import java.util.ArrayList;
@ -64,9 +69,9 @@ public class RaeHandlers extends TelegramLongPollingBot {
try {
if (!query.isEmpty()) {
List<RaeService.RaeResult> results = raeService.getResults(query);
sendAnswerInlineQuery(converteResultsToResponse(inlineQuery, results));
answerInlineQuery(converteResultsToResponse(inlineQuery, results));
} else {
sendAnswerInlineQuery(converteResultsToResponse(inlineQuery, new ArrayList<>()));
answerInlineQuery(converteResultsToResponse(inlineQuery, new ArrayList<>()));
}
} catch (TelegramApiException e) {
BotLogger.error(LOGTAG, e);
@ -97,11 +102,13 @@ public class RaeHandlers extends TelegramLongPollingBot {
for (int i = 0; i < raeResults.size(); i++) {
RaeService.RaeResult raeResult = raeResults.get(i);
InputTextMessageContent messageContent = new InputTextMessageContent();
messageContent.disableWebPagePreview();
messageContent.enableMarkdown(true);
messageContent.setMessageText(raeResult.getDefinition());
InlineQueryResultArticle article = new InlineQueryResultArticle();
article.setDisableWebPagePreview(true);
article.enableMarkdown(true);
article.setInputMessageContent(messageContent);
article.setId(Integer.toString(i));
article.setMessageText(raeResult.getDefinition());
article.setTitle(raeResult.getTitle());
article.setDescription(raeResult.getDescription());
article.setThumbUrl(THUMBNAILBLUE);

4
src/main/java/org/telegram/updateshandlers/TransifexHandlers.java

@ -7,8 +7,8 @@ import org.telegram.services.BotLogger;
import org.telegram.services.LocalisationService;
import org.telegram.services.TransifexService;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.SendDocument;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.methods.send.SendDocument;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;

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

@ -3,11 +3,22 @@ package org.telegram.updateshandlers;
import org.telegram.BotConfig;
import org.telegram.Commands;
import org.telegram.database.DatabaseManager;
import org.telegram.services.*;
import org.telegram.services.BotLogger;
import org.telegram.services.CustomTimerTask;
import org.telegram.services.Emoji;
import org.telegram.services.LocalisationService;
import org.telegram.services.TimerExecutor;
import org.telegram.services.WeatherService;
import org.telegram.structure.WeatherAlert;
import org.telegram.telegrambots.TelegramApiException;
import org.telegram.telegrambots.api.methods.SendMessage;
import org.telegram.telegrambots.api.objects.*;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboard;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import java.util.ArrayList;
@ -899,11 +910,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
List<List<String>> keyboard = new ArrayList<>();
List<String> keyboardFirstRow = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
KeyboardRow keyboardFirstRow = new KeyboardRow();
keyboardFirstRow.add(getCurrentCommand(language));
keyboardFirstRow.add(getForecastCommand(language));
List<String> keyboardSecondRow = new ArrayList<>();
KeyboardRow keyboardSecondRow = new KeyboardRow();
keyboardSecondRow.add(getSettingsCommand(language));
keyboardSecondRow.add(getRateCommand(language));
keyboard.add(keyboardFirstRow);
@ -919,14 +930,14 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
List<List<String>> keyboard = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
for (String languageName : LocalisationService.getInstance().getSupportedLanguages().values()) {
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(languageName);
keyboard.add(row);
}
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(getCancelCommand(language));
keyboard.add(row);
replyKeyboardMarkup.setKeyboard(keyboard);
@ -940,14 +951,14 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
List<List<String>> keyboard = new ArrayList<>();
List<String> row = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(LocalisationService.getInstance().getString("metricSystem", language));
keyboard.add(row);
row = new ArrayList<>();
row = new KeyboardRow();
row.add(LocalisationService.getInstance().getString("imperialSystem", language));
keyboard.add(row);
row = new ArrayList<>();
row = new KeyboardRow();
row.add(getCancelCommand(language));
keyboard.add(row);
replyKeyboardMarkup.setKeyboard(keyboard);
@ -961,11 +972,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
List<List<String>> keyboard = new ArrayList<>();
List<String> keyboardFirstRow = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
KeyboardRow keyboardFirstRow = new KeyboardRow();
keyboardFirstRow.add(getLanguagesCommand(language));
keyboardFirstRow.add(getUnitsCommand(language));
List<String> keyboardSecondRow = new ArrayList<>();
KeyboardRow keyboardSecondRow = new KeyboardRow();
keyboardSecondRow.add(getAlertsCommand(language));
keyboardSecondRow.add(getBackCommand(language));
keyboard.add(keyboardFirstRow);
@ -985,23 +996,23 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(true);
List<List<String>> keyboard = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
for (String recentWeather : DatabaseManager.getInstance().getRecentWeather(userId)) {
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(recentWeather);
keyboard.add(row);
}
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
if (allowNew) {
row.add(getLocationCommand(language));
keyboard.add(row);
row = new ArrayList<>();
row = new KeyboardRow();
row.add(getNewCommand(language));
keyboard.add(row);
row = new ArrayList<>();
row = new KeyboardRow();
}
row.add(getCancelCommand(language));
keyboard.add(row);
@ -1017,14 +1028,14 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(true);
List<List<String>> keyboard = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(getNewCommand(language));
row.add(getDeleteCommand(language));
keyboard.add(row);
row = new ArrayList<>();
row = new KeyboardRow();
row.add(getListCommand(language));
row.add(getBackCommand(language));
keyboard.add(row);
@ -1044,13 +1055,13 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(true);
List<List<String>> keyboard = new ArrayList<>();
List<KeyboardRow> keyboard = new ArrayList<>();
for (String alertCityName: alertCitiesNames) {
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(alertCityName);
keyboard.add(row);
}
List<String> row = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(getCancelCommand(language));
keyboard.add(row);

Loading…
Cancel
Save