Browse Source

Merge pull request #8 from rubenlagus/dev

Dev
master
Ruben Bermudez 11 years ago
parent
commit
24263dffd1
  1. 2
      src/main/java/org/telegram/Commands.java
  2. 3
      src/main/java/org/telegram/services/Emoji.java
  3. 8
      src/main/java/org/telegram/services/LocalisationService.java
  4. 31
      src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
  5. 75
      src/main/resources/localisation/strings_it.properties

2
src/main/java/org/telegram/Commands.java

@ -38,4 +38,6 @@ public class Commands {
public static final String startDirectionCommand = commandInitChar + "directions"; public static final String startDirectionCommand = commandInitChar + "directions";
/// Set Language command /// Set Language command
public static final String setLanguageCommand = commandInitChar + "language"; public static final String setLanguageCommand = commandInitChar + "language";
public static final String STOPCOMMAND = commandInitChar + "stop";
} }

3
src/main/java/org/telegram/services/Emoji.java

@ -162,7 +162,8 @@ public enum Emoji {
TEAR_OFF_CALENDAR('\uD83D', '\uDCC6'), TEAR_OFF_CALENDAR('\uD83D', '\uDCC6'),
LARGE_ORANGE_DIAMOND('\uD83D', '\uDD36'), LARGE_ORANGE_DIAMOND('\uD83D', '\uDD36'),
HUNDRED_POINTS_SYMBOL('\uD83D', '\uDCAF'), HUNDRED_POINTS_SYMBOL('\uD83D', '\uDCAF'),
ROUND_PUSHPIN('\uD83D', '\uDCCD'); ROUND_PUSHPIN('\uD83D', '\uDCCD'),
WAVING_HAND_SIGN('\uD83D', '\uDC4B');
Character firstChar; Character firstChar;
Character secondChar; Character secondChar;

8
src/main/java/org/telegram/services/LocalisationService.java

@ -90,6 +90,8 @@ public class LocalisationService {
supportedLanguages.put("pt", "Português"); supportedLanguages.put("pt", "Português");
dutch = ResourceBundle.getBundle("localisation.strings", new Locale("nl", "NL"), loader); dutch = ResourceBundle.getBundle("localisation.strings", new Locale("nl", "NL"), loader);
supportedLanguages.put("nl", "Nederlands"); supportedLanguages.put("nl", "Nederlands");
italian = ResourceBundle.getBundle("localisation.strings", new Locale("it", "IT"), loader);
supportedLanguages.put("it", "Italiano");
/* /*
german = ResourceBundle.getBundle("localisation.strings", new Locale("de", "DE"), loader); german = ResourceBundle.getBundle("localisation.strings", new Locale("de", "DE"), loader);
supportedLanguages.put("de", "Deutsch"); supportedLanguages.put("de", "Deutsch");
@ -150,12 +152,12 @@ public class LocalisationService {
case "nl": case "nl":
result = dutch.getString(key); result = dutch.getString(key);
break; break;
/*case "de":
result = german.getString(key);
break;
case "it": case "it":
result = italian.getString(key); result = italian.getString(key);
break; break;
/*case "de":
result = german.getString(key);
break;
case "fr": case "fr":
result = french.getString(key); result = french.getString(key);
break; break;

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

@ -2,6 +2,7 @@ package org.telegram.updateshandlers;
import org.telegram.BotConfig; import org.telegram.BotConfig;
import org.telegram.BuildVars; import org.telegram.BuildVars;
import org.telegram.Commands;
import org.telegram.SenderHelper; import org.telegram.SenderHelper;
import org.telegram.api.*; import org.telegram.api.*;
import org.telegram.database.DatabaseManager; import org.telegram.database.DatabaseManager;
@ -23,6 +24,7 @@ import java.util.List;
*/ */
public class WeatherHandlers implements UpdatesCallback { public class WeatherHandlers implements UpdatesCallback {
private static final String TOKEN = BotConfig.TOKENWEATHER; private static final String TOKEN = BotConfig.TOKENWEATHER;
private static final int STARTSTATE = 0;
private static final int MAINMENU = 1; private static final int MAINMENU = 1;
private static final int CURRENTWEATHER = 2; private static final int CURRENTWEATHER = 2;
private static final int CURRENTNEWWEATHER = 3; private static final int CURRENTNEWWEATHER = 3;
@ -104,8 +106,13 @@ public class WeatherHandlers implements UpdatesCallback {
private static void handleIncomingMessage(Message message) { private static void handleIncomingMessage(Message message) {
final int state = DatabaseManager.getInstance().getWeatherState(message.getFrom().getId(), message.getChatId()); final int state = DatabaseManager.getInstance().getWeatherState(message.getFrom().getId(), message.getChatId());
final String language = DatabaseManager.getInstance().getUserWeatherOptions(message.getFrom().getId())[0]; final String language = DatabaseManager.getInstance().getUserWeatherOptions(message.getFrom().getId())[0];
if (message.isGroupMessage() && message.hasText() && isCommandForOther(message.getText())) { if (message.isGroupMessage() && message.hasText()) {
return; if (isCommandForOther(message.getText())) {
return;
} else if (message.getText().startsWith(Commands.STOPCOMMAND)){
sendHideKeyboard(message.getFrom().getId(), message.getChatId(), message.getMessageId());
return;
}
} }
switch(state) { switch(state) {
case MAINMENU: case MAINMENU:
@ -141,9 +148,25 @@ public class WeatherHandlers implements UpdatesCallback {
} }
} }
private static void sendHideKeyboard(Integer userId, Integer chatId, Integer messageId) {
SendMessage sendMessage = new SendMessage();
sendMessage.setChatId(chatId);
sendMessage.setReplayToMessageId(messageId);
sendMessage.setText(Emoji.WAVING_HAND_SIGN.toString());
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
replyKeyboardHide.setSelective(true);
replyKeyboardHide.setHideKeyboard(true);
sendMessage.setReplayMarkup(replyKeyboardHide);
SenderHelper.SendMessage(sendMessage, TOKEN);
DatabaseManager.getInstance().insertWeatherState(userId, chatId, STARTSTATE);
}
private static boolean isCommandForOther(String text) { private static boolean isCommandForOther(String text) {
boolean isSimpleCommand = text.equals("/start") || text.equals("/help"); boolean isSimpleCommand = text.equals("/start") || text.equals("/help") || text.equals("/stop");
boolean isCommandForMe = text.equals("/start@weatherbot") || text.equals("/help@weatherbot"); boolean isCommandForMe = text.equals("/start@weatherbot") || text.equals("/help@weatherbot") || text.equals("/stop@weatherbot");
return text.startsWith("/") && !isSimpleCommand && !isCommandForMe; return text.startsWith("/") && !isSimpleCommand && !isCommandForMe;
} }

75
src/main/resources/localisation/strings_it.properties

@ -0,0 +1,75 @@
helpTransifex= Faccio giochetti con le parole, fai un tentativo, potrei migliorare la tua giornata.\n\nPer ottenere le ultime traduzioni di Telegram per una lingua\: \n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per iOS.\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per Android.\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per Webogram.\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per Tdesktop.\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per l'app OSX.\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione per Windows Phone.\n\n2. Per ottenere una traduzione aggiornata per l'app beta di Android\:\n|-- %s LANG_CODE \: Ottieni l'ultima traduzione della beta per Android..
helpFiles= Lasciare un file in modo che altri lo trovino?\n\nCondividi i file tramite un link personalizzato\: \n|-- %s FILEID \: Ottieni il file tramite id.\n|-- %s \: Avvia il caricamento del file.\n|-- %s \: Seleziona una dei tuoi file per eliminarlo.\n|-- %s \: Mostra la lista dei tuoi file condivisi.
helpDirections= La strada davanti, con tutte le buone intenzioni, è quella corretta che cerco di indicarti.\n\nPer ottenere le indicazioni stradali tra due località\: \n|-- %s \: Inizia a ricevere indicazioni
sendFileToUpload= Per favore inviami il file che desideri condividere. Assicurati di inviarlo come file, non come immagine o video.
fileUploaded= Grandioso, il tuo file è stato caricato. Invia questo link a chiunque tu voglia e potrà scaricare il file\: \n\n
deleteUploadedFile= Per favore, seleziona il file che vuoi eliminare\:
fileDeleted= Il file è stato eliminato
wrongFileId= Ci spiace, non siamo riusciti a trovare un file con quell'ID. O è stato fatto un errore o il file è già stato eliminato.
listOfFiles= Questa è la lista dei file che hai condiviso fino ad ora\:
noFiles= Al momento non hai condiviso alcun file.
processFinished= Il processo corrente è stato annullato.
uploadedFileURL= https\://telegram.me/filesbot?start\=
initDirections= Per favore rispondi a questo messaggio con il tuo punto di partenza.
sendDestination= Per favore rispondi a questo messaggio con la tua destinazione.
youNeedReplyDirections= Mi spiace, non posso aiutarti finché non rispondi al messaggio che ti ho mandato.
chooselanguage= Per favore, selezionare una lingua dalla lista per cambiarla.
errorLanguage= Non supportiamo quella lingua o è stato fatto un errore. Il processo è stato annullato.
directionsInit= %s è %s lontano da %s e ci vuole %s per arrivare, seguendo queste direzioni\:\n
directionsNotFound= Indicazioni tra %s e %s non trovate.
errorFetchingDirections= Errore nel caricare le indicazioni
directionsStep= %s durante %s (%s)
languageModified= Le impostazioni della lingua sono state aggiornate
helpWeatherMessage= Curiosità sul meteo?\nBasta inviare questo comando per conoscerlo meglio\:\n\t\t%s Ottieni le previsioni attuali per una citta o una posizione\n\t\t%s Ottieni 3 giorni di previsioni per una città o una posizione\n\t\t%s Imposta gli avvisi \n\t\t%s Imposta la lingua delle previsioni\n\t\t%s Cambia l'unità di misura
forecast=%sPrevisioni
current=%sAttuale
help=%sAiuto
settings=%sImpostazioni
cancel=%sAnnulla
location=%sPosizione
new=%sNuovo
languages=%sLingua
alerts=%sAllarmi
units=%sUnità
back=%sIndietro
delete=%sElimina
showList=%sMostra lista
rateMe=%sVotami
metricSystem=Sistema Metrico
imperialSystem= Sistema Imperiale
selectLanguage=La lingua attuale è %s. Seleziona una lingua dalla lista per cambiarla in quella.
languageUpdated=Le impostazioni della lingua sono state aggiornate
errorLanguageNotFound= Non supportiamo quella lingua o c'è stato un errore. Per favore selezionane una dalla lista.
selectUnits=L'unità di misura attuale impostata è %s. Seleziona un'opzione dalla lista per cambiarla.
unitsUpdated=Le tue impostazioni di unità di misura sono state aggiornate.
errorUnitsNotFound= Non supportiamo quell'unità di misura o c'è stato un errore. Per favore selezionane uno dalla lista.
onWeatherNewCommand=Per favore inviami la città che ti interessa, e usa questo formato\: CITTÀ,PAESE
onWeatherLocationCommand=Per favore inviami la posizione che ti interessa.
onCurrentCommandFromHistory=Seleziona un'opzione dalle tue richieste recenti, "nuovo" per inviare una nuova città o "posizione" per inviare una posizione e ricevere le previsioni attuali.
onCurrentCommandWithoutHistory=Seleziona "nuovo" per inviare una nuova città o "posizione" per inviare una posizione e ricevere le previsioni attuali.
onForecastCommandFromHistory=Seleziona un'opzione dalle tue richieste recenti, "nuovo" per inviare una nuova città o "posizione" per inviare una posizione e ricevere le previsioni per 3 giorni.
onForecastCommandWithoutHistory=Seleziona "nuovo" per inviare una nuova città o "posizione" per inviare una posizione e ricevere le previsioni per 3 giorni.
weatherCurrent= Le previsioni per %s sono\:\n\n%s
currentWeatherPartMetric=\t- Meteo\: %s\n\t- Nuvolosità\: %s\n\t- Temperatura\: %s ºC\n\n
currentWeatherPartImperial=\t- Meteo\: %s\n\t- Nuvolosità\: %s\n\t- Temperatura\: %s ºC\n\n
weatherForcast= Le previsioni per %s saranno\:\n\n%s
forecastWeatherPartMetric= %s Il %s \n\t- Previsione\: %s\n\t- Temperatura massima\: %s ºC\n\t- Temperatura minima\: %s ºC\n\n
forecastWeatherPartImperial= %s Il %s \n\t- Previsione\: %s\n\t- Temperatura massima\: %s ºC\n\t- Temperatura minima\: %s ºC\n\n
weatherAlert= Le previsioni per %s saranno\:\n\n%s
alertWeatherPartMetric=\t- Previsione\: %s\n\t- Temperatura massima\: %s ºC\n\t- Temperatura minima\: %s ºC\n\n
alertWeatherPartImperial=\t- Previsione\: %s\n\t- Temperatura massima\: %s ºC\n\t- Temperatura minima\: %s ºC\n\n
chooseOption=Per favore, seleziona un'opzione dal menu.
backToMainMenu=Processo annullato, ritorna nel menu principale.
onSettingsCommand=Per favore, scegli un'opzione\:\n\t\t%s Lingue\: Seleziona la lingua per le previsioni\n\t\t%s Unità\: Seleziona l'unità di misura\n\t\t%s Avvisi\: Seleziona il numero di avvisi giornalieri\n\t\t%s Indietro\: Ritorna al menu principale
alertsMenuMessage=Qui puoi gestire i tuoi allarmi o aggiungerne di nuovi.
chooseNewAlertCity=Per quale città si desidera impostare un avviso? Seleziona un'opzione dalle richieste recenti
newAlertSaved=%s Il tuo avviso per %s è stato creato correttamente, riceverai l'aggiornamento meteo due volte al giorno.
initialAlertList=Hai %d allarmi\:\n\n%s
partialAlertList=%s%s\n
noAlertList=Non sono riuscito a trovare alcun allarme per te.
alertDeleted=L'allarme selezionato è stato eliminato.
cityNotFound= Città non trovata
errorFetchingWeather= Siamo spiacenti, c'è stato un errore nel caricare le previsioni.
rateMeMessage=Se ti piace questo bot, per favore votalo su https\://telegram.me/storebot?start\=weatherbot
Loading…
Cancel
Save