From e23ccfb00c8fa39926b32e94be6bc379e70ba11d Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Thu, 3 Jul 2025 18:05:11 +0500 Subject: feat: separated requester from request --- bot/src/commands/request.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'bot/src/commands/request.cpp') diff --git a/bot/src/commands/request.cpp b/bot/src/commands/request.cpp index 434c222..e5a1e7e 100644 --- a/bot/src/commands/request.cpp +++ b/bot/src/commands/request.cpp @@ -27,16 +27,16 @@ namespace bot::command { o["message"] = sol::lua_nil; } - o["sender"] = this->user.as_lua_table(luaState); - o["channel"] = this->channel.as_lua_table(luaState); - o["channel_preference"] = this->channel_preferences.as_lua_table(luaState); - o["rights"] = this->user_rights.as_lua_table(luaState); + o["sender"] = requester.user.as_lua_table(luaState); + o["channel"] = requester.channel.as_lua_table(luaState); + o["channel_preference"] = + requester.channel_preferences.as_lua_table(luaState); + o["rights"] = requester.user_rights.as_lua_table(luaState); return o; } - std::optional generate_request( - const command::CommandLoader &command_loader, + std::optional get_requester( const irc::Message &irc_message, std::unique_ptr &conn) { // fetching channel @@ -146,12 +146,20 @@ namespace bot::command { user_right.set_level(level); } + return (Requester){channel, pref, user, user_right}; + } + + std::optional generate_request( + const command::CommandLoader &command_loader, + const irc::Message &irc_message, + const Requester &requester, std::unique_ptr &conn) { // --- FETCHING MESSAGES std::string fullmsg = irc_message.message; - const std::string &prefix = pref.get_prefix(); + const std::string &prefix = requester.channel_preferences.get_prefix(); if (fullmsg.empty() || fullmsg.substr(0, prefix.length()) != prefix || - std::any_of(pref.get_features().begin(), pref.get_features().end(), + std::any_of(requester.channel_preferences.get_features().begin(), + requester.channel_preferences.get_features().end(), [](const schemas::ChannelFeature &f) { return f == schemas::ChannelFeature::SILENT_MODE; })) { @@ -175,8 +183,7 @@ namespace bot::command { parts.erase(parts.begin()); - Request req{command_id, std::nullopt, std::nullopt, irc_message, - channel, pref, user, user_right}; + Request req{command_id, std::nullopt, std::nullopt, irc_message, requester}; if (parts.empty()) { return req; -- cgit v1.2.3