Complete externalization of messages

This commit is contained in:
davioooh 2018-05-02 11:06:39 +02:00 committed by Abbas Abou Daya
parent 7ff5be3a72
commit c8f1c69fb2
3 changed files with 12 additions and 11 deletions

View File

@ -102,11 +102,6 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
protected static final String RECOVER = "recover"; protected static final String RECOVER = "recover";
protected static final String COMMANDS = "commands"; protected static final String COMMANDS = "commands";
// Messages
// TODO replace hardcoded messages...
protected static final String RECOVERY_MESSAGE = "I am ready to receive the backup file. Please reply to this message with the backup file attached.";
protected static final String RECOVER_SUCCESS = "I have successfully recovered.";
// DB and sender // DB and sender
protected final DBContext db; protected final DBContext db;
protected MessageSender sender; protected MessageSender sender;
@ -270,7 +265,7 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
try { try {
return getUser(username).id(); return getUser(username).id();
} catch (IllegalStateException ex) { } catch (IllegalStateException ex) {
silent.send(format("Sorry, I could not find the user [%s].", username), chatId); silent.send(getLocalizedMessage("userNotFound","", username), chatId); // TODO how to retrieve language?
throw propagate(ex); throw propagate(ex);
} }
} }
@ -362,7 +357,8 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
.locality(USER) .locality(USER)
.privacy(CREATOR) .privacy(CREATOR)
.input(0) .input(0)
.action(ctx -> silent.forceReply(RECOVERY_MESSAGE, ctx.chatId())) .action(ctx -> silent.forceReply(
getLocalizedMessage("ability.recover.message", ctx.user().locale()), ctx.chatId()))
.reply(update -> { .reply(update -> {
Long chatId = update.getMessage().getChatId(); Long chatId = update.getMessage().getChatId();
String fileId = update.getMessage().getDocument().getFileId(); String fileId = update.getMessage().getDocument().getFileId();
@ -370,7 +366,8 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
try (FileReader reader = new FileReader(downloadFileWithId(fileId))) { try (FileReader reader = new FileReader(downloadFileWithId(fileId))) {
String backupData = IOUtils.toString(reader); String backupData = IOUtils.toString(reader);
if (db.recover(backupData)) { if (db.recover(backupData)) {
silent.send(RECOVER_SUCCESS, chatId); silent.send(getLocalizedMessage("ability.recover.success",
AbilityUtils.getUser(update).getLanguageCode()), chatId); // TODO how to retrieve language?
} else { } else {
silent.send(getLocalizedMessage("ability.recover.fail", silent.send(getLocalizedMessage("ability.recover.fail",
AbilityUtils.getUser(update).getLanguageCode()), chatId); AbilityUtils.getUser(update).getLanguageCode()), chatId);
@ -380,7 +377,7 @@ public abstract class AbilityBot extends TelegramLongPollingBot {
silent.send(getLocalizedMessage("ability.recover.error", silent.send(getLocalizedMessage("ability.recover.error",
AbilityUtils.getUser(update).getLanguageCode()), chatId); AbilityUtils.getUser(update).getLanguageCode()), chatId);
} }
}, MESSAGE, DOCUMENT, REPLY, isReplyTo(RECOVERY_MESSAGE)) }, MESSAGE, DOCUMENT, REPLY, isReplyTo(getLocalizedMessage("ability.recover.success", ""))) // TODO how to retrieve language?
.build(); .build();
} }

View File

@ -23,3 +23,5 @@ ability.claim.claimed=You''re now my master.
checkInput.fail=Sorry, this feature requires {0,number,integer} additional {1}. checkInput.fail=Sorry, this feature requires {0,number,integer} additional {1}.
checkLocality.fail=Sorry, {0}-only feature. checkLocality.fail=Sorry, {0}-only feature.
checkPrivacy.fail=Sorry, you don''t have the required access level to do that. checkPrivacy.fail=Sorry, you don''t have the required access level to do that.
userNotFound=Sorry, I could not find the user [{0}].

View File

@ -36,8 +36,6 @@ import static org.junit.Assert.*;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import static org.mockito.internal.verification.VerificationModeFactory.times; import static org.mockito.internal.verification.VerificationModeFactory.times;
import static org.telegram.abilitybots.api.bot.AbilityBot.RECOVERY_MESSAGE;
import static org.telegram.abilitybots.api.bot.AbilityBot.RECOVER_SUCCESS;
import static org.telegram.abilitybots.api.bot.DefaultBot.getDefaultBuilder; import static org.telegram.abilitybots.api.bot.DefaultBot.getDefaultBuilder;
import static org.telegram.abilitybots.api.db.MapDBContext.offlineInstance; import static org.telegram.abilitybots.api.db.MapDBContext.offlineInstance;
import static org.telegram.abilitybots.api.objects.EndUser.endUser; import static org.telegram.abilitybots.api.objects.EndUser.endUser;
@ -49,6 +47,10 @@ import static org.telegram.abilitybots.api.objects.MessageContext.newContext;
import static org.telegram.abilitybots.api.objects.Privacy.*; import static org.telegram.abilitybots.api.objects.Privacy.*;
public class AbilityBotTest { public class AbilityBotTest {
// Messages
protected static final String RECOVERY_MESSAGE = "I am ready to receive the backup file. Please reply to this message with the backup file attached.";
protected static final String RECOVER_SUCCESS = "I have successfully recovered.";
private static final String[] EMPTY_ARRAY = {}; private static final String[] EMPTY_ARRAY = {};
private static final long GROUP_ID = 10L; private static final long GROUP_ID = 10L;
private static final String TEST = "test"; private static final String TEST = "test";