From e9cd4345f570ac26052582c5a34db8b2c62e742e Mon Sep 17 00:00:00 2001 From: Brett Laptop Date: Mon, 26 Feb 2024 12:17:59 -0500 Subject: [PATCH] lovely --- CMakeLists.txt | 2 +- src/main.cpp | 72 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b0022d..fda2a8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.27) +cmake_minimum_required(VERSION 3.25) project(discord_bot) option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF) diff --git a/src/main.cpp b/src/main.cpp index aba7981..20618c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,6 +15,13 @@ struct message_t std::string content; }; +struct attachment_t +{ + blt::u64 messageID; + blt::u64 channelID; + std::string url; +}; + struct user_info_t { blt::u64 userID; @@ -39,15 +46,37 @@ struct message_edits_t std::string new_content; }; +struct message_deletes_t +{ + blt::u64 messageID; + blt::u64 channelID; +}; + struct db_obj { private: blt::u64 guildID; - std::string path; public: - db_obj(blt::u64 guildID, std::string_view path): guildID(guildID), path(path) + std::vector messages; + std::vector user_data; + std::vector channel_data; + std::vector message_edits; + std::vector message_deletes; + std::vector attachments; + public: + explicit db_obj(blt::u64 guildID): guildID(guildID) {} + + void dump() + { + + } + + void check_for_updates(dpp::cluster& bot) + { + + } }; namespace db @@ -62,6 +91,13 @@ namespace db blt::hashmap_t databases; +db_obj& get(blt::u64 id) +{ + if (databases.find(id) == databases.end()) + databases.insert({id, db_obj{id}}); + return databases.at(id); +} + int main(int argc, const char** argv) { using namespace sqlite_orm; @@ -75,7 +111,7 @@ int main(int argc, const char** argv) dpp::cluster bot(args.get("token"), dpp::i_default_intents | dpp::i_message_content | dpp::i_all_intents); bot.on_message_delete([&bot](const dpp::message_delete_t& event) { - + BLT_DEBUG("Message %ld deleted content in %ld", event.id, event.channel_id); }); bot.on_message_delete_bulk([&bot](const dpp::message_delete_bulk_t& event) { @@ -90,25 +126,21 @@ int main(int argc, const char** argv) bot.on_message_create([&bot](const dpp::message_create_t& event) { if (event.msg.id == bot.me.id) return; - bot.guild_get(event.msg.guild_id, [](const dpp::confirmation_callback_t& con) { - BLT_INFO("Guild name: %s", con.get().name.c_str()); - }); + if (blt::string::contains(event.msg.content, "/dump")) + { + for (auto g : databases) + g.second.dump(); + } + auto& storage = get(event.msg.guild_id); + storage.messages.push_back({ + event.msg.id, + event.msg.channel_id, + event.msg.author.id, + event.msg.content + }); - BLT_TRACE("(%s '%s' aka '%s' with mention '%s')> %s", event.msg.author.username.c_str(), event.msg.author.global_name.c_str(), - event.msg.member.get_nickname().c_str(), event.msg.member.get_mention().c_str(), event.msg.content.c_str()); for (const dpp::attachment& attach : event.msg.attachments) - { - BLT_INFO("\tAttachment: %s", attach.url.c_str()); - } - for (const dpp::embed& embed : event.msg.embeds) - { - BLT_INFO("\tEmbedding: %s", embed.url.c_str()); - } - //BLT_TRACE_STREAM << event.msg.channel_id.str() << " " << event.msg.channel_id.str() << " " << "\n"; -// if (blt::string::toLowerCase(event.msg.author.username) != "autismbot" && blt::string::toLowerCase(event.msg.author.username) != "jewhack") -// { -// //event.reply("Test response " + event.msg.author.global_name); -// } + storage.attachments.push_back({event.msg.id, event.msg.channel_id, attach.url}); }); bot.start(dpp::st_wait);