From 25392ed1e9bbb7c440c0dc4697eba6af3e1130c5 Mon Sep 17 00:00:00 2001 From: Timo Schulz Date: Sun, 26 Jun 2016 19:51:28 +0200 Subject: [PATCH] Added Command bot example (#27) * remove IDE files from tracking * teach git how to ignore IDE files * remove .DS_Store files from tracking * Update version * bring code to new version * Reorganize configuration entries and add command bot entries * change config variable names * update database stuff to contain data for commands bot * implement hello command * implement help command * implement start command * implement stop command * register Commandshandler * rename WebHookExampleHandlers * rename webhook handler --- ...ithub_rubenlagus_TelegramBots_v2_3_3_2.xml | 13 --- pom.xml | 2 +- src/main/java/org/telegram/BotConfig.java | 37 +++++---- src/main/java/org/telegram/Main.java | 9 +- .../org/telegram/commands/HelloCommand.java | 55 +++++++++++++ .../org/telegram/commands/HelpCommand.java | 54 ++++++++++++ .../org/telegram/commands/StartCommand.java | 51 ++++++++++++ .../org/telegram/commands/StopCommand.java | 48 +++++++++++ .../telegram/database/CreationStrings.java | 4 +- .../telegram/database/DatabaseManager.java | 40 +++++++++ .../updateshandlers/ChannelHandlers.java | 5 +- .../updateshandlers/CommandsHandler.java | 82 +++++++++++++++++++ .../updateshandlers/DirectionsHandlers.java | 5 +- .../updateshandlers/FilesHandlers.java | 6 +- .../telegram/updateshandlers/RaeHandlers.java | 4 +- .../updateshandlers/TransifexHandlers.java | 4 +- .../updateshandlers/WeatherHandlers.java | 12 +-- .../WebHookExampleHandlers.java | 6 +- 18 files changed, 375 insertions(+), 62 deletions(-) delete mode 100644 .idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_3_3_2.xml create mode 100644 src/main/java/org/telegram/commands/HelloCommand.java create mode 100644 src/main/java/org/telegram/commands/HelpCommand.java create mode 100644 src/main/java/org/telegram/commands/StartCommand.java create mode 100644 src/main/java/org/telegram/commands/StopCommand.java create mode 100644 src/main/java/org/telegram/updateshandlers/CommandsHandler.java diff --git a/.idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_3_3_2.xml b/.idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_3_3_2.xml deleted file mode 100644 index 4154829..0000000 --- a/.idea/libraries/Maven__com_github_rubenlagus_TelegramBots_v2_3_3_2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 1982eb8..2aa5a6d 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ UTF-8 UTF-8 4.5.2 - v2.3.3.2 + v2.3.3.3 20160212 5.1.39 diff --git a/src/main/java/org/telegram/BotConfig.java b/src/main/java/org/telegram/BotConfig.java index 353e876..4ee72f7 100644 --- a/src/main/java/org/telegram/BotConfig.java +++ b/src/main/java/org/telegram/BotConfig.java @@ -7,18 +7,27 @@ package org.telegram; * @date 20 of June of 2015 */ public class BotConfig { - public static final String TOKENWEATHER = ""; - public static final String USERNAMEWEATHER = "weatherbot"; - public static final String TOKENTRANSIFEX = ""; - public static final String USERNAMETRANSIFEX = "TGlanguagesbot"; - public static final String TOKENFILES = ""; - public static final String USERNAMEFILES = "filesbot"; - public static final String TOKENDIRECTIONS = ""; - public static final String USERNAMEDIRECTIONS = "directionsbot"; - public static final String TOKENCHANNEL = ""; - public static final String USERNAMECHANNEL = "channelupdatesbot"; - public static final String TOKENRAE = ""; - public static final String USERNAMERAE = "raebot"; - public static final String TOKENWEBHOOK = ""; - public static final String USERNAMEWEBHOOK = "webhooksamplebot"; + public static final String WEATHER_TOKEN = ""; + public static final String WEATHER_USER = "weatherbot"; + + public static final String TRANSIFEX_TOKEN = ""; + public static final String TRANSIFEX_USER = "TGlanguagesbot"; + + public static final String FILES_TOKEN = ""; + public static final String FILES_USER = "filesbot"; + + public static final String DIRECTIONS_TOKEN = ""; + public static final String DIRECTIONS_USER = "directionsbot"; + + public static final String CHANNEL_TOKEN = ""; + public static final String CHANNEL_USER = "channelupdatesbot"; + + public static final String RAE_TOKEN = ""; + public static final String RAE_USER = "raebot"; + + public static final String WEBHOOK_TOKEN = ""; + public static final String WEBHOOK_USER = "webhooksamplebot"; + + public static final String COMMANDS_TOKEN = ""; + public static final String COMMANDS_USER = "MyCommandsBot"; } diff --git a/src/main/java/org/telegram/Main.java b/src/main/java/org/telegram/Main.java index cc1b17a..f0ce3db 100644 --- a/src/main/java/org/telegram/Main.java +++ b/src/main/java/org/telegram/Main.java @@ -4,13 +4,7 @@ import org.telegram.telegrambots.TelegramApiException; import org.telegram.telegrambots.TelegramBotsApi; import org.telegram.telegrambots.logging.BotLogger; import org.telegram.telegrambots.logging.BotsFileHandler; -import org.telegram.updateshandlers.ChannelHandlers; -import org.telegram.updateshandlers.DirectionsHandlers; -import org.telegram.updateshandlers.FilesHandlers; -import org.telegram.updateshandlers.RaeHandlers; -import org.telegram.updateshandlers.TransifexHandlers; -import org.telegram.updateshandlers.WeatherHandlers; -import org.telegram.updateshandlers.WebHookExampleHandlers; +import org.telegram.updateshandlers.*; import java.io.IOException; import java.util.logging.ConsoleHandler; @@ -44,6 +38,7 @@ public class Main { telegramBotsApi.registerBot(new WeatherHandlers()); telegramBotsApi.registerBot(new TransifexHandlers()); telegramBotsApi.registerBot(new FilesHandlers()); + telegramBotsApi.registerBot(new CommandsHandler()); } catch (TelegramApiException e) { BotLogger.error(LOGTAG, e); } diff --git a/src/main/java/org/telegram/commands/HelloCommand.java b/src/main/java/org/telegram/commands/HelloCommand.java new file mode 100644 index 0000000..765be27 --- /dev/null +++ b/src/main/java/org/telegram/commands/HelloCommand.java @@ -0,0 +1,55 @@ +package org.telegram.commands; + +import org.telegram.database.DatabaseManager; +import org.telegram.telegrambots.TelegramApiException; +import org.telegram.telegrambots.api.methods.send.SendMessage; +import org.telegram.telegrambots.api.objects.Chat; +import org.telegram.telegrambots.api.objects.User; +import org.telegram.telegrambots.bots.AbsSender; +import org.telegram.telegrambots.bots.commands.BotCommand; +import org.telegram.telegrambots.logging.BotLogger; + +/** + * This command simply replies with a hello to the users command and + * sends them the 'kind' words back, which they send via command parameters + * + * @author Timo Schulz (Mit0x2) + */ +public class HelloCommand extends BotCommand { + + private static final String LOGTAG = "HELLOCOMMAND"; + + public HelloCommand() { + super("hello", "Say hallo to this bot"); + } + + @Override + public void execute(AbsSender absSender, User user, Chat chat, String[] arguments) { + + if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) { + return; + } + + String userName = chat.getUserName(); + if (userName == null || userName.isEmpty()) { + userName = user.getFirstName() + " " + user.getLastName(); + } + + StringBuilder messageTextBuilder = new StringBuilder("Hello ").append(userName); + if (arguments != null && arguments.length > 0) { + messageTextBuilder.append("\n"); + messageTextBuilder.append("Thank you so much for your kind words:\n"); + messageTextBuilder.append(String.join(" ", arguments)); + } + + SendMessage answer = new SendMessage(); + answer.setChatId(chat.getId().toString()); + answer.setText(messageTextBuilder.toString()); + + try { + absSender.sendMessage(answer); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/telegram/commands/HelpCommand.java b/src/main/java/org/telegram/commands/HelpCommand.java new file mode 100644 index 0000000..13a14dc --- /dev/null +++ b/src/main/java/org/telegram/commands/HelpCommand.java @@ -0,0 +1,54 @@ +package org.telegram.commands; + +import org.telegram.database.DatabaseManager; +import org.telegram.telegrambots.TelegramApiException; +import org.telegram.telegrambots.api.methods.send.SendMessage; +import org.telegram.telegrambots.api.objects.Chat; +import org.telegram.telegrambots.api.objects.User; +import org.telegram.telegrambots.bots.AbsSender; +import org.telegram.telegrambots.bots.commands.BotCommand; +import org.telegram.telegrambots.bots.commands.ICommandRegistry; +import org.telegram.telegrambots.logging.BotLogger; + +/** + * This command helps the user to find the command they need + * + * @author Timo Schulz (Mit0x2) + */ +public class HelpCommand extends BotCommand { + + private static final String LOGTAG = "HELPCOMMAND"; + + private final ICommandRegistry commandRegistry; + + public HelpCommand(ICommandRegistry commandRegistry) { + super("help", "Get all the commands this bot provides"); + this.commandRegistry = commandRegistry; + } + + @Override + public void execute(AbsSender absSender, User user, Chat chat, String[] strings) { + + if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) { + return; + } + + StringBuilder helpMessageBuilder = new StringBuilder("Help\n"); + helpMessageBuilder.append("These are the registered commands for this Bot:\n\n"); + + for (BotCommand botCommand : commandRegistry.getRegisteredCommands()) { + helpMessageBuilder.append(botCommand.toString()).append("\n\n"); + } + + SendMessage helpMessage = new SendMessage(); + helpMessage.setChatId(chat.getId().toString()); + helpMessage.enableHtml(true); + helpMessage.setText(helpMessageBuilder.toString()); + + try { + absSender.sendMessage(helpMessage); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + } +} diff --git a/src/main/java/org/telegram/commands/StartCommand.java b/src/main/java/org/telegram/commands/StartCommand.java new file mode 100644 index 0000000..2e4b477 --- /dev/null +++ b/src/main/java/org/telegram/commands/StartCommand.java @@ -0,0 +1,51 @@ +package org.telegram.commands; + +import org.telegram.database.DatabaseManager; +import org.telegram.telegrambots.TelegramApiException; +import org.telegram.telegrambots.api.methods.send.SendMessage; +import org.telegram.telegrambots.api.objects.Chat; +import org.telegram.telegrambots.api.objects.User; +import org.telegram.telegrambots.bots.AbsSender; +import org.telegram.telegrambots.bots.commands.BotCommand; +import org.telegram.telegrambots.logging.BotLogger; + +/** + * This commands starts the conversation with the bot + * + * @author Timo Schulz (Mit0x2) + */ +public class StartCommand extends BotCommand { + + public static final String LOGTAG = "STARTCOMMAND"; + + public StartCommand() { + super("start", "With this command you can start the Bot"); + } + + @Override + public void execute(AbsSender absSender, User user, Chat chat, String[] strings) { + DatabaseManager databseManager = DatabaseManager.getInstance(); + StringBuilder messageBuilder = new StringBuilder(); + + String userName = user.getFirstName() + " " + user.getLastName(); + + if (databseManager.getUserStateForCommandsBot(user.getId())) { + messageBuilder.append("Hi ").append(userName).append("\n"); + messageBuilder.append("i think we know each other already!"); + } else { + databseManager.setUserStateForCommandsBot(user.getId(), true); + messageBuilder.append("Welcome ").append(userName).append("\n"); + messageBuilder.append("this bot will demonstrate you the command feature of the Java TelegramBots API!"); + } + + SendMessage answer = new SendMessage(); + answer.setChatId(chat.getId().toString()); + answer.setText(messageBuilder.toString()); + + try { + absSender.sendMessage(answer); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/telegram/commands/StopCommand.java b/src/main/java/org/telegram/commands/StopCommand.java new file mode 100644 index 0000000..fcb94bc --- /dev/null +++ b/src/main/java/org/telegram/commands/StopCommand.java @@ -0,0 +1,48 @@ +package org.telegram.commands; + +import org.telegram.database.DatabaseManager; +import org.telegram.telegrambots.TelegramApiException; +import org.telegram.telegrambots.api.methods.send.SendMessage; +import org.telegram.telegrambots.api.objects.Chat; +import org.telegram.telegrambots.api.objects.User; +import org.telegram.telegrambots.bots.AbsSender; +import org.telegram.telegrambots.bots.commands.BotCommand; +import org.telegram.telegrambots.logging.BotLogger; + +/** + * This commands stops the conversation with the bot. + * Bot won't respond to user until he sends a start command + * + * @author Timo Schulz (Mit0x2) + */ +public class StopCommand extends BotCommand { + + public static final String LOGTAG = "STOPCOMMAND"; + + /** + * Construct + */ + public StopCommand() { + super("stop", "With this command you can stop the Bot"); + } + + @Override + public void execute(AbsSender absSender, User user, Chat chat, String[] arguments) { + DatabaseManager dbManager = DatabaseManager.getInstance(); + + if (dbManager.getUserStateForCommandsBot(user.getId())) { + dbManager.setUserStateForCommandsBot(user.getId(), false); + String userName = user.getFirstName() + " " + user.getLastName(); + + SendMessage answer = new SendMessage(); + answer.setChatId(chat.getId().toString()); + answer.setText("Good bye " + userName + "\n" + "Hope to see you soon!"); + + try { + absSender.sendMessage(answer); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + } + } +} diff --git a/src/main/java/org/telegram/database/CreationStrings.java b/src/main/java/org/telegram/database/CreationStrings.java index 8b56782..96e6c0b 100644 --- a/src/main/java/org/telegram/database/CreationStrings.java +++ b/src/main/java/org/telegram/database/CreationStrings.java @@ -7,7 +7,7 @@ package org.telegram.database; * @date 15 of May of 2015 */ public class CreationStrings { - public static final int version = 7; + public static final int version = 8; public static final String createVersionTable = "CREATE TABLE IF NOT EXISTS Versions(ID INTEGER PRIMARY KEY AUTO_INCREMENT, Version INTEGER);"; public static final String insertCurrentVersion = "INSERT IGNORE INTO Versions (Version) VALUES(%d);"; public static final String createFilesTable = "CREATE TABLE IF NOT EXISTS Files (fileId VARCHAR(100) PRIMARY KEY, userId INTEGER NOT NULL, caption TEXT NOT NULL)"; @@ -27,4 +27,6 @@ public class CreationStrings { public static final String createWeatherAlertTable = "CREATE TABLE IF NOT EXISTS WeatherAlert (id INTEGER PRIMARY KEY AUTO_INCREMENT, userId INTEGER NOT NULL, cityId INTEGER NOT NULL, " + "cityName VARCHAR(60) NOT NULL, time INTEGER NOT NULL DEFAULT -1, CONSTRAINT unique_cityNameAlert UNIQUE (userId, cityName)," + "CONSTRAINT unique_cityIdAlert UNIQUE (userId, cityId));"; + + public static final String CREATE_COMMANDS_TABLE = "CREATE TABLE IF NOT EXISTS CommandUsers (userId INTEGER PRIMARY KEY, status INTEGER NOT NULL);"; } diff --git a/src/main/java/org/telegram/database/DatabaseManager.java b/src/main/java/org/telegram/database/DatabaseManager.java index 7921338..873a15f 100644 --- a/src/main/java/org/telegram/database/DatabaseManager.java +++ b/src/main/java/org/telegram/database/DatabaseManager.java @@ -89,6 +89,9 @@ public class DatabaseManager { if (currentVersion == 6) { currentVersion = updateToVersion7(); } + if (currentVersion == 7) { + currentVersion = updateToVersion8(); + } connetion.commitTransaction(); } catch (SQLException e) { BotLogger.error(LOGTAG, e); @@ -133,6 +136,12 @@ public class DatabaseManager { return 7; } + private int updateToVersion8() throws SQLException { + connetion.executeQuery(CreationStrings.CREATE_COMMANDS_TABLE); + connetion.executeQuery(String.format(CreationStrings.insertCurrentVersion, 8)); + return 8; + } + private int createNewTables() throws SQLException { connetion.executeQuery(CreationStrings.createVersionTable); connetion.executeQuery(CreationStrings.createFilesTable); @@ -144,9 +153,40 @@ public class DatabaseManager { connetion.executeQuery(CreationStrings.createWeatherStateTable); connetion.executeQuery(CreationStrings.createUserWeatherOptionDatabase); connetion.executeQuery(CreationStrings.createWeatherAlertTable); + connetion.executeQuery(CreationStrings.CREATE_COMMANDS_TABLE); return CreationStrings.version; } + public boolean setUserStateForCommandsBot(Integer userId, boolean active) { + int updatedRows = 0; + try { + final PreparedStatement preparedStatement = connetion.getPreparedStatement("INSERT INTO CommandUsers (userId, status) VALUES(?, ?) ON DUPLICATE KEY UPDATE status=?"); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, active ? 1 : 0); + preparedStatement.setInt(3, active ? 1 : 0); + + updatedRows = preparedStatement.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + return updatedRows > 0; + } + + public boolean getUserStateForCommandsBot(Integer userId) { + int status = -1; + try { + final PreparedStatement preparedStatement = connetion.getPreparedStatement("Select status FROM CommandUsers WHERE userId=?"); + preparedStatement.setInt(1, userId); + final ResultSet result = preparedStatement.executeQuery(); + if (result.next()) { + status = result.getInt("status"); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return status == 1; + } + public boolean addFile(String fileId, Integer userId, String caption) { int updatedRows = 0; try { diff --git a/src/main/java/org/telegram/updateshandlers/ChannelHandlers.java b/src/main/java/org/telegram/updateshandlers/ChannelHandlers.java index 1ff8323..8337212 100644 --- a/src/main/java/org/telegram/updateshandlers/ChannelHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/ChannelHandlers.java @@ -52,13 +52,13 @@ public class ChannelHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENCHANNEL; + return BotConfig.CHANNEL_TOKEN; } @Override public String getBotUsername() { - return BotConfig.USERNAMECHANNEL; + return BotConfig.CHANNEL_USER; } @@ -135,7 +135,6 @@ public class ChannelHandlers extends TelegramLongPollingBot { ForceReplyKeyboard forceReplyKeyboard = new ForceReplyKeyboard(); forceReplyKeyboard.setSelective(true); - forceReplyKeyboard.setForceReply(true); sendMessage.setReplayMarkup(forceReplyKeyboard); sendMessage.setText(WRONG_CHANNEL_TEXT); diff --git a/src/main/java/org/telegram/updateshandlers/CommandsHandler.java b/src/main/java/org/telegram/updateshandlers/CommandsHandler.java new file mode 100644 index 0000000..8824efc --- /dev/null +++ b/src/main/java/org/telegram/updateshandlers/CommandsHandler.java @@ -0,0 +1,82 @@ +package org.telegram.updateshandlers; + +import org.telegram.BotConfig; +import org.telegram.commands.HelloCommand; +import org.telegram.commands.HelpCommand; +import org.telegram.commands.StartCommand; +import org.telegram.commands.StopCommand; +import org.telegram.database.DatabaseManager; +import org.telegram.services.Emoji; +import org.telegram.telegrambots.TelegramApiException; +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.TelegramLongPollingCommandBot; +import org.telegram.telegrambots.logging.BotLogger; + +/** + * This handler mainly works with commands to demonstrate the Commands feature of the API + * + * @author Timo Schulz (Mit0x2) + */ +public class CommandsHandler extends TelegramLongPollingCommandBot { + + public static final String LOGTAG = "COMMANDSHANDLER"; + + /** + * Constructor. + */ + public CommandsHandler() { + register(new HelloCommand()); + register(new StartCommand()); + register(new StopCommand()); + HelpCommand helpCommand = new HelpCommand(this); + register(helpCommand); + + registerDefaultAction((absSender, message) -> { + SendMessage commandUnknownMessage = new SendMessage(); + commandUnknownMessage.setChatId(message.getChatId().toString()); + commandUnknownMessage.setText("The command '" + message.getText() + "' is not known by this bot. Here comes some help " + Emoji.AMBULANCE); + try { + absSender.sendMessage(commandUnknownMessage); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + helpCommand.execute(absSender, message.getFrom(), message.getChat(), new String[] {}); + }); + } + + @Override + public void processNonCommandUpdate(Update update) { + + if (update.hasMessage()) { + Message message = update.getMessage(); + + if (!DatabaseManager.getInstance().getUserStateForCommandsBot(message.getFrom().getId())) { + return; + } + + if (message.hasText()) { + SendMessage echoMessage = new SendMessage(); + echoMessage.setChatId(message.getChatId().toString()); + echoMessage.setText("Hey heres your message:\n" + message.getText()); + + try { + sendMessage(echoMessage); + } catch (TelegramApiException e) { + BotLogger.error(LOGTAG, e); + } + } + } + } + + @Override + public String getBotUsername() { + return BotConfig.COMMANDS_USER; + } + + @Override + public String getBotToken() { + return BotConfig.COMMANDS_TOKEN; + } +} \ No newline at end of file diff --git a/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java b/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java index 366c9c1..796b8ff 100644 --- a/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java @@ -42,7 +42,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENDIRECTIONS; + return BotConfig.DIRECTIONS_TOKEN; } @Override @@ -56,7 +56,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot { @Override public String getBotUsername() { - return BotConfig.USERNAMEDIRECTIONS; + return BotConfig.DIRECTIONS_USER; } private void handleDirections(Update update) throws InvalidObjectException { @@ -259,7 +259,6 @@ public class DirectionsHandlers extends TelegramLongPollingBot { } sendMessageRequest.setReplayToMessageId(message.getMessageId()); ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); - replyKeyboardHide.setHideKeyboard(true); replyKeyboardHide.setSelective(true); sendMessageRequest.setReplayMarkup(replyKeyboardHide); try { diff --git a/src/main/java/org/telegram/updateshandlers/FilesHandlers.java b/src/main/java/org/telegram/updateshandlers/FilesHandlers.java index b5d1113..86e1fd8 100644 --- a/src/main/java/org/telegram/updateshandlers/FilesHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/FilesHandlers.java @@ -39,7 +39,7 @@ public class FilesHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENFILES; + return BotConfig.FILES_TOKEN; } @Override @@ -63,7 +63,7 @@ public class FilesHandlers extends TelegramLongPollingBot { @Override public String getBotUsername() { - return BotConfig.USERNAMEFILES; + return BotConfig.FILES_USER; } private void handleFileUpdate(Update update) throws InvalidObjectException, TelegramApiException { @@ -125,7 +125,6 @@ public class FilesHandlers extends TelegramLongPollingBot { } sendMessageRequest.setChatId(message.getChatId().toString()); ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); - replyKeyboardHide.setHideKeyboard(true); sendMessageRequest.setReplayMarkup(replyKeyboardHide); sendMessage(sendMessageRequest); } @@ -252,7 +251,6 @@ public class FilesHandlers extends TelegramLongPollingBot { } sendMessageRequest.setReplayToMessageId(message.getMessageId()); ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); - replyKeyboardHide.setHideKeyboard(true); replyKeyboardHide.setSelective(true); sendMessageRequest.setReplayMarkup(replyKeyboardHide); sendMessage(sendMessageRequest); diff --git a/src/main/java/org/telegram/updateshandlers/RaeHandlers.java b/src/main/java/org/telegram/updateshandlers/RaeHandlers.java index 7aac6ef..8a1f004 100644 --- a/src/main/java/org/telegram/updateshandlers/RaeHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/RaeHandlers.java @@ -38,7 +38,7 @@ public class RaeHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENRAE; + return BotConfig.RAE_TOKEN; } @Override @@ -60,7 +60,7 @@ public class RaeHandlers extends TelegramLongPollingBot { @Override public String getBotUsername() { - return BotConfig.USERNAMERAE; + return BotConfig.RAE_USER; } /** diff --git a/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java b/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java index 0929911..e2feca9 100644 --- a/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java @@ -26,7 +26,7 @@ public class TransifexHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENTRANSIFEX; + return BotConfig.TRANSIFEX_TOKEN; } @Override @@ -40,7 +40,7 @@ public class TransifexHandlers extends TelegramLongPollingBot { @Override public String getBotUsername() { - return BotConfig.USERNAMETRANSIFEX; + return BotConfig.TRANSIFEX_USER; } private void sendTransifexFile(Update update) throws InvalidObjectException { diff --git a/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java b/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java index 87f85c4..c92445f 100644 --- a/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java @@ -3,11 +3,7 @@ package org.telegram.updateshandlers; import org.telegram.BotConfig; import org.telegram.Commands; import org.telegram.database.DatabaseManager; -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.services.*; import org.telegram.structure.WeatherAlert; import org.telegram.telegrambots.TelegramApiException; import org.telegram.telegrambots.api.methods.send.SendMessage; @@ -55,7 +51,7 @@ public class WeatherHandlers extends TelegramLongPollingBot { @Override public String getBotToken() { - return BotConfig.TOKENWEATHER; + return BotConfig.WEATHER_TOKEN; } @Override @@ -74,7 +70,7 @@ public class WeatherHandlers extends TelegramLongPollingBot { @Override public String getBotUsername() { - return BotConfig.USERNAMEWEATHER; + return BotConfig.WEATHER_USER; } private void startAlertTimers() { @@ -195,7 +191,6 @@ public class WeatherHandlers extends TelegramLongPollingBot { ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); replyKeyboardHide.setSelective(true); - replyKeyboardHide.setHideKeyboard(true); sendMessage.setReplayMarkup(replyKeyboardHide); sendMessage(sendMessage); @@ -1073,7 +1068,6 @@ public class WeatherHandlers extends TelegramLongPollingBot { private static ForceReplyKeyboard getForceReply() { ForceReplyKeyboard forceReplyKeyboard = new ForceReplyKeyboard(); - forceReplyKeyboard.setForceReply(true); forceReplyKeyboard.setSelective(true); return forceReplyKeyboard; } diff --git a/src/main/java/org/telegram/updateshandlers/WebHookExampleHandlers.java b/src/main/java/org/telegram/updateshandlers/WebHookExampleHandlers.java index f72ef5a..9fda18a 100644 --- a/src/main/java/org/telegram/updateshandlers/WebHookExampleHandlers.java +++ b/src/main/java/org/telegram/updateshandlers/WebHookExampleHandlers.java @@ -26,16 +26,16 @@ public class WebHookExampleHandlers extends TelegramWebhookBot { @Override public String getBotUsername() { - return BotConfig.USERNAMEWEBHOOK; + return BotConfig.WEBHOOK_USER; } @Override public String getBotToken() { - return BotConfig.TOKENWEBHOOK; + return BotConfig.WEBHOOK_TOKEN; } @Override public String getBotPath() { - return BotConfig.USERNAMEWEBHOOK; //arbitrary path to deliver updates on, username is an example. + return BotConfig.WEBHOOK_USER; //arbitrary path to deliver updates on, username is an example. } }