From d1793df1eda463b10107d41785ad1d7f055ed476 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sat, 18 May 2024 14:48:12 +0500 Subject: upd: moved the bot part to a relative subfolder --- bot/src/config.hpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bot/src/config.hpp (limited to 'bot/src/config.hpp') diff --git a/bot/src/config.hpp b/bot/src/config.hpp new file mode 100644 index 0000000..5c437d6 --- /dev/null +++ b/bot/src/config.hpp @@ -0,0 +1,54 @@ +#pragma once + +#include +#include + +#define GET_DATABASE_CONNECTION_URL(c) \ + "dbname = " + c.database.name + " user = " + c.database.user + \ + " password = " + c.database.password + " host = " + c.database.host + \ + " port = " + c.database.port + +#define GET_DATABASE_CONNECTION_URL_POINTER(c) \ + "dbname = " + c->database.name + " user = " + c->database.user + \ + " password = " + c->database.password + " host = " + c->database.host + \ + " port = " + c->database.port + +namespace bot { + struct DatabaseConfiguration { + std::string name; + std::string user; + std::string password; + std::string host; + std::string port; + }; + + struct TwitchCredentialsConfiguration { + std::string client_id; + std::string token; + }; + + struct CommandConfiguration { + bool join_allowed = true; + bool join_allow_from_other_chats = false; + }; + + struct OwnerConfiguration { + std::optional name = std::nullopt; + std::optional id = std::nullopt; + }; + + struct UrlConfiguration { + std::optional help = std::nullopt; + }; + + struct Configuration { + TwitchCredentialsConfiguration twitch_credentials; + DatabaseConfiguration database; + CommandConfiguration commands; + OwnerConfiguration owner; + UrlConfiguration url; + }; + + std::optional parse_configuration_from_file( + const std::string &file_path); +} -- cgit v1.2.3