mirror of
https://github.com/UltraCoderRU/court_monitor.git
synced 2026-01-28 02:15:12 +00:00
Обновлен banana.
This commit is contained in:
parent
c9a587f1b7
commit
ae73c267d4
8 changed files with 21 additions and 25 deletions
2
external/banana
vendored
2
external/banana
vendored
|
|
@ -1 +1 @@
|
|||
Subproject commit 787d34ea6f616d3a37a09c7262c07d0ff1f0bef4
|
||||
Subproject commit e8cf5d31b6bb338ad6166abe5077c174901182da
|
||||
|
|
@ -51,8 +51,7 @@ void Bot::notifyUser(UserId userId,
|
|||
"{}\n"
|
||||
"Дата: {} {}\n",
|
||||
caseNumber, caseUrl, item.status, item.date, item.time);
|
||||
banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"},
|
||||
[](const auto&) {});
|
||||
banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"});
|
||||
}
|
||||
|
||||
void Bot::getUpdates()
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ private:
|
|||
|
||||
LocalStorage& storage_;
|
||||
bool& terminationFlag_;
|
||||
banana::agent::beast_callback agent_;
|
||||
banana::agent::beast_async_monadic agent_;
|
||||
std::int64_t updatesOffset_ = 0;
|
||||
std::map<banana::integer_t, BotSession> sessions_;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include <banana/api.hpp>
|
||||
#include <fmt/core.h>
|
||||
|
||||
BotSession::BotSession(banana::agent::beast_callback& agent,
|
||||
BotSession::BotSession(banana::agent::beast_async_monadic& agent,
|
||||
banana::integer_t userId,
|
||||
LocalStorage& storage)
|
||||
: agent_(agent), userId_(userId), storage_(storage)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ class Dialog;
|
|||
class BotSession final
|
||||
{
|
||||
public:
|
||||
BotSession(banana::agent::beast_callback& agent, banana::integer_t userId, LocalStorage& storage);
|
||||
BotSession(banana::agent::beast_async_monadic& agent,
|
||||
banana::integer_t userId,
|
||||
LocalStorage& storage);
|
||||
~BotSession();
|
||||
|
||||
void processMessage(const banana::api::message_t& message);
|
||||
|
|
@ -30,7 +32,7 @@ private:
|
|||
void processStartCommand();
|
||||
void processStopCommand();
|
||||
|
||||
banana::agent::beast_callback& agent_;
|
||||
banana::agent::beast_async_monadic& agent_;
|
||||
banana::integer_t userId_;
|
||||
LocalStorage& storage_;
|
||||
std::unique_ptr<Dialog> activeDialog_;
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ namespace statechart = boost::statechart;
|
|||
template <class MostDerived, class InitialState>
|
||||
struct StateMachine : public statechart::state_machine<MostDerived, InitialState>
|
||||
{
|
||||
explicit StateMachine(banana::agent::beast_callback& agent, banana::integer_t userId)
|
||||
explicit StateMachine(banana::agent::beast_async_monadic& agent, banana::integer_t userId)
|
||||
: agent(agent), userId(userId)
|
||||
{
|
||||
}
|
||||
|
||||
banana::agent::beast_callback& agent;
|
||||
banana::agent::beast_async_monadic& agent;
|
||||
banana::integer_t userId;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@ struct SubscriptionConfirmed : statechart::event<SubscriptionConfirmed> { };
|
|||
|
||||
struct SubscribeCaseStateMachine : StateMachine<SubscribeCaseStateMachine, WaitingForInput>
|
||||
{
|
||||
SubscribeCaseStateMachine(banana::agent::beast_callback& agent, long userId, LocalStorage& storage)
|
||||
SubscribeCaseStateMachine(banana::agent::beast_async_monadic& agent,
|
||||
long userId,
|
||||
LocalStorage& storage)
|
||||
: StateMachine(agent, userId), storage(storage)
|
||||
{
|
||||
}
|
||||
|
|
@ -52,7 +54,7 @@ struct WaitingForInput : State<WaitingForInput, SubscribeCaseStateMachine>
|
|||
auto& machine = context<SubscribeCaseStateMachine>();
|
||||
std::string text = "Введите номер дела...";
|
||||
banana::api::send_message(machine.agent,
|
||||
{.chat_id = machine.userId, .text = std::move(text)}, [](auto) {});
|
||||
{.chat_id = machine.userId, .text = std::move(text)});
|
||||
}
|
||||
|
||||
statechart::result react(const NewMessageEvent& event)
|
||||
|
|
@ -70,8 +72,8 @@ struct WaitingForInput : State<WaitingForInput, SubscribeCaseStateMachine>
|
|||
std::string text =
|
||||
"Некорректный формат номера дела!\n"
|
||||
"Попробуйте еще раз.";
|
||||
banana::api::send_message(
|
||||
machine.agent, {.chat_id = machine.userId, .text = std::move(text)}, [](auto) {});
|
||||
banana::api::send_message(machine.agent,
|
||||
{.chat_id = machine.userId, .text = std::move(text)});
|
||||
return discard_event();
|
||||
}
|
||||
}
|
||||
|
|
@ -108,8 +110,7 @@ struct GettingCaseDetails : State<GettingCaseDetails, SubscribeCaseStateMachine>
|
|||
|
||||
banana::api::send_message(
|
||||
machine.agent,
|
||||
{.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard},
|
||||
[](auto) {});
|
||||
{.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard});
|
||||
|
||||
post_event(CaseDetailsFetched());
|
||||
}
|
||||
|
|
@ -139,14 +140,8 @@ struct WaitingForConfirmation : State<WaitingForConfirmation, SubscribeCaseState
|
|||
{
|
||||
if (event.query.message)
|
||||
banana::api::edit_message_reply_markup(
|
||||
machine.agent,
|
||||
{.chat_id = event.query.message->chat.id,
|
||||
.message_id = event.query.message->message_id},
|
||||
[](banana::expected<banana::variant_t<banana::api::message_t, banana::boolean_t>> result)
|
||||
{
|
||||
if (!result)
|
||||
LOGE(dialog, result.error());
|
||||
});
|
||||
machine.agent, {.chat_id = event.query.message->chat.id,
|
||||
.message_id = event.query.message->message_id});
|
||||
|
||||
if (*event.query.data == "yes")
|
||||
{
|
||||
|
|
@ -174,7 +169,7 @@ struct Subscribed : State<Subscribed, SubscribeCaseStateMachine, true>
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
SubscribeCaseDialog::SubscribeCaseDialog(banana::agent::beast_callback& agent,
|
||||
SubscribeCaseDialog::SubscribeCaseDialog(banana::agent::beast_async_monadic& agent,
|
||||
banana::integer_t userId,
|
||||
LocalStorage& storage)
|
||||
: Dialog(userId, "SubscribeCase"),
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ struct SubscribeCaseStateMachine;
|
|||
class SubscribeCaseDialog : public Dialog
|
||||
{
|
||||
public:
|
||||
SubscribeCaseDialog(banana::agent::beast_callback& agent,
|
||||
SubscribeCaseDialog(banana::agent::beast_async_monadic& agent,
|
||||
banana::integer_t userId,
|
||||
LocalStorage& storage);
|
||||
~SubscribeCaseDialog() override;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue