отмена выдачи в ЛС любым сообщением боту

master
const an teen 2021-05-26 06:41:52 +03:00
parent c4200eaace
commit 001d939fa5
3 changed files with 10 additions and 10 deletions

View File

@ -49,12 +49,12 @@ void sendVectorToUser()
std::cout << "sendVectorToUser+ " << sendVectorToUser_COUNTER << std::endl;
int messageCounter = 0;
bool stopped = false;
for (auto str: messages)
{
std::string triggerToStop = tsc->get_raw_msg_from_socket();
if (triggerToStop.find(":" + nick + "!") == 0 &&
triggerToStop.find("PRIVMSG " + tsc->params["nickname"]) != std::string::npos) {
break; // Ник появился в стопе
if (tsc->have_pm_from_user(nick)) { // Ник появился в стопе
stopped = true;
break;
}
if (messageCounter++ < 20) {
@ -63,12 +63,11 @@ void sendVectorToUser()
}
else {
messageCounter = 0;
tsc->write_to_user(nick, "buffering...");
std::this_thread::sleep_for(std::chrono::seconds(3));
std::this_thread::sleep_for(std::chrono::seconds(2));
tsc->write_to_user(nick, str);
}
}
tsc->write_to_user(nick, "*** END ***");
tsc->write_to_user(nick, stopped ? "*** STOP ***" : "*** END ***");
tsc->write_to_user(nick, conf["links"]);
--sendVectorToUser_COUNTER;
std::cout << "sendVectorToUser- " << sendVectorToUser_COUNTER << std::endl;

View File

@ -80,9 +80,10 @@ std::string TcpSyncClient::get_raw_nick()
return m_raw_nickname;
}
std::string TcpSyncClient::get_raw_msg_from_socket()
bool TcpSyncClient::have_pm_from_user(std::string nick)
{
return raw_msg_from_socket;
return (raw_msg_from_socket.find(":" + nick + "!") == 0 &&
raw_msg_from_socket.find("PRIVMSG " + params["nickname"]) != std::string::npos);
}
bool TcpSyncClient::connect_to_ep()

View File

@ -26,7 +26,7 @@ public:
std::string get_msg_nick(); // Сообщение боту
std::string get_raw(); // Ник сообщения на канале
std::string get_raw_nick(); // Сообщение на канале
std::string get_raw_msg_from_socket(); // Для получения сырого сообщения
bool have_pm_from_user(std::string); // Для получения сырого сообщения
~TcpSyncClient();
bool to_read; // Индикаторы наличия информации для чтения