Skip to content

Commit

Permalink
coro
Browse files Browse the repository at this point in the history
  • Loading branch information
braindigitalis committed Jul 5, 2024
1 parent 319ddcf commit 4f77a85
Show file tree
Hide file tree
Showing 12 changed files with 126 additions and 119 deletions.
8 changes: 4 additions & 4 deletions include/ssod/botlist.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ struct botlist {
*
* @param bot reference to D++ cluster
*/
static void post(dpp::cluster& bot);
static dpp::task<void> post(dpp::cluster& bot);

protected:
/**
Expand All @@ -73,13 +73,13 @@ struct botlist {
* @param count_field count field in postdata
* @param shards_field shards field in postdata
*/
static void run(dpp::cluster& bot, const std::string_view key, const std::string_view url, const std::string_view count_field, const std::string_view shards_field);
static dpp::task<void> run(dpp::cluster& bot, const std::string_view key, const std::string_view url, const std::string_view count_field, const std::string_view shards_field);
};

/**
* @brief Represents the botlist::post() function
*/
using botlist_router = auto (*)(dpp::cluster&) -> void;
using botlist_router = auto (*)(dpp::cluster&) -> dpp::task<void>;

/**
* @brief Represents a list of registered botlists stored in an unordered_map
Expand All @@ -104,4 +104,4 @@ template <typename T> void register_botlist()
*
* @param bot cluster reference
*/
void post_botlists(dpp::cluster &bot);
dpp::task<void> post_botlists(dpp::cluster &bot);
4 changes: 2 additions & 2 deletions include/ssod/botlists/botlistme.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct botlistme : public botlist {
static constexpr std::string_view server_count_field{"server_count"};
static constexpr std::string_view shard_count_field{"shard_count"};

static void post(dpp::cluster& bot) {
botlist::run(bot, botlistme::name, botlistme::url, botlistme::server_count_field, botlistme::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, botlistme::name, botlistme::url, botlistme::server_count_field, botlistme::shard_count_field);
}
};
4 changes: 2 additions & 2 deletions include/ssod/botlists/discordbotlist.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct discordbotlist : public botlist {
static constexpr std::string_view server_count_field{"guilds"};
static constexpr std::string_view shard_count_field{""};

static void post(dpp::cluster& bot) {
botlist::run(bot, discordbotlist::name, discordbotlist::url, discordbotlist::server_count_field, discordbotlist::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, discordbotlist::name, discordbotlist::url, discordbotlist::server_count_field, discordbotlist::shard_count_field);
}
};
4 changes: 2 additions & 2 deletions include/ssod/botlists/discords.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct discords : public botlist {
static constexpr std::string_view server_count_field{"server_count"};
static constexpr std::string_view shard_count_field{""};

static void post(dpp::cluster& bot) {
botlist::run(bot, discords::name, discords::url, discords::server_count_field, discords::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, discords::name, discords::url, discords::server_count_field, discords::shard_count_field);
}
};
4 changes: 2 additions & 2 deletions include/ssod/botlists/infinitybots.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct infinitybots : public botlist {
static constexpr std::string_view server_count_field{"servers"};
static constexpr std::string_view shard_count_field{"shards"};

static void post(dpp::cluster& bot) {
botlist::run(bot, infinitybots::name, infinitybots::url, infinitybots::server_count_field, infinitybots::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, infinitybots::name, infinitybots::url, infinitybots::server_count_field, infinitybots::shard_count_field);
}
};
4 changes: 2 additions & 2 deletions include/ssod/botlists/topgg.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct topgg : public botlist {
static constexpr std::string_view server_count_field{"server_count"};
static constexpr std::string_view shard_count_field{"shard_count"};

static void post(dpp::cluster& bot) {
botlist::run(bot, topgg::name, topgg::url, topgg::server_count_field, topgg::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, topgg::name, topgg::url, topgg::server_count_field, topgg::shard_count_field);
}
};
4 changes: 2 additions & 2 deletions include/ssod/botlists/voidbots.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct voidbots : public botlist {
static constexpr std::string_view server_count_field{"server_count"};
static constexpr std::string_view shard_count_field{"shard_count"};

static void post(dpp::cluster& bot) {
botlist::run(bot, voidbots::name, voidbots::url, voidbots::server_count_field, voidbots::shard_count_field);
static dpp::task<void> post(dpp::cluster& bot) {
co_await botlist::run(bot, voidbots::name, voidbots::url, voidbots::server_count_field, voidbots::shard_count_field);
}
};
12 changes: 6 additions & 6 deletions include/ssod/listeners.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,42 +36,42 @@ namespace listeners {
*
* @param event slashcommand_t
*/
void on_slashcommand(const dpp::slashcommand_t& event);
dpp::task<void> on_slashcommand(const dpp::slashcommand_t& event);

/**
* @brief handle guild join
*
* @param event guild_create_t
*/
void on_guild_create(const dpp::guild_create_t &event);
dpp::task<void> on_guild_create(const dpp::guild_create_t &event);

/**
* @brief handle guild kick
*
* @param event guild_create_t
*/
void on_guild_delete(const dpp::guild_delete_t &event);
dpp::task<void> on_guild_delete(const dpp::guild_delete_t &event);

/**
* @brief Handle creation of a premium entitlement
*
* @param event
*/
void on_entitlement_create(const dpp::entitlement_create_t& event);
dpp::task<void> on_entitlement_create(const dpp::entitlement_create_t& event);

/**
* @brief Handle deletion of a premium entitlement
*
* @param event
*/
void on_entitlement_delete(const dpp::entitlement_delete_t& event);
dpp::task<void> on_entitlement_delete(const dpp::entitlement_delete_t& event);

/**
* @brief Handle update of a premium entitlement
*
* @param event
*/
void on_entitlement_update(const dpp::entitlement_update_t& event);
dpp::task<void> on_entitlement_update(const dpp::entitlement_update_t& event);

/**
* @brief Return json command definitions
Expand Down
2 changes: 1 addition & 1 deletion run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ ulimit -c unlimited
# run repeatedly until ctrl+c
while true;
do
./ssod -clusterid 0 -maxclusters 1
LD_LIBRARY_PATH=/usr/local/lib64 ./ssod -clusterid 0 -maxclusters 1
done

18 changes: 9 additions & 9 deletions src/botlist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ registered_botlist_list& get_botlist_map() {
return registered_botlists;
}

void post_botlists(dpp::cluster &bot) {
dpp::task<void> post_botlists(dpp::cluster &bot) {
for (const auto & botlist : registered_botlists) {
auto ptr = botlist.second;
(*ptr)(bot);
co_await (*ptr)(bot);
}
}

void botlist::run(dpp::cluster& bot, const std::string_view key, const std::string_view url, const std::string_view count_field, const std::string_view shards_field) {
dpp::task<void> botlist::run(dpp::cluster& bot, const std::string_view key, const std::string_view url, const std::string_view count_field, const std::string_view shards_field) {
const json& list_config = config::get("botlists");
auto rs = db::query("SELECT COUNT(id) AS count FROM guild_cache");
auto rs = co_await db::co_query("SELECT COUNT(id) AS count FROM guild_cache");
if (list_config.contains(key.data())) {
const json& topgg_config = list_config.at(key.data());
std::string token = topgg_config.at("token");
Expand All @@ -53,10 +53,10 @@ void botlist::run(dpp::cluster& bot, const std::string_view key, const std::stri
j[count_field.data()] = atoi(rs[0].at("count").c_str());
}
std::string post_url = replace_string(url.data(), "{}", bot.me.id.str());
bot.request(post_url, dpp::m_post, [&bot, key](const auto & cc){
if (cc.status >= 400) {
bot.log(dpp::ll_warning, std::string(key) + " returned: " + cc.body);
}
}, j.dump(), "application/json", {{"Authorization", token}});
auto cc = co_await bot.co_request(post_url, dpp::m_post, j.dump(), "application/json", {{"Authorization", token}});
if (cc.status >= 400) {
bot.log(dpp::ll_warning, std::string(key) + " returned: " + cc.body);
}
}
co_return;
}
2 changes: 1 addition & 1 deletion src/inventory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ void inventory(const dpp::interaction_create_t& event, player p) {
}
description += "\n```\n";
auto i = tr(inv, "", event);
auto f = dpp::embed_field("<:" + emoji + "> " + i.name + (inv.qty > 1 ? fmt::format(" (x{})", inv.qty) : ""), description, true);
auto f = dpp::embed_field(std::string("<:") + emoji + "> " + i.name + (inv.qty > 1 ? fmt::format(" (x{})", inv.qty) : ""), description, true);
fields.push_back(f);

dpp::message saved = m;
Expand Down
Loading

0 comments on commit 4f77a85

Please sign in to comment.