getting ready to refactor the handlers structure
This commit is contained in:
parent
45a1df4cbb
commit
ea29fa79f0
4 changed files with 45 additions and 10 deletions
|
|
@ -7,13 +7,23 @@ namespace BotConstants {
|
||||||
const std::string FIND_ANIME = "Найти аниме";
|
const std::string FIND_ANIME = "Найти аниме";
|
||||||
const std::string MY_TITLES = "Мои тайтлы";
|
const std::string MY_TITLES = "Мои тайтлы";
|
||||||
const std::string PREV = "<<Назад";
|
const std::string PREV = "<<Назад";
|
||||||
const std::string NEXT = "Следующий>>";
|
const std::string NEXT = "Дальше>>";
|
||||||
}
|
}
|
||||||
namespace Callback {
|
namespace Callback {
|
||||||
const std::string FIND_ANIME = "action:find_anime";
|
const std::string ACTION = "action:";
|
||||||
const std::string MY_TITLES = "navigation:my_titles";
|
const std::string FIND_ANIME = ACTION + "find_anime";
|
||||||
const std::string LIST_PREV = "";
|
const std::string ADD_REVIEW = ACTION + "add_review";
|
||||||
const std::string LIST_NEXT = "";
|
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 CHOICE = "choice:";
|
||||||
}
|
}
|
||||||
namespace Text {
|
namespace Text {
|
||||||
const std::string MAIN_MENU = "Вас приветствует nyanimedb бот:)\nЧего будем делать?";
|
const std::string MAIN_MENU = "Вас приветствует nyanimedb бот:)\nЧего будем делать?";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <structs.hpp>
|
#include <structs.hpp>
|
||||||
|
|
||||||
|
/// @brief Структура возвращаемого значения класса BotHandlers для изменения текущего сообщения
|
||||||
struct HandlerResult {
|
struct HandlerResult {
|
||||||
std::string message;
|
std::string message;
|
||||||
TgBot::InlineKeyboardMarkup::Ptr keyboard;
|
TgBot::InlineKeyboardMarkup::Ptr keyboard;
|
||||||
|
|
@ -9,5 +10,15 @@ struct HandlerResult {
|
||||||
|
|
||||||
class BotHandlers {
|
class BotHandlers {
|
||||||
public:
|
public:
|
||||||
static HandlerResult MyTitles(int64_t userId);
|
void handleCallback(const TgBot::CallbackQuery::Ptr query);
|
||||||
|
|
||||||
|
private:
|
||||||
|
TgBot::Api botApi;
|
||||||
|
|
||||||
|
void handleNavigation(const TgBot::CallbackQuery::Ptr query);
|
||||||
|
|
||||||
|
/// @brief Получить очередную страницу тайтлов из списка пользователя
|
||||||
|
/// @param userId Идентификатор пользователя
|
||||||
|
/// @return HandlerResult
|
||||||
|
static HandlerResult returnMyTitles(int64_t userId);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,11 @@ void AnimeBot::setupHandlers() {
|
||||||
sendMainMenu(message->chat->id);
|
sendMainMenu(message->chat->id);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto [text, kb] = BotHandlers::MyTitles(321);
|
auto [text, kb] = BotHandlers::returnMyTitles(321);
|
||||||
|
|
||||||
bot.getEvents().onCallbackQuery([text, kb, this](TgBot::CallbackQuery::Ptr query) {
|
auto cp_api = bot.getApi();
|
||||||
bot.getApi().editMessageText(
|
bot.getEvents().onCallbackQuery([text, kb, cp_api](TgBot::CallbackQuery::Ptr query) {
|
||||||
|
cp_api.editMessageText(
|
||||||
text,
|
text,
|
||||||
query->message->chat->id,
|
query->message->chat->id,
|
||||||
query->message->messageId,
|
query->message->messageId,
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,18 @@
|
||||||
#include "handlers.hpp"
|
#include "handlers.hpp"
|
||||||
#include "KeyboardFactory.hpp"
|
#include "KeyboardFactory.hpp"
|
||||||
#include "structs.hpp"
|
#include "structs.hpp"
|
||||||
|
#include "constants.hpp"
|
||||||
|
|
||||||
|
void BotHandlers::handleCallback(const TgBot::CallbackQuery::Ptr query) {
|
||||||
|
std::string data = query -> data;
|
||||||
|
|
||||||
|
if (data.starts_with(BotConstants::Callback::NAVIGATION)) {
|
||||||
|
handleNavigation(query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// В угоду потокобезопасности создаем новый экземпляр TgBot::Api
|
/// В угоду потокобезопасности создаем новый экземпляр TgBot::Api
|
||||||
HandlerResult BotHandlers::MyTitles(int64_t userId) {
|
HandlerResult BotHandlers::returnMyTitles(int64_t userId) {
|
||||||
// Здесь должен происходить запрос на сервер
|
// Здесь должен происходить запрос на сервер
|
||||||
std::vector<Title> titles = {{123, "Школа мертвяков", "", 1}, {321, "KissXsis", "", 2}};
|
std::vector<Title> titles = {{123, "Школа мертвяков", "", 1}, {321, "KissXsis", "", 2}};
|
||||||
|
|
||||||
|
|
@ -13,3 +22,7 @@ HandlerResult BotHandlers::MyTitles(int64_t userId) {
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BotHandlers::handleNavigation(const TgBot::CallbackQuery::Ptr query) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue