12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef TCPSYNCCLIENT_H
- #define TCPSYNCCLIENT_H
- #include <iostream>
- #include <map>
- #include <boost/thread.hpp>
- #include <boost/bind.hpp>
- #include <boost/asio.hpp>
- #include <boost/shared_ptr.hpp>
- #include <boost/filesystem.hpp>
- #include <boost/enable_shared_from_this.hpp>
- #include <boost/property_tree/ptree.hpp>
- #include <boost/property_tree/json_parser.hpp>
- using boost::system::error_code;
- class TcpSyncClient
- {
- public:
- TcpSyncClient(boost::asio::io_service& s, std::string config);
- void start(); // Запуск бота
- bool write(std::string); // Написать в сокет
- bool write_to_user(std::string, std::string); // Написать пользователю
- bool write_to_channel(std::string); // Написать в целевой чат
- std::string get_msg(); // Ник сообщения боту
- std::string get_msg_nick(); // Сообщение боту
- std::string get_raw(); // Ник сообщения на канале
- std::string get_raw_nick(); // Сообщение на канале
- bool have_pm_from_user(std::string); // Для получения сырого сообщения
- ~TcpSyncClient();
- bool to_read; // Индикаторы наличия информации для чтения
- bool to_raw;
- bool to_start;
- std::map<std::string, std::string> params =
- {
- { "address", "127.0.0.1" },
- { "port", "6667" },
- { "channel", "#general" },
- { "nickname", "bot" },
- { "password", "x" }
- };
- private:
- void log(std::string);
- bool connect_to_ep();
- size_t read_complete(const error_code&, size_t);
- void read_answer();
- void process_msg();
- void answer_to_ping(std::string);
- void connect_to_server();
- bool read_config();
- int m_already_read;
- char m_buff[512];
- boost::asio::ip::tcp::endpoint m_ep;
- boost::asio::ip::tcp::socket m_sock;
- std::string m_msg;
- std::string m_msg_nickname;
- std::string m_raw;
- std::string m_raw_nickname;
- std::string raw_msg_from_socket;
- std::string m_config_file = "ircbot.json";
- const std::string m_user = "ircabot";
- const std::string m_realname = "https://notabug.org/acetone/ircabot";
- };
- #endif // TCPSYNCCLIENT_H
|