You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
5.3 KiB

11 years ago
package org.telegram.updateshandlers;
import org.telegram.BotConfig;
import org.telegram.Commands;
import org.telegram.database.DatabaseManager;
import org.telegram.services.BotLogger;
11 years ago
import org.telegram.services.LocalisationService;
11 years ago
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.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
11 years ago
import java.io.InvalidObjectException;
11 years ago
/**
* @author Ruben Bermudez
* @version 1.0
* @brief Handler for updates to Transifex Bot
* @date 24 of June of 2015
*/
public class TransifexHandlers extends TelegramLongPollingBot {
private static final String LOGTAG = "TRANSIFEXHANDLERS";
11 years ago
@Override
public String getBotToken() {
return BotConfig.TOKENTRANSIFEX;
11 years ago
}
@Override
public void onUpdateReceived(Update update) {
try {
sendTransifexFile(update);
} catch (InvalidObjectException e) {
BotLogger.error(LOGTAG, e);
}
11 years ago
}
@Override
public String getBotUsername() {
return BotConfig.USERNAMETRANSIFEX;
}
private void sendTransifexFile(Update update) throws InvalidObjectException {
11 years ago
Message message = update.getMessage();
if (message != null && message.hasText()) {
11 years ago
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId());
11 years ago
String text = message.getText();
String[] parts = text.split(" ", 2);
SendDocument sendDocument = null;
if (parts.length == 2) {
if (parts[0].startsWith(Commands.transifexiOSCommand)) {
sendDocument = TransifexService.getInstance().getiOSLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexAndroidCommand)) {
sendDocument = TransifexService.getInstance().getAndroidLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexTDesktop)) {
sendDocument = TransifexService.getInstance().getTdesktopLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexWebogram)) {
sendDocument = TransifexService.getInstance().getWebogramLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexWP)) {
sendDocument = TransifexService.getInstance().getWPLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexOSX)) {
sendDocument = TransifexService.getInstance().getOSXLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.transifexAndroidSupportCommand)) {
sendDocument = TransifexService.getInstance().getAndroidSupportLanguageFile(parts[1].trim());
} else if (parts[0].startsWith(Commands.help)) {
SendMessage sendMessageRequest = new SendMessage();
11 years ago
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);
}
11 years ago
}
if (sendDocument != null) {
sendDocument.setChatId(message.getChatId().toString());
try {
sendDocument(sendDocument);
} catch (TelegramApiException e) {
BotLogger.error(LOGTAG, e);
}
11 years ago
}
} else if (parts[0].startsWith(Commands.help) ||
(message.getText().startsWith(Commands.startCommand) || !message.isGroupMessage())) {
SendMessage sendMessageRequest = new SendMessage();
11 years ago
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);
}
11 years ago
}
}
}
}