reload funk

master
const an teen 2021-05-21 13:29:13 +03:00
parent 574a728090
commit 5a303da836
2 changed files with 24 additions and 14 deletions

View File

@ -10,12 +10,13 @@
"handler": "handler":
{ {
"logpath": "D:\\irc-log", "logpath": "D:\\irc-log",
"admin": "acetone", "admin": "acetone",
"help": "Доступные команды: 'лог' или 'ссылки'.", "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/", "лог": "лог чата: http://acetone.i2p/doc/irc-log/ # http://[324:9de3:fea4:f6ac::ace]/doc/irc-log/ # http://acetonemadzhxzi2e5tomavam6xpucdfwn2g35vrsz6izgaxv5bmuhad.onion/doc/irc-log/",
"ссылки": "123",
"русский": "гордо" "русский": "гордо"
} }
} }

View File

@ -104,21 +104,30 @@ void handler()
if (!tsc_created) std::this_thread::sleep_for(std::chrono::seconds(1)); if (!tsc_created) std::this_thread::sleep_for(std::chrono::seconds(1));
bool handled = false; bool handled = false;
while (true) { while (true)
{
if(tsc->to_read) { // Есть сообщения, адресованные боту if(tsc->to_read) { // Есть сообщения, адресованные боту
std::string msg = tsc->get_msg(); std::string msg = tsc->get_msg();
handled = false; if (tsc->get_msg_nick() == conf["admin"] && (msg.find("reload") == 0)) // Reload
for(auto value: conf)
{ {
if (msg.find(value.first) != std::string::npos) if (read_config()) tsc->write_to_channel(conf["reloaded"]);
{ else tsc->write_to_channel("Ошибка.");
tsc->write_to_channel(tsc->get_msg_nick() + ", " + value.second); }
handled = true; else // Общий обработчик
break; {
} 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) { // Все сообщения на канале if(tsc->to_raw) { // Все сообщения на канале