summaryrefslogtreecommitdiff
path: root/src/main/java/files/Bot.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/files/Bot.java')
-rw-r--r--src/main/java/files/Bot.java161
1 files changed, 69 insertions, 92 deletions
diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java
index 0a7975c..a533ebd 100644
--- a/src/main/java/files/Bot.java
+++ b/src/main/java/files/Bot.java
@@ -4,15 +4,8 @@ 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.model.User;
-import com.pengrad.telegrambot.model.request.InlineKeyboardButton;
-import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
-import com.pengrad.telegrambot.model.request.Keyboard;
-import com.pengrad.telegrambot.model.request.ReplyKeyboardMarkup;
-import com.pengrad.telegrambot.request.DeleteMessage;
import com.pengrad.telegrambot.request.SendMessage;
import com.pengrad.telegrambot.request.SendPhoto;
-import com.pengrad.telegrambot.response.BaseResponse;
import java.io.FileInputStream;
import java.io.IOException;
@@ -29,120 +22,104 @@ public class Bot {
telegramBot.setUpdatesListener(updates -> {
updates.forEach(update -> {
- if (update.callbackQuery() != null) {
- CallbackQuery callbackQuery = update.callbackQuery();
- String data = callbackQuery.data();
- User user = callbackQuery.from();
- int messageId = callbackQuery.message().messageId();
- long chatId = callbackQuery.message().chat().id();
-
- if (data.equals("previousRecentlyAddedAnime")) {
- if (Anime.getIndexOfAnime() == 0) {
- Anime.setIndexOfAnime((byte) 19);
- } else {
- Anime.decreaseIndexOfAnime();
- }
- Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
- }
- if (data.equals("nextRecentlyAddedAnime")) {
- if (Anime.getIndexOfAnime() == 19) {
- Anime.setIndexOfAnime((byte) 0);
- } else {
- Anime.increaseIndexOfAnime();
- }
- Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
- }
-
- if (data.equals("previousRecentlyReleasedAnime")) {
- if (Anime.getIndexOfAnime() == 0) {
- Anime.setIndexOfAnime((byte) 19);
- } else {
- Anime.decreaseIndexOfAnime();
- }
- Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
- }
- if (data.equals("nextRecentlyReleasedAnime")) {
- if (Anime.getIndexOfAnime() == 19) {
- Anime.setIndexOfAnime((byte) 0);
- } else {
- Anime.increaseIndexOfAnime();
- }
- Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());
- }
-
- DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId);
- BaseResponse response = telegramBot.execute(deleteMessage);
+ if (UserCallbackQuery.checkIfNotNull(update.callbackQuery())) {
+ UserCallbackQuery.setInformation(update.callbackQuery());
+ UserCallbackQuery.execute(telegramBot);
+ } else if (update.message() != null && update.message().text().equals("Поиск аниме")) {
+ Anime.setIndexOfAnime((byte) 0);
+ Anime.setIsSearchingAnAnime(true);
+ telegramBot.execute(new SendMessage(update.message().chat().id(), "Введи название аниме, которое хочешь найти..."));
} else if (update.message() != null && update.message().text().equals("Недавно добавленные аниме")) {
Anime.setIndexOfAnime((byte) 0);
- Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
} else if (update.message() != null && update.message().text().equals("Новинки аниме")) {
Anime.setIndexOfAnime((byte) 0);
- Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
} else if (update.message() != null && update.message().text().equals("/start")) {
// DataBase.saveUser(update);
- telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(getMainKeyboard()));
+ Anime.setIsSearchingAnAnime(false);
+ telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(MyKeyboard.getMain()));
} else if (update.message() != null) {
- telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(getMainKeyboard()));
+ if (Anime.getIsSearchingAnAnime()) {
+ Anime.setSearchedAnime(update.message().text());
+ Anime.setIsSearchingAnAnime(false);
+ try {
+ Bot.showSearchedAnime(telegramBot, update, Anime.getIndexOfAnime(), Anime.getSearchedAnime());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(MyKeyboard.getMain()));
+ }
}
});
return UpdatesListener.CONFIRMED_UPDATES_ALL;
});
}
- public static Keyboard getMainKeyboard() {
- return new ReplyKeyboardMarkup(
- new String[]{"Поиск аниме"},
- new String[]{"Недавно добавленные аниме"},
- new String[]{"Новинки аниме"},
- new String[]{"Случайное аниме"})
- .oneTimeKeyboard(true)
- .resizeKeyboard(true)
- .selective(true);
- }
-
- public static Keyboard getCarouselKeyboard(String typeOfAnime) {
- return new InlineKeyboardMarkup(
- new InlineKeyboardButton("<").callbackData("previous" + typeOfAnime),
- new InlineKeyboardButton(">").callbackData("next" + typeOfAnime));
- }
-
- public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) {
- Anime[] anime = new Anime[20];
+ private static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) throws IOException {
+ Anime[] anime = new Anime[Parser.getAnimeAtSearchSize(url)];
try {
- anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.createdAt&direction=desc");
+ anime = Parser.getAnimeAtMainMenu(url);
} catch (IOException e) {
e.printStackTrace();
}
- telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime")));
+ Anime.setList(anime);
+ telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime)));
}
- public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
- Anime[] anime = new Anime[20];
- try {
- anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.createdAt&direction=desc");
- } catch (IOException e) {
- e.printStackTrace();
+ private static void showAnimeAtMainMenuCallBackQuery(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 {
+ if (Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime) > 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();
+ }
+ 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);
}
- telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime")));
}
- public static void showRecentlyReleasedAnime(TelegramBot telegramBot, Update update, byte index) {
+ public static void showSearchedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String searchedAnime) {
Anime[] anime = new Anime[20];
try {
- anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc");
+ anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime);
} catch (IOException e) {
e.printStackTrace();
}
- telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime")));
+ telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));
+ }
+
+ public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) throws IOException {
+ showAnimeAtMainMenu(telegramBot, update, index, "https://animego.org/anime?sort=a.createdAt&direction=desc", "RecentlyAddedAnime");
+ }
+
+ public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
+ showAnimeAtMainMenuCallBackQuery(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 showRecentlyReleasedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) {
- Anime[] anime = new Anime[20];
- try {
- anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc");
- } catch (IOException e) {
- e.printStackTrace();
- }
- telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime")));
+ showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList());
}
}