package files; 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.request.SendMessage; import com.pengrad.telegrambot.request.SendPhoto; import com.pengrad.telegrambot.request.SendVideo; import com.pengrad.telegrambot.response.SendResponse; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; public class Bot { public static void main(String[] args) throws IOException { // Loading properties Properties properties = new Properties(); properties.load(new FileInputStream("app.properties")); // 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 (UserMessage.checkIfNotNull(update.message())) { UserMessage.setInformation(update.message()); UserMessage.execute(telegramBot, update); } }); return UpdatesListener.CONFIRMED_UPDATES_ALL; }); } public static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) { Anime[] anime = new Anime[28]; try { anime = Parser.getAnimeAtMainMenu(url); } catch (IOException e) { e.printStackTrace(); } Anime.setList(anime); telegramBot.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime))); } 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 { 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Давай поищем другое аниме!")); Anime.setIsSearchingAnAnime(true); } } 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://anime.anidub.life/anime/anime_ongoing/", "RecentlyAddedAnime"); } 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 showRecentlyReleasedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { showAnimeAtMainMenuByCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList()); } }