diff --git a/main.cpp b/main.cpp index bd1d5b3..e4b67d6 100644 --- a/main.cpp +++ b/main.cpp @@ -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; diff --git a/tcpsyncclient.cpp b/tcpsyncclient.cpp index e611415..943aa05 100644 --- a/tcpsyncclient.cpp +++ b/tcpsyncclient.cpp @@ -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() diff --git a/tcpsyncclient.h b/tcpsyncclient.h index 2178863..f577605 100644 --- a/tcpsyncclient.h +++ b/tcpsyncclient.h @@ -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; // Индикаторы наличия информации для чтения