#include #include #include #include using namespace std; string telegram_id; string bot_token; int my_msg(const string& msg) { cout << msg << endl; CURL* curl = curl_easy_init(); if (!curl) return 6; string escaped_msg = escape_json(msg); string chat_id_field; if (is_numeric(telegram_id)) { chat_id_field = "\"chat_id\": " + telegram_id; } else { chat_id_field = "\"chat_id\": \"" + telegram_id + "\""; } string json_data = "{" + chat_id_field + ", \"text\": \"" + escaped_msg + "\"}"; struct curl_slist* headers = nullptr; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_URL, ("https://api.telegram.org/bot" + bot_token + "/sendMessage").c_str()); curl_easy_setopt(curl, CURLOPT_POST, 1L); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data.c_str()); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl/7.68.0"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](void*, size_t size, size_t nmemb, void*) -> size_t { return size * nmemb; }); CURLcode res = curl_easy_perform(curl); long http_code = 0; curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code); curl_slist_free_all(headers); curl_easy_cleanup(curl); if (res != CURLE_OK) return 5; switch (http_code) { case 200: return 0; // Успех case 401: return 1; // Неверный токен case 400: return 2; // Неверный chat_id case 404: return 3; // Неверный URL (бот не найден) default: return 4; // Ошибка сервера (500) } }