Фиксация мамы нолнан с сфере IT с симпатией к атусу стоещему на полигоне

с афроо лошадьми
This commit is contained in:
SkrinVex
2026-01-20 22:04:44 +05:00
parent 024444abdb
commit 4365a50cda
45 changed files with 2941 additions and 470 deletions
+122
View File
@@ -0,0 +1,122 @@
// bot_api.fox - API для работы с Telegram Bot API
// Глобальные переменные для API
string api_base_url = "https://api.telegram.org/bot";
// HTTP запрос к Telegram API
string telegram_request(string token, string method, string params) {
string url = api_base_url + token + "/" + method;
if (params != "") {
url = url + "?" + params;
}
return http_get(url);
}
// Отправка сообщения
void send_message(string token, string chat_id, string text) {
string params = "chat_id=" + chat_id + "&text=" + url_encode(text);
string response = telegram_request(token, "sendMessage", params);
print("Message sent to " + chat_id);
}
// Получение обновлений
string get_updates(string token, int offset) {
string params = "offset=" + (offset + 1) + "&timeout=10";
return telegram_request(token, "getUpdates", params);
}
// Обработка обновлений
void process_updates(string json_response) {
print("=== PROCESS_UPDATES START ===");
// Извлекаем данные последнего сообщения
string chat_id = extract_chat_id(json_response);
print("Extracted chat_id: " + chat_id);
string text = extract_message_text(json_response);
print("Extracted text: " + text);
string username = extract_username(json_response);
int update_id = extract_update_id(json_response);
print("Chat ID: " + chat_id + ", Text: " + text + ", Update ID: " + update_id);
// Проверяем, что это новое сообщение
if (update_id > last_update_id && chat_id != "" && text != "") {
print("Processing new message...");
// Обрабатываем сообщение
string response = handle_message(text, username);
print("Sending response: " + response);
// Отправляем ответ
send_message(bot_token, chat_id, response);
// Обновляем offset
last_update_id = update_id;
print("Updated last_update_id to: " + last_update_id);
} else {
print("Skipping old message or empty data");
}
print("=== PROCESS_UPDATES END ===");
}
// Вспомогательные функции для парсинга JSON
string extract_chat_id(string json) {
return json_get(json, "chat_id");
}
string extract_message_text(string json) {
return json_get(json, "text");
}
string extract_username(string json) {
return "SkrinVex"; // Пока заглушка
}
int extract_update_id(string json) {
string id_str = json_get(json, "update_id");
if (id_str != "") {
return str_to_int(id_str);
}
return 0;
}
// URL кодирование
string url_encode(string text) {
// Простая замена специальных символов
string result = text;
result = replace_all(result, " ", "%20");
result = replace_all(result, "\n", "%0A");
return result;
}
// Проверка содержания строки - удалена, используем встроенную contains()
// Замена всех вхождений
string replace_all(string text, string from, string to) {
// Заглушка - в реальности нужна реализация
return text;
}
// Проверка начала строки
bool starts_with(string text, string prefix) {
// Заглушка - в реальности нужна реализация
if (text == "/start" || text == "/help" || text == "/example") {
return true;
}
return false;
}
// Чтение токена
string read_token() {
// Читаем токен из файла token.txt
return read_file("telegram_bot/token.txt");
}
// Пауза (заглушка)
void sleep(int seconds) {
// В реальности нужна реализация задержки
print("Sleeping for " + seconds + " seconds...");
}