From 01c8e9d03bc4913f4bd2354365a6a4e59e3061e9 Mon Sep 17 00:00:00 2001 From: cat Date: Tue, 22 Jul 2025 17:36:05 +0300 Subject: [PATCH] Reorganising and adding generate-report --- languages/locale_en.hpp | 7 +++++++ src/CommandManagement.cpp | 13 +++++++++++++ src/Commands.cpp | 4 +++- src/Commands/GenerativeCommands.cpp | 9 +++++++++ src/Commands/MoneyCommands.cpp | 15 +++++++-------- ...lineDefinitions.hpp => TransactionMethods.hpp} | 0 src/Cost.hpp | 1 + 7 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 src/Commands/GenerativeCommands.cpp rename src/Commands/{InlineDefinitions.hpp => TransactionMethods.hpp} (100%) create mode 100644 src/Cost.hpp diff --git a/languages/locale_en.hpp b/languages/locale_en.hpp index d20bc0b..a714e2a 100644 --- a/languages/locale_en.hpp +++ b/languages/locale_en.hpp @@ -8,6 +8,13 @@ #define COMMAND_PING "ping" #define COMMAND_PING_DESCRIPTION "Ping-pong test" +#define COMMAND_GENERATE_REPORT "generate_report" +#define COMMAND_GENERATE_REPORT_DESCRIPTION "Generate a fake news report" +#define COMMAND_GENERATE_REPORT_ARGS_IMAGE_DESCRIPTION \ + "Upload a background image to use (Only supports PNG, JPEG, and WEBP files)" +#define COMMAND_GENERATE_REPORT_ARGS_HEADLINE_DESCRIPTION \ + "What is the headline?" + // Command get_pfp #define COMMAND_GET_PFP "get_pfp" #define COMMAND_GET_PFP_DESCRIPTION \ diff --git a/src/CommandManagement.cpp b/src/CommandManagement.cpp index 2259ae4..9477e03 100644 --- a/src/CommandManagement.cpp +++ b/src/CommandManagement.cpp @@ -25,6 +25,19 @@ void createCommands(const dpp::ready_t &event, dpp::cluster &bot) { "user", COMMAND_GET_PFP_ARGS_USER, true)), + // Generative commands + dpp::slashcommand(COMMAND_GENERATE_REPORT, + COMMAND_GENERATE_REPORT_DESCRIPTION, bot.me.id) + .add_option(dpp::command_option( + dpp::command_option_type::co_attachment, "background-image", + COMMAND_GENERATE_REPORT_ARGS_IMAGE_DESCRIPTION, true)) + .add_option(dpp::command_option( + dpp::command_option_type::co_string, "headline", + COMMAND_GENERATE_REPORT_ARGS_HEADLINE_DESCRIPTION, + true) + .set_min_length(3) + .set_max_length(70)), + // Money related commands dpp::slashcommand(COMMAND_BALANCE, COMMAND_BALANCE_DESCRIPTION, bot.me.id) .add_option(dpp::command_option(dpp::command_option_type::co_user, diff --git a/src/Commands.cpp b/src/Commands.cpp index c6876e1..2348145 100644 --- a/src/Commands.cpp +++ b/src/Commands.cpp @@ -1,4 +1,5 @@ // Unity Build +#include "Commands/GenerativeCommands.cpp" #include "Commands/MoneyCommands.cpp" #include "Commands/OtherCommands.cpp" @@ -14,4 +15,5 @@ std::unordered_map< {COMMAND_PRINT_MONEY, commandPrintMoney}, {COMMAND_BURN_MONEY, commandBurnMoney}, {COMMAND_MONEY_LEADERBOARD, commandMoneyLeaderboard}, - {COMMAND_GET_PFP, commandGetPFP}}; + {COMMAND_GET_PFP, commandGetPFP}, + {COMMAND_GENERATE_REPORT, commandGenerateReport}}; diff --git a/src/Commands/GenerativeCommands.cpp b/src/Commands/GenerativeCommands.cpp new file mode 100644 index 0000000..2d06582 --- /dev/null +++ b/src/Commands/GenerativeCommands.cpp @@ -0,0 +1,9 @@ +#include "../../settings.hpp" +#include +#include +#include +#include +#include + +void commandGenerateReport(const dpp::slashcommand_t &event, + dpp::cluster &bot) {} diff --git a/src/Commands/MoneyCommands.cpp b/src/Commands/MoneyCommands.cpp index bd1d979..afbf9f9 100644 --- a/src/Commands/MoneyCommands.cpp +++ b/src/Commands/MoneyCommands.cpp @@ -1,6 +1,6 @@ #include "../../settings.hpp" // This is where language is imported #include "../Base/SQL.hpp" -#include "InlineDefinitions.hpp" +#include "TransactionMethods.hpp" #include #include @@ -112,18 +112,17 @@ void commandMoneyLeaderboard(const dpp::slashcommand_t &event, } /// -/// HELPER INLINE METHODS +/// Transaction Methods /// -inline void increaseFromUsersBalance(const dpp::snowflake userid, - std::uint64_t amount) { +void increaseFromUsersBalance(const dpp::snowflake userid, + std::uint64_t amount) { std::uint64_t balance = std::stoll(getUserBalance(userid)); execSQL("UPDATE MONEY SET CASH=" + std::to_string(balance + amount) + " WHERE UID=" + userid.str()); } -inline bool deductFromUsersBalance(const dpp::snowflake userid, - std::uint64_t amount) { +bool deductFromUsersBalance(const dpp::snowflake userid, std::uint64_t amount) { std::uint64_t balance = std::stoll(getUserBalance(userid)); if (balance < amount) { return false; @@ -135,7 +134,7 @@ inline bool deductFromUsersBalance(const dpp::snowflake userid, return true; } -inline std::string getUserBalance(const dpp::snowflake userid) { +std::string getUserBalance(const dpp::snowflake userid) { std::string balance; execSQL("SELECT CASH FROM MONEY WHERE UID=" + userid.str(), &balance); @@ -150,6 +149,6 @@ inline std::string getUserBalance(const dpp::snowflake userid) { return balance.substr(begining, balance.find(';') - begining); } -inline void addUserToDatabase(const dpp::snowflake userid) { +void addUserToDatabase(const dpp::snowflake userid) { execSQL("INSERT INTO MONEY (UID) VALUES (" + userid.str() + ");"); } diff --git a/src/Commands/InlineDefinitions.hpp b/src/Commands/TransactionMethods.hpp similarity index 100% rename from src/Commands/InlineDefinitions.hpp rename to src/Commands/TransactionMethods.hpp diff --git a/src/Cost.hpp b/src/Cost.hpp new file mode 100644 index 0000000..bd695ee --- /dev/null +++ b/src/Cost.hpp @@ -0,0 +1 @@ +#define COMMAND_GENERATE_REPORT_COST 2