From eea88e5f236638862c94ce3e8cc958309a8a7d8b Mon Sep 17 00:00:00 2001 From: mavlonerkinboev Date: Thu, 26 Aug 2021 10:32:29 +0500 Subject: Change path --- .../mavlonerkinboev/animarfo/telegram/bot/Bot.java | 97 ---------------------- .../animarfo/telegram/user/TelegramUser.java | 69 --------------- .../user/callbackquery/UserCallbackQuery.java | 95 --------------------- .../telegram/user/keyboard/UserKeyboard.java | 88 -------------------- .../telegram/user/message/UserMessage.java | 74 ----------------- 5 files changed, 423 deletions(-) delete mode 100644 src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java delete mode 100644 src/main/java/com/mavlonerkinboev/animarfo/telegram/user/TelegramUser.java delete mode 100644 src/main/java/com/mavlonerkinboev/animarfo/telegram/user/callbackquery/UserCallbackQuery.java delete mode 100644 src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java delete mode 100644 src/main/java/com/mavlonerkinboev/animarfo/telegram/user/message/UserMessage.java (limited to 'src/main/java/com/mavlonerkinboev/animarfo/telegram') diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java deleted file mode 100644 index d173af6..0000000 --- a/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.mavlonerkinboev.animarfo.telegram.bot; - -import com.mavlonerkinboev.animarfo.App; -import com.mavlonerkinboev.animarfo.anime.Anime; -import com.mavlonerkinboev.animarfo.parser.Parser; -import com.mavlonerkinboev.animarfo.telegram.user.TelegramUser; -import com.mavlonerkinboev.animarfo.telegram.user.callbackquery.UserCallbackQuery; -import com.mavlonerkinboev.animarfo.telegram.user.keyboard.UserKeyboard; -import com.mavlonerkinboev.animarfo.telegram.user.message.UserMessage; -import com.pengrad.telegrambot.TelegramBot; -import com.pengrad.telegrambot.UpdatesListener; -import com.pengrad.telegrambot.model.User; -import com.pengrad.telegrambot.model.request.ParseMode; -import com.pengrad.telegrambot.request.SendMessage; -import com.pengrad.telegrambot.request.SendPhoto; - -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.logging.Level; -import java.util.logging.Logger; - -// TODO: 7/25/21 Добавить Аниме OVA, аниме по жанру, Дорамы, случайное аниме - -public class Bot { - public final static TelegramBot TELEGRAM_BOT = new TelegramBot(App.PROPERTIES.getProperty("BOT_TOKEN")); - public static TelegramUser telegramUser = new TelegramUser(); - private static final Logger LOGGER = Logger.getLogger(Bot.class.getName()); - static { - LOGGER.setLevel(Level.ALL); - } - - public static void start() { - LOGGER.fine("Bot is started"); - TELEGRAM_BOT.setUpdatesListener(updates -> { - updates.forEach(update -> { - if (update.callbackQuery() != null) { - try { - UserCallbackQuery.execute(update.callbackQuery()); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (update.message() != null) { - User user = update.message().from(); - SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss z"); - simpleDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT+5")); - String formattedDate = simpleDateFormat.format(new java.util.Date(update.message().date() * 1000L)); - telegramUser = new TelegramUser(user.id(), user.isBot(), user.firstName(), user.lastName(), user.username(), formattedDate); - try { - UserMessage.execute(update.message()); - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - return UpdatesListener.CONFIRMED_UPDATES_ALL; - }); - } - - public static void sendAnime(String url) { - Anime[] anime = new Anime[28]; - byte index = Anime.index; - try { - anime = Parser.getAnime(url); - } catch (IOException e) { - e.printStackTrace(); - } - Anime.setList(anime); - TELEGRAM_BOT.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel())); - } - - public static void sendAnimeByCallBackQuery() { - Anime[] anime = Anime.list; - byte index = Anime.index; - TELEGRAM_BOT.execute(new SendPhoto(UserCallbackQuery.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel())); - } - - public static void sendSearchedAnime() throws IOException { - String searchedAnime = Anime.searched; - byte index = Anime.index; - byte animeAtSearchSize = Parser.getSizeOfSearchedAnime("https://anime.anidub.life/?do=search&mode=advanced&subaction=search&titleonly=3&story=" + searchedAnime); - if (animeAtSearchSize > 0) { - Anime[] anime = new Anime[animeAtSearchSize]; - try { - anime = Parser.getAnime("https://anime.anidub.life/?do=search&mode=advanced&subaction=search&titleonly=3&story=" + searchedAnime); - } catch (IOException e) { - e.printStackTrace(); - } - Anime.size = animeAtSearchSize; - Anime.setList(anime); - TELEGRAM_BOT.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel())); - } else { - TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "Прости, но я не смог найти аниме с таким названием...\nДавай поищем другое аниме!")); - Anime.isSearching = true; - } - } -} diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/TelegramUser.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/TelegramUser.java deleted file mode 100644 index 0bc9e93..0000000 --- a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/TelegramUser.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.mavlonerkinboev.animarfo.telegram.user; - -public class TelegramUser { - private long id; - private Boolean isBot; - private String firstName; - private String lastName; - private String username; - private String date; - - public TelegramUser(long id, boolean isBot, String firstName, String lastName, String username, String date) { - this.id = id; - this.isBot = isBot; - this.firstName = firstName; - this.lastName = lastName; - this.username = username; - this.date = date; - } - - public TelegramUser() { } - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public Boolean getIsBot() { - return isBot; - } - - public void setIsBot(Boolean bot) { - isBot = bot; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } -} diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/callbackquery/UserCallbackQuery.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/callbackquery/UserCallbackQuery.java deleted file mode 100644 index 0589f50..0000000 --- a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/callbackquery/UserCallbackQuery.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.mavlonerkinboev.animarfo.telegram.user.callbackquery; - -import com.mavlonerkinboev.animarfo.anime.Anime; -import com.mavlonerkinboev.animarfo.telegram.bot.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; -import java.util.logging.Level; -import java.util.logging.Logger; - -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; - private static final Logger LOGGER = Logger.getLogger(UserCallbackQuery.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 { - 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); - LOGGER.fine("CallbackQuery is executed"); - } -} diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java deleted file mode 100644 index 8439814..0000000 --- a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.mavlonerkinboev.animarfo.telegram.user.keyboard; - -import com.mavlonerkinboev.animarfo.anime.Anime; -import com.mavlonerkinboev.animarfo.parser.Parser; -import com.pengrad.telegrambot.model.request.Keyboard; -import com.pengrad.telegrambot.model.request.InlineKeyboardButton; -import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup; -import com.pengrad.telegrambot.model.request.ReplyKeyboardMarkup; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; - -import java.io.IOException; -import java.util.ArrayList; - -public class UserKeyboard { - public static short seriesSize; - - public static Keyboard getMain() { - return new ReplyKeyboardMarkup( - new String[]{"Поиск", "Онгоинги"}, - new String[]{"Сериалы", "Фильмы"}, - new String[]{"Помощь", "Информация"}) - .oneTimeKeyboard(true) - .resizeKeyboard(true) - .selective(true); - } - - public static Keyboard getCarousel() { - InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup(); - - inlineKeyboardMarkup.addRow(new InlineKeyboardButton("Смотреть / Скачать").callbackData("watchOrDownload")); - inlineKeyboardMarkup.addRow(new InlineKeyboardButton("Пред.").callbackData("previous"), new InlineKeyboardButton("След.").callbackData("next")); - - return inlineKeyboardMarkup; - } - - public static Keyboard getDub() { - return new InlineKeyboardMarkup(new InlineKeyboardButton("Anidub").callbackData("anidub")); - } - - public static Keyboard getAnidub() throws IOException { - Anime[] anime = Anime.list; - Anime thisAnime = anime[Anime.index]; - - Elements seriesList = Parser.getPage(thisAnime.getUrl()).select("div[class=tabs-b video-box]").next().select("span"); - ArrayList series = new ArrayList<>(); - ArrayList seriesUrls = new ArrayList<>(); - - for (Element seriesTemp : seriesList) { - series.add(Jsoup.parse(String.valueOf(seriesTemp)).text()); - } - - for (Element seriesTemp : seriesList) { - String text = seriesTemp.toString(); - int start = text.indexOf("=\"") + 2; - int end = text.indexOf("\" "); - char[] dst = new char[end - start]; - text.getChars(start, end, dst, 0); - seriesUrls.add(String.valueOf(dst)); - } - - InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup(); - seriesSize = (short) series.size(); - for (int i = 0; i < seriesSize; i++) { - if (i+2 < seriesSize) { - inlineKeyboardMarkup.addRow( - new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i)), - new InlineKeyboardButton(series.get(i+1)).url(seriesUrls.get(i+1)), - new InlineKeyboardButton(series.get(i+2)).url(seriesUrls.get(i+2)) - ); - i += 2; - } else if (i+1 < seriesSize) { - inlineKeyboardMarkup.addRow( - new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i)), - new InlineKeyboardButton(series.get(i+1)).url(seriesUrls.get(i+1)) - ); - i++; - } else { - inlineKeyboardMarkup.addRow( - new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i)) - ); - } - } - - return inlineKeyboardMarkup; - } -} diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/message/UserMessage.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/message/UserMessage.java deleted file mode 100644 index 63766da..0000000 --- a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/message/UserMessage.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.mavlonerkinboev.animarfo.telegram.user.message; - -import com.mavlonerkinboev.animarfo.anime.Anime; -import com.mavlonerkinboev.animarfo.telegram.user.keyboard.UserKeyboard; -import com.mavlonerkinboev.animarfo.database.Database; -import com.mavlonerkinboev.animarfo.telegram.bot.Bot; -import com.pengrad.telegrambot.model.Message; -import com.pengrad.telegrambot.model.request.ParseMode; -import com.pengrad.telegrambot.request.SendMessage; - -import java.io.IOException; -import java.util.HashMap; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class UserMessage { - public static Message message; - public static String text; - public static long chatId; - private static final HashMap animeTypes = new HashMap<>(); - private static final Logger LOGGER = Logger.getLogger(UserMessage.class.getName()); - - static { - LOGGER.setLevel(Level.ALL); - } - - static { - animeTypes.put("Онгоинги", "Ongoing"); - animeTypes.put("Сериалы", "Serials"); - animeTypes.put("Фильмы", "Films"); - } - - public static void setInformation(Message message) { - UserMessage.message = message; - UserMessage.text = message.text(); - UserMessage.chatId = message.chat().id(); - } - - public static void execute(Message message) throws IOException { - UserMessage.setInformation(message); - - if (animeTypes.get(UserMessage.text) != null || UserMessage.text.equals("Поиск")) { - if (UserMessage.text.equals("Поиск")) { - Anime.isSearching = true; - } else { - Anime.isSearching = false; - Anime.type = animeTypes.get(UserMessage.text); - } - Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "В какой озвучке будем смотреть?").replyMarkup(UserKeyboard.getDub())); - } else if (UserMessage.text.equals("/start") || UserMessage.text.equals("Информация")) { - Anime.isSearching = false; - Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, ("Приветик, меня звать AniMarfo. Благодаря мне тебе не надо будет самому искать в интернете аниме-тайтлы и подходящую тебе озвучку или же субтитры. \n\nНа данный момент я умею искать аниме по названию, а также находить недавние онгоинги, сериалы и фильмы.\nДоступные озвучки: Anidub.\n\nВыбери одну из команд на твоей клавиатуре, для того чтобы начать увлекательное путешествие в мир аниме :3")).replyMarkup(UserKeyboard.getMain())); - } else if (UserMessage.text.equals("Помощь")) { - Anime.isSearching = false; - Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, ("Вопрос: Как скачать аниме с телефона?\nОтвет: Воспроизведи видео, удерживай палец на видео и после появления окна с действиями, нажми на кнопку \"Сохранить файл на устройстве\".\n\nВопрос: Как скачать аниме с компьютера?\nОтвет: Воспроизведи видео, нажми на правую кнопку мышки по видео и после появления окна с действиями, нажми левой кнопкой мышки на кнопку \"Сохранить Видео как...\", после чего тебе необходимо будет указать путь для загрузки.")).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getMain())); - } else { - if (Anime.isSearching && Anime.dub != null) { - Anime.setSearched(UserMessage.text); - try { - Bot.sendSearchedAnime(); - } catch (IOException e) { - e.printStackTrace(); - } - Anime.isSearching = false; - } else { - Anime.isSearching = false; - Bot.TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "Прости, но я тебя не понимаю, воспользуйся командами на твоей клавиатуре.").replyMarkup(UserKeyboard.getMain())); - } - } - LOGGER.fine("Message is executed"); - - Database.saveUser(Bot.telegramUser); - } -} -- cgit v1.2.3