package com.mavlonerkinboev.animarfo.telegram.user.callbackquery; import com.mavlonerkinboev.animarfo.anime.Anime; import com.mavlonerkinboev.animarfo.Bot; import com.mavlonerkinboev.animarfo.telegram.user.keyboard.UserKeyboard; import com.mavlonerkinboev.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; public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQuery { public static CallbackQuery callbackQuery; public static String data; public static User user; public static long userId; public static int messageId; public static long chatId; 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 { UserCallbackQuery.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; } } DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId); Bot.TELEGRAM_BOT.execute(deleteMessage); } }