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"
|
||||||
"Дата: {} {}\n",
|
"Дата: {} {}\n",
|
||||||
caseNumber, caseUrl, item.status, item.date, item.time);
|
caseNumber, caseUrl, item.status, item.date, item.time);
|
||||||
banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"},
|
banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"});
|
||||||
[](const auto&) {});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bot::getUpdates()
|
void Bot::getUpdates()
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ private:
|
||||||
|
|
||||||
LocalStorage& storage_;
|
LocalStorage& storage_;
|
||||||
bool& terminationFlag_;
|
bool& terminationFlag_;
|
||||||
banana::agent::beast_callback agent_;
|
banana::agent::beast_async_monadic agent_;
|
||||||
std::int64_t updatesOffset_ = 0;
|
std::int64_t updatesOffset_ = 0;
|
||||||
std::map<banana::integer_t, BotSession> sessions_;
|
std::map<banana::integer_t, BotSession> sessions_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
#include <banana/api.hpp>
|
#include <banana/api.hpp>
|
||||||
#include <fmt/core.h>
|
#include <fmt/core.h>
|
||||||
|
|
||||||
BotSession::BotSession(banana::agent::beast_callback& agent,
|
BotSession::BotSession(banana::agent::beast_async_monadic& agent,
|
||||||
banana::integer_t userId,
|
banana::integer_t userId,
|
||||||
LocalStorage& storage)
|
LocalStorage& storage)
|
||||||
: agent_(agent), userId_(userId), storage_(storage)
|
: agent_(agent), userId_(userId), storage_(storage)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,9 @@ class Dialog;
|
||||||
class BotSession final
|
class BotSession final
|
||||||
{
|
{
|
||||||
public:
|
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();
|
~BotSession();
|
||||||
|
|
||||||
void processMessage(const banana::api::message_t& message);
|
void processMessage(const banana::api::message_t& message);
|
||||||
|
|
@ -30,7 +32,7 @@ private:
|
||||||
void processStartCommand();
|
void processStartCommand();
|
||||||
void processStopCommand();
|
void processStopCommand();
|
||||||
|
|
||||||
banana::agent::beast_callback& agent_;
|
banana::agent::beast_async_monadic& agent_;
|
||||||
banana::integer_t userId_;
|
banana::integer_t userId_;
|
||||||
LocalStorage& storage_;
|
LocalStorage& storage_;
|
||||||
std::unique_ptr<Dialog> activeDialog_;
|
std::unique_ptr<Dialog> activeDialog_;
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ namespace statechart = boost::statechart;
|
||||||
template <class MostDerived, class InitialState>
|
template <class MostDerived, class InitialState>
|
||||||
struct StateMachine : public statechart::state_machine<MostDerived, 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)
|
: agent(agent), userId(userId)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
banana::agent::beast_callback& agent;
|
banana::agent::beast_async_monadic& agent;
|
||||||
banana::integer_t userId;
|
banana::integer_t userId;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,9 @@ struct SubscriptionConfirmed : statechart::event<SubscriptionConfirmed> { };
|
||||||
|
|
||||||
struct SubscribeCaseStateMachine : StateMachine<SubscribeCaseStateMachine, WaitingForInput>
|
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)
|
: StateMachine(agent, userId), storage(storage)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -52,7 +54,7 @@ struct WaitingForInput : State<WaitingForInput, SubscribeCaseStateMachine>
|
||||||
auto& machine = context<SubscribeCaseStateMachine>();
|
auto& machine = context<SubscribeCaseStateMachine>();
|
||||||
std::string text = "Введите номер дела...";
|
std::string text = "Введите номер дела...";
|
||||||
banana::api::send_message(machine.agent,
|
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)
|
statechart::result react(const NewMessageEvent& event)
|
||||||
|
|
@ -70,8 +72,8 @@ struct WaitingForInput : State<WaitingForInput, SubscribeCaseStateMachine>
|
||||||
std::string text =
|
std::string text =
|
||||||
"Некорректный формат номера дела!\n"
|
"Некорректный формат номера дела!\n"
|
||||||
"Попробуйте еще раз.";
|
"Попробуйте еще раз.";
|
||||||
banana::api::send_message(
|
banana::api::send_message(machine.agent,
|
||||||
machine.agent, {.chat_id = machine.userId, .text = std::move(text)}, [](auto) {});
|
{.chat_id = machine.userId, .text = std::move(text)});
|
||||||
return discard_event();
|
return discard_event();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -108,8 +110,7 @@ struct GettingCaseDetails : State<GettingCaseDetails, SubscribeCaseStateMachine>
|
||||||
|
|
||||||
banana::api::send_message(
|
banana::api::send_message(
|
||||||
machine.agent,
|
machine.agent,
|
||||||
{.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard},
|
{.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard});
|
||||||
[](auto) {});
|
|
||||||
|
|
||||||
post_event(CaseDetailsFetched());
|
post_event(CaseDetailsFetched());
|
||||||
}
|
}
|
||||||
|
|
@ -139,14 +140,8 @@ struct WaitingForConfirmation : State<WaitingForConfirmation, SubscribeCaseState
|
||||||
{
|
{
|
||||||
if (event.query.message)
|
if (event.query.message)
|
||||||
banana::api::edit_message_reply_markup(
|
banana::api::edit_message_reply_markup(
|
||||||
machine.agent,
|
machine.agent, {.chat_id = event.query.message->chat.id,
|
||||||
{.chat_id = event.query.message->chat.id,
|
.message_id = event.query.message->message_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());
|
|
||||||
});
|
|
||||||
|
|
||||||
if (*event.query.data == "yes")
|
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,
|
banana::integer_t userId,
|
||||||
LocalStorage& storage)
|
LocalStorage& storage)
|
||||||
: Dialog(userId, "SubscribeCase"),
|
: Dialog(userId, "SubscribeCase"),
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ struct SubscribeCaseStateMachine;
|
||||||
class SubscribeCaseDialog : public Dialog
|
class SubscribeCaseDialog : public Dialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SubscribeCaseDialog(banana::agent::beast_callback& agent,
|
SubscribeCaseDialog(banana::agent::beast_async_monadic& agent,
|
||||||
banana::integer_t userId,
|
banana::integer_t userId,
|
||||||
LocalStorage& storage);
|
LocalStorage& storage);
|
||||||
~SubscribeCaseDialog() override;
|
~SubscribeCaseDialog() override;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue