package com.mavlushechka.animarfo.telegram.user.callbackquery; import com.mavlushechka.animarfo.anime.Anime; import com.mavlushechka.animarfo.telegram.bot.Bot; import com.mavlushechka.animarfo.telegram.user.keyboard.UserKeyboard; import com.mavlushechka.animarfo.telegram.user.message.UserMessage; import com.pengrad.telegrambot.model.CallbackQuery; import com.pengrad.telegrambot.model.User; import com.pengrad.telegrambot.model.request.Keyboard; import com.pengrad.telegrambot.model.request.ParseMode; import com.pengrad.telegrambot.request.DeleteMessage; import com.pengrad.telegrambot.request.SendMessage; import com.pengrad.telegrambot.request.SendPhoto; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; public class UsersCallbackQuery { public static CallbackQuery callbackQuery; public static String data; public static User user; public static long userId; public static int messageId; public static long chatId; private static final Logger LOGGER = Logger.getLogger(UsersCallbackQuery.class.getName()); static { LOGGER.setLevel(Level.ALL); } public static void setInformation(CallbackQuery _callbackQuery) { callbackQuery = _callbackQuery; data = _callbackQuery.data(); user = _callbackQuery.from(); userId = _callbackQuery.from().id(); messageId = _callbackQuery.message().messageId(); chatId = _callbackQuery.message().chat().id(); } public static void execute(CallbackQuery callbackQuery) throws IOException { UsersCallbackQuery.setInformation(callbackQuery); switch (data) { case "previous" -> { if (Anime.index == 0) { Anime.setIndex((byte) (Anime.size-1)); } else { Anime.decreaseIndexOfAnime(); } Bot.sendAnimeByCallBackQuery(); } case "next" -> { if (Anime.index == Anime.size-1) { Anime.setIndex((byte) 0); } else { Anime.increaseIndexOfAnime(); } Bot.sendAnimeByCallBackQuery(); } case "watchOrDownload" -> { Anime[] anime = Anime.list; byte index = Anime.index; Keyboard anidub = UserKeyboard.getAnidub(); if (UserKeyboard.seriesSize > 0) { Bot.TELEGRAM_BOT.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(anidub)); } else { Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "Прости, но я не смог найти серии для этого аниме... :(")); } } case "anidub" -> { Anime.dub = "Anidub"; String url = null; if (Anime.type != null) { switch (Anime.type) { case "Ongoing" -> url = "https://online.anidub.com/anime/anime_ongoing/"; case "Serials" -> url = "https://online.anidub.com/anime/full/"; case "Films" -> url = "https://online.anidub.com/anime_movie/"; } } Anime.setIndex((byte) 0); if (!Anime.isSearching) { Bot.sendAnime(url); } else { Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "Введи название аниме")); } Anime.type = null; } } Bot.TELEGRAM_BOT.execute(new DeleteMessage(chatId, messageId)); LOGGER.fine("CallbackQuery is executed"); } }