diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/files/Anime.java | 13 | ||||
-rw-r--r-- | src/main/java/files/Bot.java | 69 | ||||
-rw-r--r-- | src/main/java/files/Parser.java | 4 | ||||
-rw-r--r-- | src/main/java/files/UserCallbackQuery.java | 32 | ||||
-rw-r--r-- | src/main/java/files/UserMessage.java | 70 | ||||
-rw-r--r-- | src/main/java/files/entity/TelegramUser.java | 10 |
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) { |