From 775171c4b0f0cfd99595a856183e078ae0d30684 Mon Sep 17 00:00:00 2001 From: mavlonerkinboev Date: Sat, 24 Jul 2021 00:27:36 +0500 Subject: fourteenth commit --- src/main/java/files/Bot.java | 161 +++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 92 deletions(-) (limited to 'src/main/java/files/Bot.java') diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java index 0a7975c..a533ebd 100644 --- a/src/main/java/files/Bot.java +++ b/src/main/java/files/Bot.java @@ -4,15 +4,8 @@ import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.UpdatesListener; import com.pengrad.telegrambot.model.CallbackQuery; import com.pengrad.telegrambot.model.Update; -import com.pengrad.telegrambot.model.User; -import com.pengrad.telegrambot.model.request.InlineKeyboardButton; -import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup; -import com.pengrad.telegrambot.model.request.Keyboard; -import com.pengrad.telegrambot.model.request.ReplyKeyboardMarkup; -import com.pengrad.telegrambot.request.DeleteMessage; import com.pengrad.telegrambot.request.SendMessage; import com.pengrad.telegrambot.request.SendPhoto; -import com.pengrad.telegrambot.response.BaseResponse; import java.io.FileInputStream; import java.io.IOException; @@ -29,120 +22,104 @@ public class Bot { telegramBot.setUpdatesListener(updates -> { updates.forEach(update -> { - if (update.callbackQuery() != null) { - CallbackQuery callbackQuery = update.callbackQuery(); - String data = callbackQuery.data(); - User user = callbackQuery.from(); - int messageId = callbackQuery.message().messageId(); - long chatId = callbackQuery.message().chat().id(); - - if (data.equals("previousRecentlyAddedAnime")) { - if (Anime.getIndexOfAnime() == 0) { - Anime.setIndexOfAnime((byte) 19); - } else { - Anime.decreaseIndexOfAnime(); - } - Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); - } - if (data.equals("nextRecentlyAddedAnime")) { - if (Anime.getIndexOfAnime() == 19) { - Anime.setIndexOfAnime((byte) 0); - } else { - Anime.increaseIndexOfAnime(); - } - Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); - } - - if (data.equals("previousRecentlyReleasedAnime")) { - if (Anime.getIndexOfAnime() == 0) { - Anime.setIndexOfAnime((byte) 19); - } else { - Anime.decreaseIndexOfAnime(); - } - Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); - } - if (data.equals("nextRecentlyReleasedAnime")) { - if (Anime.getIndexOfAnime() == 19) { - Anime.setIndexOfAnime((byte) 0); - } else { - Anime.increaseIndexOfAnime(); - } - Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); - } - - DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId); - BaseResponse response = telegramBot.execute(deleteMessage); + 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); - Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime()); + 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); - Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime()); + 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); - telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(getMainKeyboard())); + 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) { - telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(getMainKeyboard())); + 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())); + } } }); return UpdatesListener.CONFIRMED_UPDATES_ALL; }); } - public static Keyboard getMainKeyboard() { - return new ReplyKeyboardMarkup( - new String[]{"Поиск аниме"}, - new String[]{"Недавно добавленные аниме"}, - new String[]{"Новинки аниме"}, - new String[]{"Случайное аниме"}) - .oneTimeKeyboard(true) - .resizeKeyboard(true) - .selective(true); - } - - public static Keyboard getCarouselKeyboard(String typeOfAnime) { - return new InlineKeyboardMarkup( - new InlineKeyboardButton("<").callbackData("previous" + typeOfAnime), - new InlineKeyboardButton(">").callbackData("next" + typeOfAnime)); - } - - public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) { - Anime[] anime = new Anime[20]; + private 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("https://animego.org/anime?sort=a.createdAt&direction=desc"); + anime = Parser.getAnimeAtMainMenu(url); } catch (IOException e) { e.printStackTrace(); } - telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime"))); + Anime.setList(anime); + telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime))); } - public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { - Anime[] anime = new Anime[20]; - try { - anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.createdAt&direction=desc"); - } catch (IOException e) { - e.printStackTrace(); + private static void showAnimeAtMainMenuCallBackQuery(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) { + 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(); + } + 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Давай поищем другое аниме!")); + Anime.setIsSearchingAnAnime(true); } - telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime"))); } - public static void showRecentlyReleasedAnime(TelegramBot telegramBot, Update update, byte index) { + public static void showSearchedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String searchedAnime) { Anime[] anime = new Anime[20]; try { - anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc"); + anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime); } catch (IOException e) { e.printStackTrace(); } - telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime"))); + telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[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 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) { - Anime[] anime = new Anime[20]; - try { - anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc"); - } catch (IOException e) { - e.printStackTrace(); - } - telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime"))); + showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList()); } } -- cgit v1.2.3