summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlonerkinboev/animarfo/Bot.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlonerkinboev/animarfo/Bot.java')
-rw-r--r--src/main/java/com/mavlonerkinboev/animarfo/Bot.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/main/java/com/mavlonerkinboev/animarfo/Bot.java b/src/main/java/com/mavlonerkinboev/animarfo/Bot.java
new file mode 100644
index 0000000..aa5eab4
--- /dev/null
+++ b/src/main/java/com/mavlonerkinboev/animarfo/Bot.java
@@ -0,0 +1,103 @@
+package com.mavlonerkinboev.animarfo;
+
+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.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Properties;
+
+// TODO: 7/25/21 Добавить Аниме OVA, аниме по жанру, Дорамы, случайное аниме
+
+public class Bot {
+ public final static Properties PROPERTIES = loadProperties(new File("app.properties"));
+ public final static TelegramBot TELEGRAM_BOT = new TelegramBot(PROPERTIES.getProperty("BOT_TOKEN"));
+ public static TelegramUser telegramUser = new TelegramUser();
+
+ public static void main(String[] args) {
+ 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 Properties loadProperties(File file) {
+ Properties properties = new Properties();
+ try (FileInputStream fis = new FileInputStream(file)) {
+ properties.load(fis);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return properties;
+ }
+
+ 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;
+ }
+ }
+}