feat(tgbot): add title menu

This commit is contained in:
Kirill 2025-12-20 01:19:56 +03:00
parent f045eb22b2
commit da40d7df49
7 changed files with 244 additions and 11 deletions

View file

@ -3,6 +3,9 @@
#include <string>
#include <structs.hpp>
#include <unordered_map>
#include <string>
#include <stdexcept>
#include <cctype>
#include "BotToServer.hpp"
#include "BotUserContext.hpp"
@ -66,6 +69,19 @@ private:
/// @param response Параметры ответа: клавиатура и текст
void editMessage(int64_t chatId, int64_t messageId, HandlerResult response);
/// @brief Редактирует текущее сообщение в диалоге с пользователем
/// @details Меняет текст сообщения и клавиатуру на те, что передаются
/// в аргументе response, а также прикрепляет картинку
/// @param chatId id чата
/// @param messageId id меняемого сообщения
/// @param imageUrl ссылка на вставляемую картинку (должна быть доступна в публичной сети)
/// @param response Параметры ответа: клавиатура и текст
void editMessageWithPhoto(
int64_t chatId,
int64_t messageId,
const std::string& imageUrl,
HandlerResult response);
/// @brief Отрисовка текущего экрана (соотв. контексту)
/// @param ctx - текущий контекст
void renderCurrent(TgBot::CallbackQuery::Ptr query);
@ -87,4 +103,10 @@ private:
// Форматирование для отображения в сообщении
std::string formatTitlesList(const std::vector<BotStructs::Title>& titles);
// Форматирование сообщения на страничке с тайтлом
std::string formatTitle(const BotStructs::Title& title);
// Парсинг id тайтла из callback'а
int64_t parseId(const std::string& data);
};