diff --git a/pom.xml b/pom.xml
index bdd1409..46ea1c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,10 +11,12 @@
UTF-8
UTF-8
- 4.5.2
- 2.4.2
+ 4.5.3
+ 3.0
20160810
- 6.0.4
+ 1.10.2
+ 6.0.6
+ 2.5
@@ -31,7 +33,7 @@
commons-io
commons-io
- 2.5
+ ${commonsio.version}
org.apache.httpcomponents
@@ -51,7 +53,7 @@
org.jsoup
jsoup
- 1.9.2
+ ${jsoup.version}
@@ -139,6 +141,24 @@
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 1.4.1
+
+
+ enforce
+
+ enforce
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/telegram/BotConfig.java b/src/main/java/org/telegram/BotConfig.java
index 4ee72f7..5c63429 100644
--- a/src/main/java/org/telegram/BotConfig.java
+++ b/src/main/java/org/telegram/BotConfig.java
@@ -30,4 +30,7 @@ public class BotConfig {
public static final String COMMANDS_TOKEN = "";
public static final String COMMANDS_USER = "MyCommandsBot";
+
+ public static final String ELEKTROLLART_TOKEN = "";
+ public static final String ELEKTROLLART_USER = "ElektrollArtFanBot";
}
diff --git a/src/main/java/org/telegram/BuildVars.java b/src/main/java/org/telegram/BuildVars.java
index 2436702..a926291 100644
--- a/src/main/java/org/telegram/BuildVars.java
+++ b/src/main/java/org/telegram/BuildVars.java
@@ -31,7 +31,7 @@ public class BuildVars {
public static final String pathToLogs = "./";
public static final String linkDB = "jdbc:mysql://localhost:3306/YOURDATABSENAME?useUnicode=true&characterEncoding=UTF-8";
- public static final String controllerDB = "com.mysql.jdbc.Driver";
+ public static final String controllerDB = "com.mysql.cj.jdbc.Driver";
public static final String userDB = "";
public static final String password = "";
diff --git a/src/main/java/org/telegram/Main.java b/src/main/java/org/telegram/Main.java
index 3efe103..5937011 100644
--- a/src/main/java/org/telegram/Main.java
+++ b/src/main/java/org/telegram/Main.java
@@ -8,6 +8,7 @@ import org.telegram.telegrambots.logging.BotsFileHandler;
import org.telegram.updateshandlers.ChannelHandlers;
import org.telegram.updateshandlers.CommandsHandler;
import org.telegram.updateshandlers.DirectionsHandlers;
+import org.telegram.updateshandlers.ElektrollArtFanHandler;
import org.telegram.updateshandlers.FilesHandlers;
import org.telegram.updateshandlers.RaeHandlers;
import org.telegram.updateshandlers.TransifexHandlers;
@@ -48,6 +49,7 @@ public class Main {
telegramBotsApi.registerBot(new TransifexHandlers());
telegramBotsApi.registerBot(new FilesHandlers());
telegramBotsApi.registerBot(new CommandsHandler());
+ telegramBotsApi.registerBot(new ElektrollArtFanHandler());
} catch (TelegramApiException e) {
BotLogger.error(LOGTAG, e);
}
diff --git a/src/main/java/org/telegram/services/DirectionsService.java b/src/main/java/org/telegram/services/DirectionsService.java
index bd96e97..d3aaca5 100644
--- a/src/main/java/org/telegram/services/DirectionsService.java
+++ b/src/main/java/org/telegram/services/DirectionsService.java
@@ -84,7 +84,7 @@ public class DirectionsService {
JSONObject jsonObject = new JSONObject(responseContent);
if (jsonObject.getString("status").equals("OK")) {
JSONObject route = jsonObject.getJSONArray("routes").getJSONObject(0);
- String startOfAddress = LocalisationService.getInstance().getString("directionsInit", language);
+ String startOfAddress = LocalisationService.getString("directionsInit", language);
String partialResponseToUser = String.format(startOfAddress,
route.getJSONArray("legs").getJSONObject(0).getString("start_address"),
route.getJSONArray("legs").getJSONObject(0).getJSONObject("distance").getString("text"),
@@ -95,11 +95,11 @@ public class DirectionsService {
responseToUser.addAll(getDirectionsSteps(
route.getJSONArray("legs").getJSONObject(0).getJSONArray("steps"), language));
} else {
- responseToUser.add(LocalisationService.getInstance().getString("directionsNotFound", language));
+ responseToUser.add(LocalisationService.getString("directionsNotFound", language));
}
} catch (Exception e) {
BotLogger.warn(LOGTAG, e);
- responseToUser.add(LocalisationService.getInstance().getString("errorFetchingDirections", language));
+ responseToUser.add(LocalisationService.getString("errorFetchingDirections", language));
}
return responseToUser;
}
@@ -126,7 +126,7 @@ public class DirectionsService {
}
private String getDirectionForStep(JSONObject jsonObject, String language) {
- String direction = LocalisationService.getInstance().getString("directionsStep", language);
+ String direction = LocalisationService.getString("directionsStep", language);
String htmlIntructions = Jsoup.parse(jsonObject.getString("html_instructions")).text();
String duration = jsonObject.getJSONObject("duration").getString("text");
String distance = jsonObject.getJSONObject("distance").getString("text");
diff --git a/src/main/java/org/telegram/services/LocalisationService.java b/src/main/java/org/telegram/services/LocalisationService.java
index 48161f0..88a1675 100644
--- a/src/main/java/org/telegram/services/LocalisationService.java
+++ b/src/main/java/org/telegram/services/LocalisationService.java
@@ -1,134 +1,61 @@
package org.telegram.services;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.HashMap;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
+import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
/**
* @author Ruben Bermudez
* @version 1.0
- * @brief Localisation
- * @date 25/01/15
*/
public class LocalisationService {
- private static LocalisationService instance = null;
- private final HashMap supportedLanguages = new HashMap<>();
-
- private ResourceBundle english;
- private ResourceBundle spanish;
- private ResourceBundle dutch;
- private ResourceBundle german;
- private ResourceBundle italian;
- private ResourceBundle french;
- private ResourceBundle malayalam;
- private ResourceBundle hindi;
- private ResourceBundle portuguese;
- private ResourceBundle portuguesebr;
- private ResourceBundle russian;
- private ResourceBundle arabic;
- private ResourceBundle catalan;
- private ResourceBundle galician;
- private ResourceBundle persian;
- private ResourceBundle turkish;
- private ResourceBundle esperanto;
-
- private class CustomClassLoader extends ClassLoader {
- public CustomClassLoader(ClassLoader parent) {
- super(parent);
+ private static final String STRINGS_FILE = "strings";
+ private static final Object lock = new Object();
- }
+ private static final List supportedLanguages = new ArrayList<>();
+ private static final Utf8ResourceBundle defaultLanguage;
+ private static final Utf8ResourceBundle spanish;
+ private static final Utf8ResourceBundle dutch;
+ private static final Utf8ResourceBundle italian;
+ private static final Utf8ResourceBundle portuguese;
+ private static final Utf8ResourceBundle esperanto;
- public InputStream getResourceAsStream(String name) {
- InputStream utf8in = getParent().getResourceAsStream(name);
- if (utf8in != null) {
- try {
- byte[] utf8Bytes = new byte[utf8in.available()];
- utf8in.read(utf8Bytes, 0, utf8Bytes.length);
- byte[] iso8859Bytes = new String(utf8Bytes, "UTF-8").getBytes("ISO-8859-1");
- return new ByteArrayInputStream(iso8859Bytes);
- } catch (IOException e) {
- e.printStackTrace();
-
- } finally {
- try {
- utf8in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return null;
+ static {
+ synchronized (lock) {
+ defaultLanguage = new Utf8ResourceBundle(STRINGS_FILE, Locale.ROOT);
+ supportedLanguages.add(new Language("en", "English"));
+ spanish = new Utf8ResourceBundle(STRINGS_FILE, new Locale("es", "ES"));
+ supportedLanguages.add(new Language("es", "Español"));
+ portuguese = new Utf8ResourceBundle(STRINGS_FILE, new Locale("pt", "PT"));
+ supportedLanguages.add(new Language("pt", "Português"));
+ dutch = new Utf8ResourceBundle(STRINGS_FILE, new Locale("nl", "NL"));
+ supportedLanguages.add(new Language("nl", "Nederlands"));
+ italian = new Utf8ResourceBundle(STRINGS_FILE, new Locale("it", "IT"));
+ supportedLanguages.add(new Language("it", "Italiano"));
+ esperanto = new Utf8ResourceBundle(STRINGS_FILE, new Locale("eo", "EO"));
+ supportedLanguages.add(new Language("eo", "Esperanto"));
}
}
- /**
- * Singleton
- *
- * @return Instance of localisation service
- */
- public static LocalisationService getInstance() {
- if (instance == null) {
- synchronized (LocalisationService.class) {
- if (instance == null) {
- instance = new LocalisationService();
- }
- }
- }
- return instance;
- }
-
- /**
- * Private constructor due to singleton
- */
- private LocalisationService() {
- CustomClassLoader loader = new CustomClassLoader(Thread.currentThread().getContextClassLoader());
- english = ResourceBundle.getBundle("localisation.strings", new Locale("en", "US"), loader);
- supportedLanguages.put("en", "English");
- spanish = ResourceBundle.getBundle("localisation.strings", new Locale("es", "ES"), loader);
- supportedLanguages.put("es", "Español");
- portuguese = ResourceBundle.getBundle("localisation.strings", new Locale("pt", "PT"), loader);
- supportedLanguages.put("pt", "Português");
- dutch = ResourceBundle.getBundle("localisation.strings", new Locale("nl", "NL"), loader);
- supportedLanguages.put("nl", "Nederlands");
- italian = ResourceBundle.getBundle("localisation.strings", new Locale("it", "IT"), loader);
- supportedLanguages.put("it", "Italiano");
- esperanto = ResourceBundle.getBundle("localisation.strings", new Locale("eo", "EO"), loader);
- supportedLanguages.put("eo", "Esperanto");
- /*
- german = ResourceBundle.getBundle("localisation.strings", new Locale("de", "DE"), loader);
- supportedLanguages.put("de", "Deutsch");
- italian = ResourceBundle.getBundle("localisation.strings", new Locale("it", "IT"), loader);
- supportedLanguages.put("it", "Italian");
- french = ResourceBundle.getBundle("localisation.strings", new Locale("fr", "FR"), loader);
- supportedLanguages.put("fr", "French");
- portuguesebr = ResourceBundle.getBundle("localisation.strings", new Locale("pt", "BR"), loader);
- supportedLanguages.put("pt_br", "Portuguese BR");*/
- /**
- malayalam = ResourceBundle.getBundle("localisation.strings", new Locale("ml", "ML"), loader);
- hindi = ResourceBundle.getBundle("localisation.strings", new Locale("hi", "HI"), loader);
- russian = ResourceBundle.getBundle("localisation.strings", new Locale("ru", "RU"), loader);
- arabic = ResourceBundle.getBundle("localisation.strings", new Locale("ar", "AR"), loader);
- catalan = ResourceBundle.getBundle("localisation.strings", new Locale("ca", "CA"), loader);
- galician = ResourceBundle.getBundle("localisation.strings", new Locale("gl", "ES"), loader);
- persian = ResourceBundle.getBundle("localisation.strings", new Locale("fa", "FA"), loader);
- turkish = ResourceBundle.getBundle("localisation.strings", new Locale("tr", "TR"), loader);
- */
- }
-
/**
* Get a string in default language (en)
*
* @param key key of the resource to fetch
* @return fetched string or error message otherwise
*/
- public String getString(String key) {
+ public static String getString(String key) {
String result;
try {
- result = english.getString(key);
+ result = defaultLanguage.getString(key);
} catch (MissingResourceException e) {
result = "String not found";
}
@@ -142,13 +69,10 @@ public class LocalisationService {
* @param key key of the resource to fetch
* @return fetched string or error message otherwise
*/
- public String getString(String key, String language) {
+ public static String getString(String key, String language) {
String result;
try {
switch (language.toLowerCase()) {
- case "en":
- result = english.getString(key);
- break;
case "es":
result = spanish.getString(key);
break;
@@ -164,55 +88,127 @@ public class LocalisationService {
case "eo":
result = esperanto.getString(key);
break;
- /*case "de":
- result = german.getString(key);
- break;
- case "fr":
- result = french.getString(key);
- break;
- case "ml":
- result = malayalam.getString(key);
- break;
- case "hi":
- result = hindi.getString(key);
- break;
- case "pt-BR":
- result = portuguesebr.getString(key);
- break;
- case "ru":
- result = russian.getString(key);
- break;
- case "ar":
- result = arabic.getString(key);
- break;
- case "ca":
- result = catalan.getString(key);
- break;
- case "gl":
- result = galician.getString(key);
- break;
- case "fa":
- result = persian.getString(key);
- break;
- case "tr":
- result = turkish.getString(key);
- break;*/
default:
- result = english.getString(key);
+ result = defaultLanguage.getString(key);
break;
}
} catch (MissingResourceException e) {
- result = english.getString(key);
+ result = defaultLanguage.getString(key);
}
return result;
}
- public HashMap getSupportedLanguages() {
+ public static List getSupportedLanguages() {
return supportedLanguages;
}
- public String getLanguageCodeByName(String language) {
- return supportedLanguages.entrySet().stream().filter(x -> x.getValue().equals(language)).findFirst().get().getKey();
+ public static Language getLanguageByCode(String languageCode) {
+ return supportedLanguages.stream().filter(x -> x.getCode().equals(languageCode)).findFirst().orElse(null);
+ }
+
+ public static Language getLanguageByName(String languageName) {
+ return supportedLanguages.stream().filter(x -> x.getName().equals(languageName)).findFirst().orElse(null);
+ }
+
+ public static String getLanguageCodeByName(String language) {
+ return supportedLanguages.stream().filter(x -> x.getName().equals(language))
+ .map(Language::getCode).findFirst().orElse(null);
+ }
+
+ public static class Language {
+ private String code;
+ private String name;
+ private String emoji;
+
+ public Language(String code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getEmoji() {
+ return emoji;
+ }
+
+ public void setEmoji(String emoji) {
+ this.emoji = emoji;
+ }
+
+ @Override
+ public String toString() {
+ if (emoji == null || emoji.isEmpty()) {
+ return name;
+ } else {
+ return emoji + " " + name;
+ }
+ }
+ }
+
+ private static class Utf8ResourceBundle extends ResourceBundle {
+
+ private static final String BUNDLE_EXTENSION = "properties";
+ private static final String CHARSET = "UTF-8";
+ private static final ResourceBundle.Control UTF8_CONTROL = new UTF8Control();
+
+ Utf8ResourceBundle(String bundleName, Locale locale) {
+ setParent(ResourceBundle.getBundle(bundleName, locale, UTF8_CONTROL));
+ }
+
+ @Override
+ protected Object handleGetObject(String key) {
+ return parent.getObject(key);
+ }
+
+ @Override
+ public Enumeration getKeys() {
+ return parent.getKeys();
+ }
+
+ private static class UTF8Control extends Control {
+ public ResourceBundle newBundle
+ (String baseName, Locale locale, String format, ClassLoader loader, boolean reload)
+ throws IllegalAccessException, InstantiationException, IOException {
+ String bundleName = toBundleName(baseName, locale);
+ String resourceName = toResourceName(bundleName, BUNDLE_EXTENSION);
+ ResourceBundle bundle = null;
+ InputStream stream = null;
+ if (reload) {
+ URL url = loader.getResource(resourceName);
+ if (url != null) {
+ URLConnection connection = url.openConnection();
+ if (connection != null) {
+ connection.setUseCaches(false);
+ stream = connection.getInputStream();
+ }
+ }
+ } else {
+ stream = loader.getResourceAsStream(resourceName);
+ }
+ if (stream != null) {
+ try {
+ bundle = new PropertyResourceBundle(new InputStreamReader(stream, CHARSET));
+ } finally {
+ stream.close();
+ }
+ }
+ return bundle;
+ }
+ }
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/telegram/services/WeatherService.java b/src/main/java/org/telegram/services/WeatherService.java
index a7a96ac..421ac60 100644
--- a/src/main/java/org/telegram/services/WeatherService.java
+++ b/src/main/java/org/telegram/services/WeatherService.java
@@ -96,15 +96,15 @@ public class WeatherService {
cityFound = jsonObject.getJSONObject("city").getString("name") + " (" +
jsonObject.getJSONObject("city").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getJSONObject("city").getInt("id"));
- responseToUser = String.format(LocalisationService.getInstance().getString("weatherAlert", language),
+ responseToUser = String.format(LocalisationService.getString("weatherAlert", language),
cityFound, convertListOfForecastToString(jsonObject, language, units, false));
} else {
BotLogger.warn(LOGTAG, jsonObject.toString());
- responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
+ responseToUser = LocalisationService.getString("cityNotFound", language);
}
} catch (Exception e) {
BotLogger.error(LOGTAG, e);
- responseToUser = LocalisationService.getInstance().getString("errorFetchingWeather", language);
+ responseToUser = LocalisationService.getString("errorFetchingWeather", language);
}
return responseToUser;
}
@@ -137,15 +137,15 @@ public class WeatherService {
cityFound = jsonObject.getJSONObject("city").getString("name") + " (" +
jsonObject.getJSONObject("city").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getJSONObject("city").getInt("id"));
- responseToUser = String.format(LocalisationService.getInstance().getString("weatherForcast", language),
+ responseToUser = String.format(LocalisationService.getString("weatherForcast", language),
cityFound, convertListOfForecastToString(jsonObject, language, units, true));
} else {
BotLogger.warn(LOGTAG, jsonObject.toString());
- responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
+ responseToUser = LocalisationService.getString("cityNotFound", language);
}
} catch (Exception e) {
BotLogger.error(LOGTAG, e);
- responseToUser = LocalisationService.getInstance().getString("errorFetchingWeather", language);
+ responseToUser = LocalisationService.getString("errorFetchingWeather", language);
}
return responseToUser;
}
@@ -156,7 +156,7 @@ public class WeatherService {
* @return userHash to be send to use
* @note Forecast for the following 3 days
*/
- public String fetchWeatherForecastByLocation(Double longitude, Double latitude, Integer userId, String language, String units) {
+ public String fetchWeatherForecastByLocation(Float longitude, Float latitude, Integer userId, String language, String units) {
String cityFound;
String responseToUser;
try {
@@ -176,15 +176,15 @@ public class WeatherService {
cityFound = jsonObject.getJSONObject("city").getString("name") + " (" +
jsonObject.getJSONObject("city").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getJSONObject("city").getInt("id"));
- responseToUser = String.format(LocalisationService.getInstance().getString("weatherForcast", language),
+ responseToUser = String.format(LocalisationService.getString("weatherForcast", language),
cityFound, convertListOfForecastToString(jsonObject, language, units, true));
} else {
BotLogger.warn(LOGTAG, jsonObject.toString());
- responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
+ responseToUser = LocalisationService.getString("cityNotFound", language);
}
} catch (Exception e) {
BotLogger.error(LOGTAG, e);
- responseToUser = LocalisationService.getInstance().getString("errorFetchingWeather", language);
+ responseToUser = LocalisationService.getString("errorFetchingWeather", language);
}
return responseToUser;
}
@@ -217,15 +217,15 @@ public class WeatherService {
jsonObject.getJSONObject("sys").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getInt("id"));
emoji = getEmojiForWeather(jsonObject.getJSONArray("weather").getJSONObject(0));
- responseToUser = String.format(LocalisationService.getInstance().getString("weatherCurrent", language),
+ responseToUser = String.format(LocalisationService.getString("weatherCurrent", language),
cityFound, convertCurrentWeatherToString(jsonObject, language, units, emoji));
} else {
BotLogger.warn(LOGTAG, jsonObject.toString());
- responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
+ responseToUser = LocalisationService.getString("cityNotFound", language);
}
} catch (Exception e) {
BotLogger.error(LOGTAG, e);
- responseToUser = LocalisationService.getInstance().getString("errorFetchingWeather", language);
+ responseToUser = LocalisationService.getString("errorFetchingWeather", language);
}
return responseToUser;
}
@@ -236,7 +236,7 @@ public class WeatherService {
* @return userHash to be send to use
* @note Forecast for the following 3 days
*/
- public String fetchWeatherCurrentByLocation(Double longitude, Double latitude, Integer userId, String language, String units) {
+ public String fetchWeatherCurrentByLocation(Float longitude, Float latitude, Integer userId, String language, String units) {
String cityFound;
String responseToUser;
try {
@@ -256,15 +256,15 @@ public class WeatherService {
cityFound = jsonObject.getString("name") + " (" +
jsonObject.getJSONObject("sys").getString("country") + ")";
saveRecentWeather(userId, cityFound, jsonObject.getInt("id"));
- responseToUser = String.format(LocalisationService.getInstance().getString("weatherCurrent", language),
+ responseToUser = String.format(LocalisationService.getString("weatherCurrent", language),
cityFound, convertCurrentWeatherToString(jsonObject, language, units, null));
} else {
BotLogger.warn(LOGTAG, jsonObject.toString());
- responseToUser = LocalisationService.getInstance().getString("cityNotFound", language);
+ responseToUser = LocalisationService.getString("cityNotFound", language);
}
} catch (Exception e) {
BotLogger.error(LOGTAG, e);
- responseToUser = LocalisationService.getInstance().getString("errorFetchingWeather", language);
+ responseToUser = LocalisationService.getString("errorFetchingWeather", language);
}
return responseToUser;
}
@@ -276,9 +276,9 @@ public class WeatherService {
String responseToUser;
if (units.equals(METRICSYSTEM)) {
- responseToUser = LocalisationService.getInstance().getString("currentWeatherPartMetric", language);
+ responseToUser = LocalisationService.getString("currentWeatherPartMetric", language);
} else {
- responseToUser = LocalisationService.getInstance().getString("currentWeatherPartImperial", language);
+ responseToUser = LocalisationService.getString("currentWeatherPartImperial", language);
}
responseToUser = String.format(responseToUser, emoji == null ? weatherDesc : emoji.toString(), cloudiness, temp);
@@ -321,15 +321,15 @@ public class WeatherService {
if (units.equals(METRICSYSTEM)) {
if (addDate) {
- responseToUser = LocalisationService.getInstance().getString("forecastWeatherPartMetric", language);
+ responseToUser = LocalisationService.getString("forecastWeatherPartMetric", language);
} else {
- responseToUser = LocalisationService.getInstance().getString("alertWeatherPartMetric", language);
+ responseToUser = LocalisationService.getString("alertWeatherPartMetric", language);
}
} else {
if (addDate) {
- responseToUser = LocalisationService.getInstance().getString("forecastWeatherPartImperial", language);
+ responseToUser = LocalisationService.getString("forecastWeatherPartImperial", language);
} else {
- responseToUser = LocalisationService.getInstance().getString("alertWeatherPartImperial", language);
+ responseToUser = LocalisationService.getString("alertWeatherPartImperial", language);
}
}
if (addDate) {
diff --git a/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java b/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java
index 5754704..e91e8b9 100644
--- a/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java
+++ b/src/main/java/org/telegram/updateshandlers/DirectionsHandlers.java
@@ -10,8 +10,8 @@ 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.api.objects.replykeyboard.ForceReplyKeyboard;
-import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
+import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardRemove;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;
@@ -21,9 +21,7 @@ import org.telegram.telegrambots.updateshandlers.SentCallback;
import java.io.InvalidObjectException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
@@ -89,7 +87,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
sendHelpMessage(message, language);
} else {
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("youNeedReplyDirections", language));
+ sendMessageRequest.setText(LocalisationService.getString("youNeedReplyDirections", language));
sendMessageRequest.setChatId(message.getChatId());
try {
sendMessage(sendMessageRequest);
@@ -109,9 +107,9 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
List directions = DirectionsService.getInstance().getDirections(origin, destiny, language);
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
- ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
- replyKeyboardHide.setSelective(true);
- sendMessageRequest.setReplyMarkup(replyKeyboardHide);
+ ReplyKeyboardRemove replyKeyboardRemove = new ReplyKeyboardRemove();
+ replyKeyboardRemove.setSelective(true);
+ sendMessageRequest.setReplyMarkup(replyKeyboardRemove);
sendMessageRequest.setReplyToMessageId(message.getMessageId());
for (String direction : directions) {
sendMessageRequest.setText(direction);
@@ -146,7 +144,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
ForceReplyKeyboard forceReplyKeyboard = new ForceReplyKeyboard();
forceReplyKeyboard.setSelective(true);
sendMessageRequest.setReplyMarkup(forceReplyKeyboard);
- sendMessageRequest.setText(LocalisationService.getInstance().getString("sendDestination", language));
+ sendMessageRequest.setText(LocalisationService.getString("sendDestination", language));
try {
sendMessageAsync(sendMessageRequest, new SentCallback() {
@@ -175,7 +173,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
private void sendHelpMessage(Message message, String language) throws InvalidObjectException {
SendMessage sendMessageRequest = new SendMessage();
String helpDirectionsFormated = String.format(
- LocalisationService.getInstance().getString("helpDirections", language),
+ LocalisationService.getString("helpDirections", language),
Commands.startDirectionCommand);
sendMessageRequest.setText(helpDirectionsFormated);
sendMessageRequest.setChatId(message.getChatId());
@@ -193,7 +191,7 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
ForceReplyKeyboard forceReplyKeyboard = new ForceReplyKeyboard();
forceReplyKeyboard.setSelective(true);
sendMessageRequest.setReplyMarkup(forceReplyKeyboard);
- sendMessageRequest.setText(LocalisationService.getInstance().getString("initDirections", language));
+ sendMessageRequest.setText(LocalisationService.getString("initDirections", language));
try {
sendMessageAsync(sendMessageRequest, new SentCallback() {
@@ -223,19 +221,19 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
- HashMap languages = LocalisationService.getInstance().getSupportedLanguages();
+ List languages = LocalisationService.getSupportedLanguages();
List commands = new ArrayList<>();
- for (Map.Entry entry : languages.entrySet()) {
+ for (LocalisationService.Language languageItem : languages) {
KeyboardRow commandRow = new KeyboardRow();
- commandRow.add(entry.getKey() + " --> " + entry.getValue());
+ commandRow.add(languageItem.getCode() + " --> " + languageItem.getName());
commands.add(commandRow);
}
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
replyKeyboardMarkup.setKeyboard(commands);
replyKeyboardMarkup.setSelective(true);
sendMessageRequest.setReplyMarkup(replyKeyboardMarkup);
- sendMessageRequest.setText(LocalisationService.getInstance().getString("chooselanguage", language));
+ sendMessageRequest.setText(LocalisationService.getString("chooselanguage", language));
try {
sendMessage(sendMessageRequest);
languageMessages.add(message.getFrom().getId());
@@ -248,16 +246,16 @@ public class DirectionsHandlers extends TelegramLongPollingBot {
String[] parts = message.getText().split("-->", 2);
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
- if (LocalisationService.getInstance().getSupportedLanguages().containsKey(parts[0].trim())) {
+ if (LocalisationService.getLanguageByCode(parts[0].trim()) != null) {
DatabaseManager.getInstance().putUserLanguage(message.getFrom().getId(), parts[0].trim());
- sendMessageRequest.setText(LocalisationService.getInstance().getString("languageModified", parts[0].trim()));
+ sendMessageRequest.setText(LocalisationService.getString("languageModified", parts[0].trim()));
} else {
- sendMessageRequest.setText(LocalisationService.getInstance().getString("errorLanguage"));
+ sendMessageRequest.setText(LocalisationService.getString("errorLanguage"));
}
sendMessageRequest.setReplyToMessageId(message.getMessageId());
- ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
- replyKeyboardHide.setSelective(true);
- sendMessageRequest.setReplyMarkup(replyKeyboardHide);
+ ReplyKeyboardRemove replyKeyboardRemove = new ReplyKeyboardRemove();
+ replyKeyboardRemove.setSelective(true);
+ sendMessageRequest.setReplyMarkup(replyKeyboardRemove);
try {
sendMessage(sendMessageRequest);
languageMessages.remove(message.getFrom().getId());
diff --git a/src/main/java/org/telegram/updateshandlers/ElektrollArtFanHandler.java b/src/main/java/org/telegram/updateshandlers/ElektrollArtFanHandler.java
new file mode 100644
index 0000000..a352af8
--- /dev/null
+++ b/src/main/java/org/telegram/updateshandlers/ElektrollArtFanHandler.java
@@ -0,0 +1,226 @@
+package org.telegram.updateshandlers;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.telegram.BotConfig;
+import org.telegram.telegrambots.api.methods.AnswerCallbackQuery;
+import org.telegram.telegrambots.api.methods.send.SendMessage;
+import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageText;
+import org.telegram.telegrambots.api.objects.CallbackQuery;
+import org.telegram.telegrambots.api.objects.Message;
+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.exceptions.TelegramApiException;
+
+
+/**
+ * @author Clevero
+ * @version 1.0
+ * @brief Handler for updates to ElektrollArtFanBot
+ * This bot is an example for using inline buttons, here to make a gallery.
+ * Bot contains some images from ElektrollArt that are all licensed under creative commons
+ * @date 28 of October of 2016
+ */
+public class ElektrollArtFanHandler extends TelegramLongPollingBot {
+
+ private ArrayList urls;
+ final private String BACK = "⬅️ Back";
+ final private String NEXT = "Next ➡️";
+ final private String INDEX_OUT_OF_RANGE = "Requested index is out of range!";
+
+ public ElektrollArtFanHandler() {
+ this.urls = new ArrayList<>();
+ this.addUrls();
+ }
+
+ @Override
+ public String getBotUsername() {
+ return BotConfig.ELEKTROLLART_USER;
+ }
+
+ private void addUrls(){
+
+ /*
+ * Just some sample links of my fav images from elektrollart.de
+ */
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=2964", "http://www.elektrollart.de/wp-content/uploads/deer-724x1024.png", "Deer Nature (cc-by)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=2960", "http://www.elektrollart.de/wp-content/uploads/butterfly_wallpaper_by_elektroll-d424m9d-1024x576.png", "Butterfly Wallpaper (cc-by)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=2897", "http://www.elektrollart.de/wp-content/uploads/ilovefs_wallpaper-1024x576.png", "I Love Free Software – Wallpaper (CC0)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=3953", "http://www.elektrollart.de/wp-content/uploads/diaspora_wallpaper_by_elektroll-d4anyj4-1024x576.png", "diaspora Wallpaper (CC-BY-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=549", "http://www.elektrollart.de/wp-content/uploads/diaspora_flower-1024x576.png", "Diaspora Digital Wallpaper (CC-BY-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=534", "http://www.elektrollart.de/wp-content/uploads/debian-butterfly-1024x576.png", "Debian-Butterfly Wallpaper (CC-BY-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=531", "http://www.elektrollart.de/wp-content/uploads/cc-white-1920x1080-1024x576.png", "CC-Wallpaper (CC-BY-NC-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=526", "http://www.elektrollart.de/wp-content/uploads/debian-gal-1920x1080-1024x576.png", "Debian Wallpaper (CC-BY-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=523", "http://www.elektrollart.de/wp-content/uploads/Ubuntusplash-1920x1080-1024x576.png", "Ubuntu Wallpaper (CC-BY-NC-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=559", "http://www.elektrollart.de/wp-content/uploads/skullgirll_a-1024x576.png", "Skullgirl Wallpapers (CC-BY-NC-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=559", "http://www.elektrollart.de/wp-content/uploads/skullgirll_b-1024x576.png", "Skullgirl Wallpapers (CC-BY-NC-SA)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=847", "http://www.elektrollart.de/wp-content/uploads/archlinux_wallpaper-1024x576.png", "ArchLinux (CC0)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=1381", "http://www.elektrollart.de/wp-content/uploads/tuxxi-small-724x1024.png", "Piep (CC-BY)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=4264", "http://www.elektrollart.de/wp-content/uploads/Thngs_left_unsaid-724x1024.jpg", "Things Left Unsaid (CC-BY)"});
+ this.urls.add(new String[]{"http://www.elektrollart.de/?p=2334", "http://www.elektrollart.de/wp-content/uploads/redpanda-1024x826.png", "<3 mozilla (CC0)"});
+ }
+
+ @Override
+ public void onUpdateReceived(Update update) {
+
+ //check if the update has a message
+ if(update.hasMessage()){
+ Message message = update.getMessage();
+
+ //check if the message contains a text
+ if(message.hasText()){
+ String input = message.getText();
+
+ if(input.equals("/start")){
+ SendMessage sendMessagerequest = new SendMessage();
+ sendMessagerequest.setChatId(message.getChatId().toString());
+ /*
+ * we just add the first link from our array
+ *
+ * We use markdown to embedd the image
+ */
+ sendMessagerequest.setText("[](" + this.urls.get(0)[1] + ")");
+ sendMessagerequest.enableMarkdown(true);
+
+ sendMessagerequest.setReplyMarkup(this.getGalleryView(0, -1));
+
+
+ try {
+ sendMessage(sendMessagerequest);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ else if(update.hasCallbackQuery()){
+ CallbackQuery callbackquery = update.getCallbackQuery();
+ String[] data = callbackquery.getData().split(":");
+ int index = Integer.parseInt(data[2]);
+
+ if(data[0].equals("gallery")){
+
+ InlineKeyboardMarkup markup = null;
+
+ if(data[1].equals("back")){
+ markup = this.getGalleryView(Integer.parseInt(data[2]), 1);
+ if(index > 0){
+ index--;
+ }
+ }else if(data[1].equals("next")){
+ markup = this.getGalleryView(Integer.parseInt(data[2]), 2);
+ if(index < this.urls.size()-1){
+ index++;
+ }
+ }else if(data[1].equals("text")){
+ try {
+ this.sendAnswerCallbackQuery("Please use one of the given actions below, instead.", false, callbackquery);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ }
+ }
+
+ if(markup == null){
+ try {
+ this.sendAnswerCallbackQuery(INDEX_OUT_OF_RANGE, false, callbackquery);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ }
+ }else{
+
+ EditMessageText editMarkup = new EditMessageText();
+ editMarkup.setChatId(callbackquery.getMessage().getChatId().toString());
+ editMarkup.setInlineMessageId(callbackquery.getInlineMessageId());
+ editMarkup.setText("[](" + this.urls.get(index)[1] + ")");
+ editMarkup.enableMarkdown(true);
+ editMarkup.setMessageId(callbackquery.getMessage().getMessageId());
+ editMarkup.setReplyMarkup(markup);
+ try {
+ editMessageText(editMarkup);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+
+ }
+ }
+ }
+ /**
+ *
+ * @param text The text that should be shown
+ * @param alert If the text should be shown as a alert or not
+ * @param callbackquery
+ * @throws TelegramApiException
+ */
+ private void sendAnswerCallbackQuery(String text, boolean alert, CallbackQuery callbackquery) throws TelegramApiException{
+ AnswerCallbackQuery answerCallbackQuery = new AnswerCallbackQuery();
+ answerCallbackQuery.setCallbackQueryId(callbackquery.getId());
+ answerCallbackQuery.setShowAlert(alert);
+ answerCallbackQuery.setText(text);
+ answerCallbackQuery(answerCallbackQuery);
+ }
+
+ /**
+ *
+ * @param index Index of the current image
+ * @param action What button was clicked
+ * @return
+ */
+ private InlineKeyboardMarkup getGalleryView(int index, int action){
+ /*
+ * action = 1 -> back
+ * action = 2 -> next
+ * action = -1 -> nothing
+ */
+
+ if(action == 1 && index > 0){
+ index--;
+ }
+ else if((action == 1 && index == 0)){
+ return null;
+ }
+ else if(action == 2 && index >= this.urls.size()-1){
+ return null;
+ }
+ else if(action == 2){
+ index++;
+ }
+
+ InlineKeyboardMarkup markupInline = new InlineKeyboardMarkup();
+
+ List> rowsInline = new ArrayList<>();
+
+ List rowInline = new ArrayList<>();
+ rowInline.add(new InlineKeyboardButton().setText(this.urls.get(index)[2]).setCallbackData("gallery:text:" + index));
+
+
+ List rowInline2 = new ArrayList<>();
+ rowInline2.add(new InlineKeyboardButton().setText(BACK).setCallbackData("gallery:back:" + index));
+ rowInline2.add(new InlineKeyboardButton().setText(NEXT).setCallbackData("gallery:next:" + index));
+
+ List rowInline3 = new ArrayList<>();
+ rowInline3.add(new InlineKeyboardButton().setText("Link").setUrl(this.urls.get(index)[0]));
+
+
+ rowsInline.add(rowInline);
+ rowsInline.add(rowInline3);
+ rowsInline.add(rowInline2);
+
+ markupInline.setKeyboard(rowsInline);
+
+ return markupInline;
+ }
+
+ @Override
+ public String getBotToken() {
+ return BotConfig.ELEKTROLLART_TOKEN;
+ }
+
+}
diff --git a/src/main/java/org/telegram/updateshandlers/FilesHandlers.java b/src/main/java/org/telegram/updateshandlers/FilesHandlers.java
index 099d4cc..2ffe5ce 100644
--- a/src/main/java/org/telegram/updateshandlers/FilesHandlers.java
+++ b/src/main/java/org/telegram/updateshandlers/FilesHandlers.java
@@ -9,8 +9,8 @@ import org.telegram.telegrambots.api.methods.send.SendDocument;
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.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
+import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardRemove;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;
@@ -106,8 +106,8 @@ public class FilesHandlers extends TelegramLongPollingBot {
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId());
DatabaseManager.getInstance().addFile(message.getDocument().getFileId(), message.getFrom().getId(), message.getDocument().getFileName());
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("fileUploaded", language) +
- LocalisationService.getInstance().getString("uploadedFileURL", language) + message.getDocument().getFileId());
+ sendMessageRequest.setText(LocalisationService.getString("fileUploaded", language) +
+ LocalisationService.getString("uploadedFileURL", language) + message.getDocument().getFileId());
sendMessageRequest.setChatId(message.getChatId());
sendMessage(sendMessageRequest);
}
@@ -117,18 +117,17 @@ public class FilesHandlers extends TelegramLongPollingBot {
HashMap files = DatabaseManager.getInstance().getFilesByUser(message.getFrom().getId());
SendMessage sendMessageRequest = new SendMessage();
if (files.size() > 0) {
- String text = LocalisationService.getInstance().getString("listOfFiles", language) + ":\n\n";
+ String text = LocalisationService.getString("listOfFiles", language) + ":\n\n";
for (Map.Entry entry : files.entrySet()) {
- text += LocalisationService.getInstance().getString("uploadedFileURL", language)
+ text += LocalisationService.getString("uploadedFileURL", language)
+ entry.getKey() + " " + Emoji.LEFT_RIGHT_ARROW.toString() + " " + entry.getValue() + "\n";
}
sendMessageRequest.setText(text);
} else {
- sendMessageRequest.setText(LocalisationService.getInstance().getString("noFiles", language));
+ sendMessageRequest.setText(LocalisationService.getString("noFiles", language));
}
sendMessageRequest.setChatId(message.getChatId());
- ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
- sendMessageRequest.setReplyMarkup(replyKeyboardHide);
+ sendMessageRequest.setReplyMarkup(new ReplyKeyboardRemove());
sendMessage(sendMessageRequest);
}
@@ -144,7 +143,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
private void onDeleteCommandWithoutParameters(Message message, String language) throws InvalidObjectException, TelegramApiException {
DatabaseManager.getInstance().addUserForFile(message.getFrom().getId(), DELETE_UPLOADED_STATUS);
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("deleteUploadedFile", language));
+ sendMessageRequest.setText(LocalisationService.getString("deleteUploadedFile", language));
sendMessageRequest.setChatId(message.getChatId());
HashMap files = DatabaseManager.getInstance().getFilesByUser(message.getFrom().getId());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
@@ -157,7 +156,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
commands.add(commandRow);
}
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
replyKeyboardMarkup.setKeyboard(commands);
}
sendMessageRequest.setReplyMarkup(replyKeyboardMarkup);
@@ -169,9 +168,9 @@ public class FilesHandlers extends TelegramLongPollingBot {
boolean removed = DatabaseManager.getInstance().deleteFile(innerParts[0].trim());
SendMessage sendMessageRequest = new SendMessage();
if (removed) {
- sendMessageRequest.setText(LocalisationService.getInstance().getString("fileDeleted", language));
+ sendMessageRequest.setText(LocalisationService.getString("fileDeleted", language));
} else {
- sendMessageRequest.setText(LocalisationService.getInstance().getString("wrongFileId", language));
+ sendMessageRequest.setText(LocalisationService.getString("wrongFileId", language));
}
sendMessageRequest.setChatId(message.getChatId());
@@ -183,7 +182,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
private void onCancelCommand(Message message, String language) throws InvalidObjectException, TelegramApiException {
DatabaseManager.getInstance().deleteUserForFile(message.getFrom().getId());
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("processFinished", language));
+ sendMessageRequest.setText(LocalisationService.getString("processFinished", language));
sendMessageRequest.setChatId(message.getChatId());
sendMessage(sendMessageRequest);
}
@@ -191,7 +190,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
private void onUploadCommand(Message message, String language) throws InvalidObjectException, TelegramApiException {
DatabaseManager.getInstance().addUserForFile(message.getFrom().getId(), INITIAL_UPLOAD_STATUS);
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("sendFileToUpload", language));
+ sendMessageRequest.setText(LocalisationService.getString("sendFileToUpload", language));
sendMessageRequest.setChatId(message.getChatId());
sendMessage(sendMessageRequest);
}
@@ -199,7 +198,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
private void sendHelpMessage(Message message, String language) throws InvalidObjectException, TelegramApiException {
SendMessage sendMessageRequest = new SendMessage();
String formatedString = String.format(
- LocalisationService.getInstance().getString("helpFiles", language),
+ LocalisationService.getString("helpFiles", language),
Commands.startCommand, Commands.uploadCommand, Commands.deleteCommand,
Commands.listCommand);
sendMessageRequest.setText(formatedString);
@@ -215,7 +214,7 @@ public class FilesHandlers extends TelegramLongPollingBot {
sendDocument(sendDocumentRequest);
} else {
SendMessage sendMessageRequest = new SendMessage();
- sendMessageRequest.setText(LocalisationService.getInstance().getString("wrongFileId", language));
+ sendMessageRequest.setText(LocalisationService.getString("wrongFileId", language));
sendMessageRequest.setChatId(message.getChatId());
sendMessage(sendMessageRequest);
}
@@ -225,19 +224,19 @@ public class FilesHandlers extends TelegramLongPollingBot {
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
- HashMap languages = LocalisationService.getInstance().getSupportedLanguages();
+ List languages = LocalisationService.getSupportedLanguages();
List commands = new ArrayList<>();
- for (Map.Entry entry : languages.entrySet()) {
+ for (LocalisationService.Language languageItem : languages) {
KeyboardRow commandRow = new KeyboardRow();
- commandRow.add(entry.getKey() + " " + Emoji.LEFT_RIGHT_ARROW.toString() + " " + entry.getValue());
+ commandRow.add(languageItem.getCode() + " " + Emoji.LEFT_RIGHT_ARROW.toString() + " " + languageItem.getName());
commands.add(commandRow);
}
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
replyKeyboardMarkup.setKeyboard(commands);
replyKeyboardMarkup.setSelective(true);
sendMessageRequest.setReplyMarkup(replyKeyboardMarkup);
- sendMessageRequest.setText(LocalisationService.getInstance().getString("chooselanguage", language));
+ sendMessageRequest.setText(LocalisationService.getString("chooselanguage", language));
sendMessage(sendMessageRequest);
languageMessages.add(message.getFrom().getId());
}
@@ -246,16 +245,16 @@ public class FilesHandlers extends TelegramLongPollingBot {
String[] parts = message.getText().split(Emoji.LEFT_RIGHT_ARROW.toString(), 2);
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.setChatId(message.getChatId());
- if (LocalisationService.getInstance().getSupportedLanguages().containsKey(parts[0].trim())) {
+ if (LocalisationService.getLanguageByCode(parts[0].trim()) != null) {
DatabaseManager.getInstance().putUserLanguage(message.getFrom().getId(), parts[0].trim());
- sendMessageRequest.setText(LocalisationService.getInstance().getString("languageModified", parts[0].trim()));
+ sendMessageRequest.setText(LocalisationService.getString("languageModified", parts[0].trim()));
} else {
- sendMessageRequest.setText(LocalisationService.getInstance().getString("errorLanguage"));
+ sendMessageRequest.setText(LocalisationService.getString("errorLanguage"));
}
sendMessageRequest.setReplyToMessageId(message.getMessageId());
- ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
- replyKeyboardHide.setSelective(true);
- sendMessageRequest.setReplyMarkup(replyKeyboardHide);
+ ReplyKeyboardRemove replyKeyboardRemove = new ReplyKeyboardRemove();
+ replyKeyboardRemove.setSelective(true);
+ sendMessageRequest.setReplyMarkup(replyKeyboardRemove);
sendMessage(sendMessageRequest);
languageMessages.remove(message.getFrom().getId());
}
diff --git a/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java b/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java
index 73ddf04..6c1b289 100644
--- a/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java
+++ b/src/main/java/org/telegram/updateshandlers/TransifexHandlers.java
@@ -8,7 +8,6 @@ import org.telegram.services.LocalisationService;
import org.telegram.services.TransifexService;
import org.telegram.telegrambots.api.methods.send.SendDocument;
import org.telegram.telegrambots.api.methods.send.SendMessage;
-import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageText;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.InlineKeyboardMarkup;
@@ -37,55 +36,11 @@ public class TransifexHandlers extends TelegramLongPollingBot {
@Override
public void onUpdateReceived(Update update) {
- BotLogger.severe("TEST", update.toString());
- if (update.hasMessage()) {
- if (update.getMessage().getText().startsWith("/command")) {
- SendMessage message = new SendMessage();
- message.setText("Second message after clicking >" + update.getMessage().getText() + "<");
- message.setChatId(update.getMessage().getChatId());
- try {
- sendMessage(message);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- } else {
- SendMessage message = new SendMessage();
- message.setText("First message without command");
- message.setChatId(update.getMessage().getChatId());
- InlineKeyboardMarkup markup = new InlineKeyboardMarkup();
- List> keyboard = new ArrayList<>();
- List row = new ArrayList<>();
- InlineKeyboardButton button = new InlineKeyboardButton();
- button.setText("Edit message");
- button.setCallbackData("EDIT");
- row.add(button);
- keyboard.add(row);
- markup.setKeyboard(keyboard);
- message.setReplyMarkup(markup);
- try {
- sendMessage(message);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- } else if (update.hasCallbackQuery()) {
- EditMessageText editMessage = new EditMessageText();
- editMessage.setChatId(update.getCallbackQuery().getMessage().getChatId());
- editMessage.setMessageId(update.getCallbackQuery().getMessage().getMessageId());
- editMessage.setText("First message with /command, /command1 and /command2");
- try {
- editMessageText(editMessage);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
-
-
- /*try {
+ try {
handleUpdate(update);
} catch (Throwable e) {
BotLogger.error(LOGTAG, e);
- }*/
+ }
}
private void handleUpdate(Update update) throws InvalidObjectException, TelegramApiException {
@@ -127,7 +82,7 @@ public class TransifexHandlers extends TelegramLongPollingBot {
} else if (parts[0].startsWith(Commands.help)) {
SendMessage sendMessageRequest = new SendMessage();
String helpFormated = String.format(
- LocalisationService.getInstance().getString("helpTransifex", language),
+ LocalisationService.getString("helpTransifex", language),
Commands.transifexiOSCommand, Commands.transifexAndroidCommand, Commands.transifexWebogram,
Commands.transifexTDesktop, Commands.transifexOSX, Commands.transifexWP,
Commands.transifexAndroidSupportCommand);
@@ -152,7 +107,7 @@ public class TransifexHandlers extends TelegramLongPollingBot {
(message.getText().startsWith(Commands.startCommand) || !message.isGroupMessage())) {
SendMessage sendMessageRequest = new SendMessage();
String helpFormated = String.format(
- LocalisationService.getInstance().getString("helpTransifex", language),
+ LocalisationService.getString("helpTransifex", language),
Commands.transifexiOSCommand, Commands.transifexAndroidCommand, Commands.transifexWebogram,
Commands.transifexTDesktop, Commands.transifexOSX, Commands.transifexWP,
Commands.transifexAndroidSupportCommand);
@@ -171,12 +126,12 @@ public class TransifexHandlers extends TelegramLongPollingBot {
SendMessage answer = new SendMessage();
answer.setChatId(message.getChatId());
answer.setReplyToMessageId(message.getMessageId());
- answer.setText(LocalisationService.getInstance().getString("movedToLangBot", language));
+ answer.setText(LocalisationService.getString("movedToLangBot", language));
InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
List> rows = new ArrayList<>();
List row = new ArrayList<>();
InlineKeyboardButton button = new InlineKeyboardButton();
- button.setText(LocalisationService.getInstance().getString("checkLangBot", language));
+ button.setText(LocalisationService.getString("checkLangBot", language));
button.setUrl("https://telegram.me/langbot");
row.add(button);
rows.add(row);
diff --git a/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java b/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
index 9e459e0..48e5f83 100644
--- a/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
+++ b/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java
@@ -14,8 +14,8 @@ import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboard;
-import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
+import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardRemove;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;
@@ -24,6 +24,7 @@ import org.telegram.telegrambots.logging.BotLogger;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author Ruben Bermudez
@@ -130,7 +131,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.enableMarkdown(true);
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(replyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("backToMainMenu", language));
+ sendMessage.setText(LocalisationService.getString("backToMainMenu", language));
DatabaseManager.getInstance().insertWeatherState(userId, chatId, MAINMENU);
return sendMessage;
@@ -193,9 +194,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(messageId);
sendMessage.setText(Emoji.WAVING_HAND_SIGN.toString());
- ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide();
- replyKeyboardHide.setSelective(true);
- sendMessage.setReplyMarkup(replyKeyboardHide);
+ ReplyKeyboardRemove replyKeyboardRemove = new ReplyKeyboardRemove();
+ replyKeyboardRemove.setSelective(true);
+ sendMessage.setReplyMarkup(replyKeyboardRemove);
sendMessage(sendMessage);
DatabaseManager.getInstance().insertWeatherState(userId, chatId, STARTSTATE);
@@ -249,7 +250,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setChatId(message.getChatId());
sendMessage.setReplyMarkup(getAlertsKeyboard(language));
- sendMessage.setText(LocalisationService.getInstance().getString("alertDeleted", language));
+ sendMessage.setText(LocalisationService.getString("alertDeleted", language));
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERT);
return sendMessage;
@@ -261,7 +262,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setChatId(message.getChatId());
sendMessage.setReplyMarkup(getAlertsKeyboard(language));
- sendMessage.setText(LocalisationService.getInstance().getString("alertsMenuMessage", language));
+ sendMessage.setText(LocalisationService.getString("alertsMenuMessage", language));
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERT);
return sendMessage;
@@ -276,7 +277,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(message.getChatId());
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setReplyMarkup(getAlertsKeyboard(language));
- sendMessage.setText(LocalisationService.getInstance().getString("alertsMenuMessage", language));
+ sendMessage.setText(LocalisationService.getString("alertsMenuMessage", language));
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERT);
sendMessageRequest = sendMessage;
} else {
@@ -361,11 +362,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = getAlertsListKeyboard(message.getFrom().getId(), language);
if (replyKeyboardMarkup != null) {
sendMessage.setReplyMarkup(replyKeyboardMarkup);
- sendMessage.setText(LocalisationService.getInstance().getString("chooseNewAlertCity", language));
+ sendMessage.setText(LocalisationService.getString("chooseNewAlertCity", language));
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERTDELETE);
} else {
sendMessage.setReplyMarkup(getAlertsKeyboard(language));
- sendMessage.setText(LocalisationService.getInstance().getString("noAlertList", language));
+ sendMessage.setText(LocalisationService.getString("noAlertList", language));
}
sendMessage.setReplyToMessageId(message.getMessageId());
@@ -378,7 +379,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(message.getChatId());
sendMessage.setReplyMarkup(getRecentsKeyboard(message.getFrom().getId(), language, false));
- sendMessage.setText(LocalisationService.getInstance().getString("chooseNewAlertCity", language));
+ sendMessage.setText(LocalisationService.getString("chooseNewAlertCity", language));
sendMessage.setReplyToMessageId(message.getMessageId());
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERTNEW);
@@ -415,7 +416,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setChatId(message.getChatId());
sendMessage.setReplyMarkup(getAlertsKeyboard(language));
- sendMessage.setText(LocalisationService.getInstance().getString("alertsMenuMessage", language));
+ sendMessage.setText(LocalisationService.getString("alertsMenuMessage", language));
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), ALERT);
return sendMessage;
@@ -456,10 +457,10 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if (message.hasText()) {
if (message.getText().trim().equals(getCancelCommand(language))) {
sendMessageRequest = onBackUnitsCommand(message, language);
- } else if (message.getText().trim().equals(LocalisationService.getInstance().getString("metricSystem", language))) {
+ } else if (message.getText().trim().equals(LocalisationService.getString("metricSystem", language))) {
sendMessageRequest = onUnitsChosen(message.getFrom().getId(), message.getChatId(),
message.getMessageId(), WeatherService.METRICSYSTEM, language);
- } else if (message.getText().trim().equals(LocalisationService.getInstance().getString("imperialSystem", language))) {
+ } else if (message.getText().trim().equals(LocalisationService.getString("imperialSystem", language))) {
sendMessageRequest = onUnitsChosen(message.getFrom().getId(), message.getChatId(),
message.getMessageId(), WeatherService.IMPERIALSYSTEM, language);
} else {
@@ -488,7 +489,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessageRequest.enableMarkdown(true);
sendMessageRequest.setChatId(chatId.toString());
sendMessageRequest.setReplyMarkup(getUnitsKeyboard(language));
- sendMessageRequest.setText(LocalisationService.getInstance().getString("errorUnitsNotFound", language));
+ sendMessageRequest.setText(LocalisationService.getString("errorUnitsNotFound", language));
sendMessageRequest.setReplyToMessageId(messageId);
return sendMessageRequest;
@@ -500,7 +501,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.enableMarkdown(true);
sendMessageRequest.setChatId(chatId.toString());
- sendMessageRequest.setText(LocalisationService.getInstance().getString("unitsUpdated", language));
+ sendMessageRequest.setText(LocalisationService.getString("unitsUpdated", language));
sendMessageRequest.setReplyToMessageId(messageId);
sendMessageRequest.setReplyMarkup(getMainMenuKeyboard(language));
@@ -517,7 +518,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if (message.hasText()) {
if (message.getText().trim().equals(getCancelCommand(language))) {
sendMessageRequest = onBackLanguageCommand(message, language);
- } else if (LocalisationService.getInstance().getSupportedLanguages().values().contains(message.getText().trim())) {
+ } else if (LocalisationService.getLanguageByName(message.getText().trim()) != null) {
sendMessageRequest = onLanguageChosen(message.getFrom().getId(), message.getChatId(),
message.getMessageId(), message.getText().trim());
} else {
@@ -546,20 +547,20 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessageRequest.enableMarkdown(true);
sendMessageRequest.setChatId(chatId.toString());
sendMessageRequest.setReplyMarkup(getLanguagesKeyboard(language));
- sendMessageRequest.setText(LocalisationService.getInstance().getString("errorLanguageNotFound", language));
+ sendMessageRequest.setText(LocalisationService.getString("errorLanguageNotFound", language));
sendMessageRequest.setReplyToMessageId(messageId);
return sendMessageRequest;
}
private static SendMessage onLanguageChosen(Integer userId, Long chatId, Integer messageId, String language) {
- String languageCode = LocalisationService.getInstance().getLanguageCodeByName(language);
+ String languageCode = LocalisationService.getLanguageCodeByName(language);
DatabaseManager.getInstance().putUserWeatherLanguageOption(userId, languageCode);
SendMessage sendMessageRequest = new SendMessage();
sendMessageRequest.enableMarkdown(true);
sendMessageRequest.setChatId(chatId.toString());
- sendMessageRequest.setText(LocalisationService.getInstance().getString("languageUpdated", languageCode));
+ sendMessageRequest.setText(LocalisationService.getString("languageUpdated", languageCode));
sendMessageRequest.setReplyToMessageId(messageId);
sendMessageRequest.setReplyMarkup(getMainMenuKeyboard(languageCode));
@@ -640,7 +641,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(chatId.toString());
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(forceReplyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("onWeatherLocationCommand", language));
+ sendMessage.setText(LocalisationService.getString("onWeatherLocationCommand", language));
DatabaseManager.getInstance().insertWeatherState(userId, chatId, FORECASTLOCATIONWEATHER);
return sendMessage;
@@ -654,7 +655,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(chatId.toString());
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(forceReplyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("onWeatherNewCommand", language));
+ sendMessage.setText(LocalisationService.getString("onWeatherNewCommand", language));
DatabaseManager.getInstance().insertWeatherState(userId, chatId, FORECASTNEWWEATHER);
return sendMessage;
@@ -741,7 +742,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(chatId.toString());
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(forceReplyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("onWeatherLocationCommand", language));
+ sendMessage.setText(LocalisationService.getString("onWeatherLocationCommand", language));
DatabaseManager.getInstance().insertWeatherState(userId, chatId, CURRENTLOCATIONWEATHER);
return sendMessage;
@@ -755,7 +756,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(chatId.toString());
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(forceReplyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("onWeatherNewCommand", language));
+ sendMessage.setText(LocalisationService.getString("onWeatherNewCommand", language));
DatabaseManager.getInstance().insertWeatherState(userId, chatId, CURRENTNEWWEATHER);
return sendMessage;
@@ -819,9 +820,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setChatId(message.getChatId());
if (replyKeyboardMarkup.getKeyboard().size() > 3) {
- sendMessage.setText(LocalisationService.getInstance().getString("onForecastCommandFromHistory", language));
+ sendMessage.setText(LocalisationService.getString("onForecastCommandFromHistory", language));
} else {
- sendMessage.setText(LocalisationService.getInstance().getString("onForecastCommandWithoutHistory", language));
+ sendMessage.setText(LocalisationService.getString("onForecastCommandWithoutHistory", language));
}
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), FORECASTWEATHER);
@@ -837,9 +838,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setChatId(message.getChatId());
if (replyKeyboardMarkup.getKeyboard().size() > 3) {
- sendMessage.setText(LocalisationService.getInstance().getString("onCurrentCommandFromHistory", language));
+ sendMessage.setText(LocalisationService.getString("onCurrentCommandFromHistory", language));
} else {
- sendMessage.setText(LocalisationService.getInstance().getString("onCurrentCommandWithoutHistory", language));
+ sendMessage.setText(LocalisationService.getString("onCurrentCommandWithoutHistory", language));
}
DatabaseManager.getInstance().insertWeatherState(message.getFrom().getId(), message.getChatId(), CURRENTWEATHER);
@@ -851,31 +852,31 @@ public class WeatherHandlers extends TelegramLongPollingBot {
// region Get Messages
private static String getSettingsMessage(String language) {
- String baseString = LocalisationService.getInstance().getString("onSettingsCommand", language);
+ String baseString = LocalisationService.getString("onSettingsCommand", language);
return String.format(baseString, Emoji.GLOBE_WITH_MERIDIANS.toString(),
Emoji.STRAIGHT_RULER.toString(), Emoji.ALARM_CLOCK.toString(),
Emoji.BACK_WITH_LEFTWARDS_ARROW_ABOVE.toString());
}
private static String getHelpMessage(String language) {
- String baseString = LocalisationService.getInstance().getString("helpWeatherMessage", language);
+ String baseString = LocalisationService.getString("helpWeatherMessage", language);
return String.format(baseString, Emoji.BLACK_RIGHT_POINTING_TRIANGLE.toString(),
Emoji.BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE.toString(), Emoji.ALARM_CLOCK.toString(),
Emoji.EARTH_GLOBE_EUROPE_AFRICA.toString(), Emoji.STRAIGHT_RULER.toString());
}
private static String getLanguageMessage(String language) {
- String baseString = LocalisationService.getInstance().getString("selectLanguage", language);
+ String baseString = LocalisationService.getString("selectLanguage", language);
return String.format(baseString, language);
}
private static String getUnitsMessage(Integer userId, String language) {
- String baseString = LocalisationService.getInstance().getString("selectUnits", language);
+ String baseString = LocalisationService.getString("selectUnits", language);
return String.format(baseString, DatabaseManager.getInstance().getUserWeatherOptions(userId)[1]);
}
private static String getChooseNewAlertSetMessage(String city, String language) {
- String baseString = LocalisationService.getInstance().getString("newAlertSaved", language);
+ String baseString = LocalisationService.getString("newAlertSaved", language);
return String.format(baseString, Emoji.THUMBS_UP_SIGN.toString(), city);
}
@@ -884,15 +885,15 @@ public class WeatherHandlers extends TelegramLongPollingBot {
List alertCities = DatabaseManager.getInstance().getAlertCitiesNameByUser(userId);
if (alertCities.size() > 0) {
- String baseAlertListString = LocalisationService.getInstance().getString("initialAlertList", language);
- String partialAlertListString = LocalisationService.getInstance().getString("partialAlertList", language);
+ String baseAlertListString = LocalisationService.getString("initialAlertList", language);
+ String partialAlertListString = LocalisationService.getString("partialAlertList", language);
String fullListOfAlerts = "";
for (String alertCity : alertCities) {
fullListOfAlerts += String.format(partialAlertListString, Emoji.ALARM_CLOCK.toString(), alertCity);
}
alertListMessage = String.format(baseAlertListString, alertCities.size(), fullListOfAlerts);
} else {
- alertListMessage = LocalisationService.getInstance().getString("noAlertList", language);
+ alertListMessage = LocalisationService.getString("noAlertList", language);
}
return alertListMessage;
@@ -907,7 +908,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(false);
+ replyKeyboardMarkup.setOneTimeKeyboard(false);
List keyboard = new ArrayList<>();
KeyboardRow keyboardFirstRow = new KeyboardRow();
@@ -927,10 +928,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(false);
+ replyKeyboardMarkup.setOneTimeKeyboard(false);
List keyboard = new ArrayList<>();
- for (String languageName : LocalisationService.getInstance().getSupportedLanguages().values()) {
+ for (String languageName : LocalisationService.getSupportedLanguages().stream().map(
+ LocalisationService.Language::getName).collect(Collectors.toList())) {
KeyboardRow row = new KeyboardRow();
row.add(languageName);
keyboard.add(row);
@@ -948,14 +950,14 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(false);
+ replyKeyboardMarkup.setOneTimeKeyboard(false);
List keyboard = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
- row.add(LocalisationService.getInstance().getString("metricSystem", language));
+ row.add(LocalisationService.getString("metricSystem", language));
keyboard.add(row);
row = new KeyboardRow();
- row.add(LocalisationService.getInstance().getString("imperialSystem", language));
+ row.add(LocalisationService.getString("imperialSystem", language));
keyboard.add(row);
row = new KeyboardRow();
row.add(getCancelCommand(language));
@@ -969,7 +971,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(false);
+ replyKeyboardMarkup.setOneTimeKeyboard(false);
List keyboard = new ArrayList<>();
KeyboardRow keyboardFirstRow = new KeyboardRow();
@@ -993,7 +995,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
List keyboard = new ArrayList<>();
for (String recentWeather : DatabaseManager.getInstance().getRecentWeather(userId)) {
@@ -1025,7 +1027,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
List keyboard = new ArrayList<>();
@@ -1052,7 +1054,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboad(true);
+ replyKeyboardMarkup.setOneTimeKeyboard(true);
List keyboard = new ArrayList<>();
for (String alertCityName: alertCitiesNames) {
@@ -1081,67 +1083,67 @@ public class WeatherHandlers extends TelegramLongPollingBot {
// region getCommnads
private static String getRateCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("rateMe", language),
+ return String.format(LocalisationService.getString("rateMe", language),
Emoji.HUNDRED_POINTS_SYMBOL.toString());
}
private static String getListCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("showList", language),
+ return String.format(LocalisationService.getString("showList", language),
Emoji.CLIPBOARD.toString());
}
private static String getDeleteCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("delete", language),
+ return String.format(LocalisationService.getString("delete", language),
Emoji.HEAVY_MINUS_SIGN.toString());
}
private static String getLanguagesCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("languages", language),
+ return String.format(LocalisationService.getString("languages", language),
Emoji.GLOBE_WITH_MERIDIANS.toString());
}
private static String getUnitsCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("units", language),
+ return String.format(LocalisationService.getString("units", language),
Emoji.STRAIGHT_RULER.toString());
}
private static String getAlertsCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("alerts", language),
+ return String.format(LocalisationService.getString("alerts", language),
Emoji.ALARM_CLOCK.toString());
}
private static String getBackCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("back", language),
+ return String.format(LocalisationService.getString("back", language),
Emoji.BACK_WITH_LEFTWARDS_ARROW_ABOVE.toString());
}
private static String getNewCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("new", language),
+ return String.format(LocalisationService.getString("new", language),
Emoji.HEAVY_PLUS_SIGN.toString());
}
private static String getLocationCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("location", language),
+ return String.format(LocalisationService.getString("location", language),
Emoji.ROUND_PUSHPIN.toString());
}
private static String getSettingsCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("settings", language),
+ return String.format(LocalisationService.getString("settings", language),
Emoji.WRENCH.toString());
}
private static String getCurrentCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("current", language),
+ return String.format(LocalisationService.getString("current", language),
Emoji.BLACK_RIGHT_POINTING_TRIANGLE.toString());
}
private static String getForecastCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("forecast", language),
+ return String.format(LocalisationService.getString("forecast", language),
Emoji.BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE.toString());
}
private static String getCancelCommand(String language) {
- return String.format(LocalisationService.getInstance().getString("cancel", language),
+ return String.format(LocalisationService.getString("cancel", language),
Emoji.CROSS_MARK.toString());
}
// endregion getCommnads
@@ -1161,7 +1163,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage.setChatId(chatId.toString());
sendMessage.setReplyToMessageId(messageId);
sendMessage.setReplyMarkup(replyKeyboard);
- sendMessage.setText(LocalisationService.getInstance().getString("chooseOption", language));
+ sendMessage.setText(LocalisationService.getString("chooseOption", language));
return sendMessage;
}
@@ -1186,7 +1188,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if (replyKeyboardMarkup != null) {
sendMessage.setReplyMarkup(replyKeyboardMarkup);
}
- sendMessage.setText(LocalisationService.getInstance().getString("rateMeMessage", language));
+ sendMessage.setText(LocalisationService.getString("rateMeMessage", language));
return sendMessage;
}
diff --git a/src/main/resources/localisation/strings.properties b/src/main/resources/strings.properties
similarity index 100%
rename from src/main/resources/localisation/strings.properties
rename to src/main/resources/strings.properties
diff --git a/src/main/resources/localisation/strings_eo.properties b/src/main/resources/strings_eo.properties
similarity index 100%
rename from src/main/resources/localisation/strings_eo.properties
rename to src/main/resources/strings_eo.properties
diff --git a/src/main/resources/localisation/strings_es.properties b/src/main/resources/strings_es.properties
similarity index 100%
rename from src/main/resources/localisation/strings_es.properties
rename to src/main/resources/strings_es.properties
diff --git a/src/main/resources/localisation/strings_it.properties b/src/main/resources/strings_it.properties
similarity index 100%
rename from src/main/resources/localisation/strings_it.properties
rename to src/main/resources/strings_it.properties
diff --git a/src/main/resources/localisation/strings_nl.properties b/src/main/resources/strings_nl.properties
similarity index 100%
rename from src/main/resources/localisation/strings_nl.properties
rename to src/main/resources/strings_nl.properties
diff --git a/src/main/resources/localisation/strings_pt.properties b/src/main/resources/strings_pt.properties
similarity index 100%
rename from src/main/resources/localisation/strings_pt.properties
rename to src/main/resources/strings_pt.properties