From 5a303da8369b0f043313a59e07a9af4dcd01a91a Mon Sep 17 00:00:00 2001 From: acetone Date: Fri, 21 May 2021 13:29:13 +0300 Subject: [PATCH] reload funk --- ircbot.json | 9 +++++---- main.cpp | 29 +++++++++++++++++++---------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/ircbot.json b/ircbot.json index 724bd4d..0a26553 100644 --- a/ircbot.json +++ b/ircbot.json @@ -10,12 +10,13 @@ "handler": { - "logpath": "D:\\irc-log", - "admin": "acetone", - "help": "Доступные команды: 'лог' или 'ссылки'.", + "logpath": "D:\\irc-log", + "admin": "acetone", + "reloaded": "Конфиг перечитан.", + "help": "доступные команды: 'лог' и 'ссылки'.", - "ссылки": "лог чата: http://acetone.i2p/doc/irc-log/ # http://[324:9de3:fea4:f6ac::ace]/doc/irc-log/ # http://acetonemadzhxzi2e5tomavam6xpucdfwn2g35vrsz6izgaxv5bmuhad.onion/doc/irc-log/", "лог": "лог чата: http://acetone.i2p/doc/irc-log/ # http://[324:9de3:fea4:f6ac::ace]/doc/irc-log/ # http://acetonemadzhxzi2e5tomavam6xpucdfwn2g35vrsz6izgaxv5bmuhad.onion/doc/irc-log/", + "ссылки": "123", "русский": "гордо" } } diff --git a/main.cpp b/main.cpp index 023776e..a485fbc 100644 --- a/main.cpp +++ b/main.cpp @@ -104,21 +104,30 @@ void handler() if (!tsc_created) std::this_thread::sleep_for(std::chrono::seconds(1)); bool handled = false; - while (true) { + while (true) + { if(tsc->to_read) { // Есть сообщения, адресованные боту std::string msg = tsc->get_msg(); - handled = false; - for(auto value: conf) + if (tsc->get_msg_nick() == conf["admin"] && (msg.find("reload") == 0)) // Reload { - if (msg.find(value.first) != std::string::npos) - { - tsc->write_to_channel(tsc->get_msg_nick() + ", " + value.second); - handled = true; - break; - } + if (read_config()) tsc->write_to_channel(conf["reloaded"]); + else tsc->write_to_channel("Ошибка."); + } + else // Общий обработчик + { + handled = false; + for(auto value: conf) + { + if (msg.find(value.first) != std::string::npos) + { + tsc->write_to_channel(tsc->get_msg_nick() + ", " + value.second); + handled = true; + break; + } + } + if (!handled) tsc->write_to_channel(tsc->get_msg_nick() + ", " + conf["help"]); } - if (!handled) tsc->write_to_channel(tsc->get_msg_nick() + ", " + conf["help"]); } if(tsc->to_raw) { // Все сообщения на канале