summaryrefslogtreecommitdiff
path: root/src/main/java/files
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/files')
-rw-r--r--src/main/java/files/Anime.java25
-rw-r--r--src/main/java/files/Bot.java59
2 files changed, 70 insertions, 14 deletions
diff --git a/src/main/java/files/Anime.java b/src/main/java/files/Anime.java
index 92aa954..6fd72b8 100644
--- a/src/main/java/files/Anime.java
+++ b/src/main/java/files/Anime.java
@@ -6,6 +6,7 @@ public class Anime {
private final String[] genres;
private final String year;
private final String image;
+ private static byte indexOfRecentlyAddedAnime = 0;
public Anime(String name, String description, String[] genres, String year, String image) {
this.name = name;
@@ -15,13 +16,29 @@ public class Anime {
this.image = image;
}
- public String getImage() {
- return image;
- }
-
public String showInfo() {
return "Имя: " + this.name + System.lineSeparator() +
"Описание: " + this.description + System.lineSeparator() +
"Год: " + this.year + System.lineSeparator();
}
+
+ public String getImage() {
+ return image;
+ }
+
+ public static byte getIndexOfRecentlyAddedAnime() {
+ return indexOfRecentlyAddedAnime;
+ }
+
+ public static void setIndexOfRecentlyAddedAnime(byte number) {
+ indexOfRecentlyAddedAnime = number;
+ }
+
+ public static void decreaseIndexOfRecentlyAddedAnime() {
+ indexOfRecentlyAddedAnime--;
+ }
+
+ public static void increaseIndexOfRecentlyAddedAnime() {
+ indexOfRecentlyAddedAnime++;
+ }
}
diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java
index fb39ebc..59190df 100644
--- a/src/main/java/files/Bot.java
+++ b/src/main/java/files/Bot.java
@@ -2,20 +2,20 @@ package files;
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 files.entity.TelegramUser;
+import com.pengrad.telegrambot.response.BaseResponse;
-import javax.persistence.EntityManager;
import java.io.FileInputStream;
import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import java.util.Properties;
public class Bot {
@@ -29,8 +29,36 @@ public class Bot {
telegramBot.setUpdatesListener(updates -> {
updates.forEach(update -> {
+ byte indexOfRecentlyAddedAnime = Anime.getIndexOfRecentlyAddedAnime();
+
+ if (update.callbackQuery() != null && update.message() != null) {
+ CallbackQuery callbackQuery = update.callbackQuery();
+ String data = callbackQuery.data();
+ User user = callbackQuery.from();
+ int messageId = callbackQuery.message().messageId();
+ long chatId = callbackQuery.message().chat().id();
+
+ System.out.println(callbackQuery.toString());
+
+ if (data.equals("previous")) {
+ Anime.decreaseIndexOfRecentlyAddedAnime();
+ if (indexOfRecentlyAddedAnime == -1) Anime.setIndexOfRecentlyAddedAnime((byte) 19);
+ Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfRecentlyAddedAnime());
+ }
+ if (data.equals("next")) {
+ Anime.increaseIndexOfRecentlyAddedAnime();
+ if (indexOfRecentlyAddedAnime == 20) Anime.setIndexOfRecentlyAddedAnime((byte) 0);
+ Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfRecentlyAddedAnime());
+ }
+
+ DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId);
+ BaseResponse response = telegramBot.execute(deleteMessage);
+ }
DataBase.saveUser(update);
- Bot.showRecentlyAddedAnime(telegramBot, update, (byte) 5);
+
+ indexOfRecentlyAddedAnime = 0;
+ Anime.setIndexOfRecentlyAddedAnime((byte) 0);
+ Bot.showRecentlyAddedAnime(telegramBot, update, (byte) indexOfRecentlyAddedAnime);
});
return UpdatesListener.CONFIRMED_UPDATES_ALL;
});
@@ -39,6 +67,7 @@ public class Bot {
public static Keyboard getMainKeyboard() {
return new ReplyKeyboardMarkup(
new String[]{"Поиск аниме"},
+ new String[]{"Недавно добавленные аниме"},
new String[]{"Случайное аниме"})
.oneTimeKeyboard(true)
.resizeKeyboard(true)
@@ -47,17 +76,27 @@ public class Bot {
public static Keyboard getCarouselKeyboard() {
return new InlineKeyboardMarkup(
- new InlineKeyboardButton("<-").callbackData("callback_data"),
- new InlineKeyboardButton("->").callbackData("callback_data"));
+ new InlineKeyboardButton("<-").callbackData("previous"),
+ new InlineKeyboardButton("->").callbackData("next"));
+ }
+
+ public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, 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();
+ }
+ telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard()));
}
- public static void showRecentlyAddedAnime(TelegramBot bot, Update update, byte index) {
- Anime[] anime = new Anime[0];
+ 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();
}
- bot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard()));
+ telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard()));
}
}