Forming the BotHandlers class structure

This commit is contained in:
Kirill 2025-11-27 16:24:29 +03:00
parent ea29fa79f0
commit cdc1aa2e6b
6 changed files with 92 additions and 46 deletions

View file

@ -11,21 +11,22 @@ namespace BotConstants {
}
namespace Callback {
const std::string ACTION = "action:";
const std::string FIND_ANIME = ACTION + "find_anime";
const std::string ADD_REVIEW = ACTION + "add_review";
const std::string ADD_STATUS = ACTION + "add_status";
const std::string STATUS = "status:";
const std::string WATCHING = STATUS + "watching";
const std::string SEEN = STATUS + "seen";
const std::string WANT = STATUS + "want";
const std::string THROWN = STATUS + "thrown";
const std::string FIND_ANIME = ACTION + "find_anime";
const std::string ADD_REVIEW = ACTION + "add_review";
const std::string ADD_STATUS = ACTION + "add_status";
const std::string STATUS = "status:";
const std::string WATCHING = STATUS + "watching";
const std::string SEEN = STATUS + "seen";
const std::string WANT = STATUS + "want";
const std::string THROWN = STATUS + "thrown";
const std::string NAVIGATION = "navigation:";
const std::string MY_TITLES = NAVIGATION + "my_titles";
const std::string LIST_PREV = NAVIGATION + "prev";
const std::string LIST_NEXT = NAVIGATION + "next";
const std::string MY_TITLES = NAVIGATION + "my_titles";
const std::string LIST_PREV = NAVIGATION + "prev";
const std::string LIST_NEXT = NAVIGATION + "next";
const std::string CHOICE = "choice:";
}
namespace Text {
const std::string MAIN_MENU = "Вас приветствует nyanimedb бот:)\nЧего будем делать?";
const std::string SAD_ERROR = "У нас что-то случилось:(\nМы обязательно скоро исправимся";
}
}

View file

@ -5,11 +5,12 @@
#include <string>
#include <tgbot/tgbot.h>
#include "handlers.hpp"
class AnimeBot {
private:
std::string token;
TgBot::Bot bot;
BotHandlers handler;
public:
/// Init Bot

View file

@ -1,3 +1,4 @@
#pragma once
#include <tgbot/tgbot.h>
#include <string>
#include <structs.hpp>
@ -9,13 +10,28 @@ struct HandlerResult {
};
class BotHandlers {
public:
void handleCallback(const TgBot::CallbackQuery::Ptr query);
public:
BotHandlers(TgBot::Api api) : botApi(api) {;}
/// @brief Обработка callback'ов из кнопок интерфейса
/// @param query запрос callback
void handleCallback(TgBot::CallbackQuery::Ptr query);
/// @brief Обработка сообщений боту
/// @details
/// Функция для обработки сообщений, которые юзер отправляет
/// боту. Необходима для обработки ревью и названий искомого
/// аниме. Внутри себя проверяет текущий state пользователя
/// в боте.
/// @param message обрабатываемое сообщение
void handleMessage(TgBot::Message::Ptr message);
private:
TgBot::Api botApi;
void handleNavigation(const TgBot::CallbackQuery::Ptr query);
void handleNavigation(TgBot::CallbackQuery::Ptr query);
void processCallbackImpl(TgBot::CallbackQuery::Ptr query);
/// @brief Получить очередную страницу тайтлов из списка пользователя
/// @param userId Идентификатор пользователя