|
|
@ -1,6 +1,7 @@ |
|
|
package org.telegram.updateshandlers; |
|
|
package org.telegram.updateshandlers; |
|
|
|
|
|
|
|
|
import org.telegram.BotConfig; |
|
|
import org.telegram.BotConfig; |
|
|
|
|
|
import org.telegram.BuildVars; |
|
|
import org.telegram.Commands; |
|
|
import org.telegram.Commands; |
|
|
import org.telegram.database.DatabaseManager; |
|
|
import org.telegram.database.DatabaseManager; |
|
|
import org.telegram.services.LocalisationService; |
|
|
import org.telegram.services.LocalisationService; |
|
|
@ -10,10 +11,14 @@ import org.telegram.telegrambots.api.methods.send.SendDocument; |
|
|
import org.telegram.telegrambots.api.methods.send.SendMessage; |
|
|
import org.telegram.telegrambots.api.methods.send.SendMessage; |
|
|
import org.telegram.telegrambots.api.objects.Message; |
|
|
import org.telegram.telegrambots.api.objects.Message; |
|
|
import org.telegram.telegrambots.api.objects.Update; |
|
|
import org.telegram.telegrambots.api.objects.Update; |
|
|
|
|
|
import org.telegram.telegrambots.api.objects.replykeyboard.InlineKeyboardMarkup; |
|
|
|
|
|
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.InlineKeyboardButton; |
|
|
import org.telegram.telegrambots.bots.TelegramLongPollingBot; |
|
|
import org.telegram.telegrambots.bots.TelegramLongPollingBot; |
|
|
import org.telegram.telegrambots.logging.BotLogger; |
|
|
import org.telegram.telegrambots.logging.BotLogger; |
|
|
|
|
|
|
|
|
import java.io.InvalidObjectException; |
|
|
import java.io.InvalidObjectException; |
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @author Ruben Bermudez |
|
|
* @author Ruben Bermudez |
|
|
@ -32,65 +37,49 @@ public class TransifexHandlers extends TelegramLongPollingBot { |
|
|
@Override |
|
|
@Override |
|
|
public void onUpdateReceived(Update update) { |
|
|
public void onUpdateReceived(Update update) { |
|
|
try { |
|
|
try { |
|
|
sendTransifexFile(update); |
|
|
handleUpdate(update); |
|
|
} catch (Exception e) { |
|
|
} catch (Throwable e) { |
|
|
BotLogger.error(LOGTAG, e); |
|
|
BotLogger.error(LOGTAG, e); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void handleUpdate(Update update) throws InvalidObjectException, TelegramApiException { |
|
|
|
|
|
if (update.hasMessage() && update.getMessage().hasText()) { |
|
|
|
|
|
Message message = update.getMessage(); |
|
|
|
|
|
if (BuildVars.ADMINS.contains(message.getFrom().getId())) { |
|
|
|
|
|
sendTransifexFile(message); |
|
|
|
|
|
} else { |
|
|
|
|
|
sendMovedToMessage(message); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public String getBotUsername() { |
|
|
public String getBotUsername() { |
|
|
return BotConfig.TRANSIFEX_USER; |
|
|
return BotConfig.TRANSIFEX_USER; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void sendTransifexFile(Update update) throws InvalidObjectException { |
|
|
private void sendTransifexFile(Message message) throws InvalidObjectException { |
|
|
Message message = update.getMessage(); |
|
|
String language = DatabaseManager.getInstance().getUserLanguage(message.getFrom().getId()); |
|
|
if (message != null && message.hasText()) { |
|
|
String text = message.getText(); |
|
|
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId()); |
|
|
String[] parts = text.split(" ", 2); |
|
|
String text = message.getText(); |
|
|
SendDocument sendDocument = null; |
|
|
String[] parts = text.split(" ", 2); |
|
|
if (parts.length == 2) { |
|
|
SendDocument sendDocument = null; |
|
|
if (parts[0].startsWith(Commands.transifexiOSCommand)) { |
|
|
if (parts.length == 2) { |
|
|
sendDocument = TransifexService.getInstance().getiOSLanguageFile(parts[1].trim()); |
|
|
if (parts[0].startsWith(Commands.transifexiOSCommand)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexAndroidCommand)) { |
|
|
sendDocument = TransifexService.getInstance().getiOSLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getAndroidLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexAndroidCommand)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexTDesktop)) { |
|
|
sendDocument = TransifexService.getInstance().getAndroidLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getTdesktopLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexTDesktop)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexWebogram)) { |
|
|
sendDocument = TransifexService.getInstance().getTdesktopLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getWebogramLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexWebogram)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexWP)) { |
|
|
sendDocument = TransifexService.getInstance().getWebogramLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getWPLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexWP)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexOSX)) { |
|
|
sendDocument = TransifexService.getInstance().getWPLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getOSXLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexOSX)) { |
|
|
} else if (parts[0].startsWith(Commands.transifexAndroidSupportCommand)) { |
|
|
sendDocument = TransifexService.getInstance().getOSXLanguageFile(parts[1].trim()); |
|
|
sendDocument = TransifexService.getInstance().getAndroidSupportLanguageFile(parts[1].trim()); |
|
|
} else if (parts[0].startsWith(Commands.transifexAndroidSupportCommand)) { |
|
|
} else if (parts[0].startsWith(Commands.help)) { |
|
|
sendDocument = TransifexService.getInstance().getAndroidSupportLanguageFile(parts[1].trim()); |
|
|
|
|
|
} else if (parts[0].startsWith(Commands.help)) { |
|
|
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
|
|
String helpFormated = String.format( |
|
|
|
|
|
LocalisationService.getInstance().getString("helpTransifex", language), |
|
|
|
|
|
Commands.transifexiOSCommand, Commands.transifexAndroidCommand, Commands.transifexWebogram, |
|
|
|
|
|
Commands.transifexTDesktop, Commands.transifexOSX, Commands.transifexWP, |
|
|
|
|
|
Commands.transifexAndroidSupportCommand); |
|
|
|
|
|
sendMessageRequest.setText(helpFormated); |
|
|
|
|
|
sendMessageRequest.setChatId(message.getChatId().toString()); |
|
|
|
|
|
try { |
|
|
|
|
|
sendMessage(sendMessageRequest); |
|
|
|
|
|
} catch (TelegramApiException e) { |
|
|
|
|
|
BotLogger.error(LOGTAG, e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (sendDocument != null) { |
|
|
|
|
|
sendDocument.setChatId(message.getChatId().toString()); |
|
|
|
|
|
try { |
|
|
|
|
|
sendDocument(sendDocument); |
|
|
|
|
|
} catch (TelegramApiException e) { |
|
|
|
|
|
BotLogger.error(LOGTAG, e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else if (parts[0].startsWith(Commands.help) || |
|
|
|
|
|
(message.getText().startsWith(Commands.startCommand) || !message.isGroupMessage())) { |
|
|
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
String helpFormated = String.format( |
|
|
String helpFormated = String.format( |
|
|
LocalisationService.getInstance().getString("helpTransifex", language), |
|
|
LocalisationService.getInstance().getString("helpTransifex", language), |
|
|
@ -105,6 +94,49 @@ public class TransifexHandlers extends TelegramLongPollingBot { |
|
|
BotLogger.error(LOGTAG, e); |
|
|
BotLogger.error(LOGTAG, e); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (sendDocument != null) { |
|
|
|
|
|
sendDocument.setChatId(message.getChatId().toString()); |
|
|
|
|
|
try { |
|
|
|
|
|
sendDocument(sendDocument); |
|
|
|
|
|
} catch (TelegramApiException e) { |
|
|
|
|
|
BotLogger.error(LOGTAG, e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else if (parts[0].startsWith(Commands.help) || |
|
|
|
|
|
(message.getText().startsWith(Commands.startCommand) || !message.isGroupMessage())) { |
|
|
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
|
|
String helpFormated = String.format( |
|
|
|
|
|
LocalisationService.getInstance().getString("helpTransifex", language), |
|
|
|
|
|
Commands.transifexiOSCommand, Commands.transifexAndroidCommand, Commands.transifexWebogram, |
|
|
|
|
|
Commands.transifexTDesktop, Commands.transifexOSX, Commands.transifexWP, |
|
|
|
|
|
Commands.transifexAndroidSupportCommand); |
|
|
|
|
|
sendMessageRequest.setText(helpFormated); |
|
|
|
|
|
sendMessageRequest.setChatId(message.getChatId().toString()); |
|
|
|
|
|
try { |
|
|
|
|
|
sendMessage(sendMessageRequest); |
|
|
|
|
|
} catch (TelegramApiException e) { |
|
|
|
|
|
BotLogger.error(LOGTAG, e); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void sendMovedToMessage(Message message) throws InvalidObjectException, TelegramApiException { |
|
|
|
|
|
String language = DatabaseManager.getInstance().getUserLanguage(message.getFrom().getId()); |
|
|
|
|
|
SendMessage answer = new SendMessage(); |
|
|
|
|
|
answer.setChatId(message.getChatId().toString()); |
|
|
|
|
|
answer.setReplyToMessageId(message.getMessageId()); |
|
|
|
|
|
answer.setText(LocalisationService.getInstance().getString("movedToLangBot", language)); |
|
|
|
|
|
InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup(); |
|
|
|
|
|
List<List<InlineKeyboardButton>> rows = new ArrayList<>(); |
|
|
|
|
|
List<InlineKeyboardButton> row = new ArrayList<>(); |
|
|
|
|
|
InlineKeyboardButton button = new InlineKeyboardButton(); |
|
|
|
|
|
button.setText(LocalisationService.getInstance().getString("checkLangBot", language)); |
|
|
|
|
|
button.setUrl("https://telegram.me/langbot"); |
|
|
|
|
|
row.add(button); |
|
|
|
|
|
rows.add(row); |
|
|
|
|
|
inlineKeyboardMarkup.setKeyboard(rows); |
|
|
|
|
|
answer.setReplyMarkup(inlineKeyboardMarkup); |
|
|
|
|
|
sendMessage(answer); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|