summaryrefslogtreecommitdiff
path: root/src/main/java/files
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/files')
-rw-r--r--src/main/java/files/Anime.java13
-rw-r--r--src/main/java/files/Bot.java69
-rw-r--r--src/main/java/files/Parser.java4
-rw-r--r--src/main/java/files/UserCallbackQuery.java32
-rw-r--r--src/main/java/files/UserMessage.java70
-rw-r--r--src/main/java/files/entity/TelegramUser.java10
6 files changed, 115 insertions, 83 deletions
diff --git a/src/main/java/files/Anime.java b/src/main/java/files/Anime.java
index 9dae88b..4a8e79f 100644
--- a/src/main/java/files/Anime.java
+++ b/src/main/java/files/Anime.java
@@ -10,6 +10,7 @@ public class Anime {
private static Anime[] list;
private static byte indexOfAnime = 0;
private static String searchedAnime;
+ private static byte searchedAnimeSize;
private static boolean isSearchingAnAnime;
public Anime(String name, String description, String[] genres, String year, String image, String url) {
@@ -23,8 +24,8 @@ public class Anime {
public String showInfo() {
return "Имя: " + this.name + System.lineSeparator() +
- "Описание: " + this.description + System.lineSeparator() +
- "Год: " + this.year + System.lineSeparator();
+ "Год: " + this.year + System.lineSeparator() +
+ "Описание: " + this.description + System.lineSeparator();
}
public String getImage() {
@@ -67,6 +68,14 @@ public class Anime {
Anime.isSearchingAnAnime = isSearchingAnAnime;
}
+ public static void setSearchedAnimeSize(byte searchedAnimeSize) {
+ Anime.searchedAnimeSize = searchedAnimeSize;
+ }
+
+ public static byte getSearchedAnimeSize() {
+ return Anime.searchedAnimeSize;
+ }
+
public static Anime[] getList() {
return list;
}
diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java
index a533ebd..55eff9b 100644
--- a/src/main/java/files/Bot.java
+++ b/src/main/java/files/Bot.java
@@ -20,54 +20,22 @@ public class Bot {
// Creating telegram bot
TelegramBot telegramBot = new TelegramBot(properties.getProperty("TELEGRAM_TOKEN"));
+ // Setting updates listener
telegramBot.setUpdatesListener(updates -> {
updates.forEach(update -> {
if (UserCallbackQuery.checkIfNotNull(update.callbackQuery())) {
UserCallbackQuery.setInformation(update.callbackQuery());
UserCallbackQuery.execute(telegramBot);
- } else if (update.message() != null && update.message().text().equals("Поиск аниме")) {
- Anime.setIndexOfAnime((byte) 0);
- Anime.setIsSearchingAnAnime(true);
- telegramBot.execute(new SendMessage(update.message().chat().id(), "Введи название аниме, которое хочешь найти..."));
- } else if (update.message() != null && update.message().text().equals("Недавно добавленные аниме")) {
- Anime.setIndexOfAnime((byte) 0);
- Anime.setIsSearchingAnAnime(false);
- try {
- Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime());
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else if (update.message() != null && update.message().text().equals("Новинки аниме")) {
- Anime.setIndexOfAnime((byte) 0);
- Anime.setIsSearchingAnAnime(false);
- try {
- Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime());
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else if (update.message() != null && update.message().text().equals("/start")) {
-// DataBase.saveUser(update);
- Anime.setIsSearchingAnAnime(false);
- telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(MyKeyboard.getMain()));
- } else if (update.message() != null) {
- if (Anime.getIsSearchingAnAnime()) {
- Anime.setSearchedAnime(update.message().text());
- Anime.setIsSearchingAnAnime(false);
- try {
- Bot.showSearchedAnime(telegramBot, update, Anime.getIndexOfAnime(), Anime.getSearchedAnime());
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else {
- telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(MyKeyboard.getMain()));
- }
+ } else if (UserMessage.checkIfNotNull(update.message())) {
+ UserMessage.setInformation(update.message());
+ UserMessage.execute(telegramBot, update);
}
});
return UpdatesListener.CONFIRMED_UPDATES_ALL;
});
}
- private static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) throws IOException {
+ public static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) throws IOException {
Anime[] anime = new Anime[Parser.getAnimeAtSearchSize(url)];
try {
anime = Parser.getAnimeAtMainMenu(url);
@@ -78,18 +46,21 @@ public class Bot {
telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime)));
}
- private static void showAnimeAtMainMenuCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String typeOfAnime, Anime[] list) {
+ public static void showAnimeAtMainMenuByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String typeOfAnime, Anime[] list) {
telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), list[index].getImage()).caption(list[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime)));
- }
+ }
public static void showSearchedAnime(TelegramBot telegramBot, Update update, byte index, String searchedAnime) throws IOException {
- if (Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime) > 0) {
+ byte animeAtSearchSize = Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime);
+ if (animeAtSearchSize > 0) {
Anime[] anime = new Anime[Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime)];
try {
anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime);
} catch (IOException e) {
e.printStackTrace();
}
+ Anime.setSearchedAnimeSize(animeAtSearchSize);
+ Anime.setList(anime);
telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));
} else {
telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я не смог найти аниме с таким названием...\nДавай поищем другое аниме!"));
@@ -97,29 +68,23 @@ public class Bot {
}
}
- public static void showSearchedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String searchedAnime) {
- Anime[] anime = new Anime[20];
- try {
- anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime);
- } catch (IOException e) {
- e.printStackTrace();
- }
- telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));
+ public static void showSearchedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, Anime[] list) {
+ telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), list[index].getImage()).caption(list[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));
}
public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) throws IOException {
showAnimeAtMainMenu(telegramBot, update, index, "https://animego.org/anime?sort=a.createdAt&direction=desc", "RecentlyAddedAnime");
}
- public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
- showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyAddedAnime", Anime.getList());
+ public static void showRecentlyAddedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
+ showAnimeAtMainMenuByCallBackQuery(telegramBot, callbackQuery, index,"RecentlyAddedAnime", Anime.getList());
}
public static void showRecentlyReleasedAnime(TelegramBot telegramBot, Update update, byte index) throws IOException {
showAnimeAtMainMenu(telegramBot, update, index, "https://animego.org/anime?sort=a.startDate&direction=desc", "RecentlyReleasedAnime");
}
- public static void showRecentlyReleasedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
- showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList());
+ public static void showRecentlyReleasedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
+ showAnimeAtMainMenuByCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList());
}
}
diff --git a/src/main/java/files/Parser.java b/src/main/java/files/Parser.java
index 09dceea..4d7f863 100644
--- a/src/main/java/files/Parser.java
+++ b/src/main/java/files/Parser.java
@@ -10,7 +10,6 @@ import java.net.URL;
import java.util.ArrayList;
public class Parser {
-
public static Document getPage(String url) throws IOException {
return Jsoup.parse(new URL(url), 3000);
}
@@ -134,5 +133,4 @@ public class Parser {
byte countOfAnime = (byte) namesTemp.size();
return countOfAnime;
}
-
- } \ No newline at end of file
+} \ No newline at end of file
diff --git a/src/main/java/files/UserCallbackQuery.java b/src/main/java/files/UserCallbackQuery.java
index 92f2391..7a297a8 100644
--- a/src/main/java/files/UserCallbackQuery.java
+++ b/src/main/java/files/UserCallbackQuery.java
@@ -5,8 +5,6 @@ import com.pengrad.telegrambot.model.CallbackQuery;
import com.pengrad.telegrambot.model.User;
import com.pengrad.telegrambot.request.DeleteMessage;
-import java.io.IOException;
-
public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQuery {
private static CallbackQuery callbackQuery;
private static String data;
@@ -33,7 +31,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue
} else {
Anime.decreaseIndexOfAnime();
}
- Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
+ Bot.showRecentlyAddedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
}
if (data.equals("nextRecentlyAddedAnime")) {
if (Anime.getIndexOfAnime() == 19) {
@@ -41,7 +39,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue
} else {
Anime.increaseIndexOfAnime();
}
- Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
+ Bot.showRecentlyAddedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
}
if (data.equals("previousRecentlyReleasedAnime")) {
@@ -50,7 +48,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue
} else {
Anime.decreaseIndexOfAnime();
}
- Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
+ Bot.showRecentlyReleasedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
}
if (data.equals("nextRecentlyReleasedAnime")) {
if (Anime.getIndexOfAnime() == 19) {
@@ -58,32 +56,24 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue
} else {
Anime.increaseIndexOfAnime();
}
- Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
+ Bot.showRecentlyReleasedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
}
if (data.equals("previousSearchedAnime")) {
if (Anime.getIndexOfAnime() == 0) {
- try {
- Anime.setIndexOfAnime((byte) ((Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + Anime.getSearchedAnime())) - 1));
- } catch (IOException e) {
- e.printStackTrace();
- }
+ Anime.setIndexOfAnime((byte) (Anime.getSearchedAnimeSize() - 1));
} else {
Anime.decreaseIndexOfAnime();
}
- Bot.showSearchedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getSearchedAnime());
+ Bot.showSearchedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getList());
}
if (data.equals("nextSearchedAnime")) {
- try {
- if (Anime.getIndexOfAnime() == Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + Anime.getSearchedAnime()) - 1) {
- Anime.setIndexOfAnime((byte) 0);
- } else {
- Anime.increaseIndexOfAnime();
- }
- } catch (IOException e) {
- e.printStackTrace();
+ if (Anime.getIndexOfAnime() == Anime.getSearchedAnimeSize() - 1) {
+ Anime.setIndexOfAnime((byte) 0);
+ } else {
+ Anime.increaseIndexOfAnime();
}
- Bot.showSearchedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getSearchedAnime());
+ Bot.showSearchedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getList());
}
DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId);
diff --git a/src/main/java/files/UserMessage.java b/src/main/java/files/UserMessage.java
new file mode 100644
index 0000000..14addf1
--- /dev/null
+++ b/src/main/java/files/UserMessage.java
@@ -0,0 +1,70 @@
+package files;
+
+import com.pengrad.telegrambot.TelegramBot;
+import com.pengrad.telegrambot.model.Message;
+import com.pengrad.telegrambot.model.Update;
+import com.pengrad.telegrambot.request.SendMessage;
+
+import java.io.IOException;
+
+public class UserMessage {
+ public static Message message;
+ public static String text;
+ public static long chatId;
+
+ public static void setInformation(Message message) {
+ UserMessage.message = message;
+ UserMessage.text = message.text();
+ UserMessage.chatId = message.chat().id();
+ }
+
+ public static boolean checkIfNotNull(Message message) {
+ return (message != null);
+ }
+
+ public static void execute(TelegramBot telegramBot, Update update) {
+ switch (UserMessage.text) {
+ case "Поиск аниме":
+ Anime.setIndexOfAnime((byte) 0);
+ Anime.setIsSearchingAnAnime(true);
+ telegramBot.execute(new SendMessage(UserMessage.chatId, "Введи название аниме, которое хочешь найти..."));
+ break;
+ case "Недавно добавленные аниме":
+ Anime.setIndexOfAnime((byte) 0);
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ break;
+ case "Новинки аниме":
+ Anime.setIndexOfAnime((byte) 0);
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ break;
+ case "/start":
+// DataBase.saveUser(update);
+ Anime.setIsSearchingAnAnime(false);
+ telegramBot.execute(new SendMessage(UserMessage.chatId, ("Приветики, меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(MyKeyboard.getMain()));
+ break;
+ default:
+ if (Anime.getIsSearchingAnAnime()) {
+ Anime.setSearchedAnime(UserMessage.text);
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showSearchedAnime(telegramBot, update, Anime.getIndexOfAnime(), Anime.getSearchedAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ telegramBot.execute(new SendMessage(UserMessage.chatId, "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(MyKeyboard.getMain()));
+ }
+ break;
+ }
+ }
+}
diff --git a/src/main/java/files/entity/TelegramUser.java b/src/main/java/files/entity/TelegramUser.java
index 5c0d6af..5564a64 100644
--- a/src/main/java/files/entity/TelegramUser.java
+++ b/src/main/java/files/entity/TelegramUser.java
@@ -17,11 +17,11 @@ public class TelegramUser {
public TelegramUser() {}
public TelegramUser(long id, String username, boolean isBot, String fullName, String date) {
- this.id = id;
- this.username = username;
- this.isBot = isBot;
- this.fullName = fullName;
- this.date = date;
+ TelegramUser.id = id;
+ TelegramUser.username = username;
+ TelegramUser.isBot = isBot;
+ TelegramUser.fullName = fullName;
+ TelegramUser.date = date;
}
public static String checkIfHasLastName(User user) {