<?php
session_start();
require '../db.php';
// Игнорировать прерывание пользователем, чтобы скрипт продолжался даже если клиент отключился (опционально, но полезно)
ignore_user_abort(true);
set_time_limit(30);
if (!isset($_SESSION['user_id'])) exit;
$userId = $_SESSION['user_id'];
$lang = $_SESSION['lang'] ?? 'en';
session_write_close(); // Освободить блокировку
try {
// 1. Получить ID бота
$stmt = $pdo->prepare("SELECT id FROM users WHERE username = 'ChatBot' LIMIT 1");
$stmt->execute();
$bot = $stmt->fetch();
$roomId = isset($_POST['room_id']) ? intval($_POST['room_id']) : 1;
if ($bot && $userId != $bot['id']) {
$botId = $bot['id'];
// 2. Установить статус набора текста ботом
$stmt = $pdo->prepare("UPDATE users SET last_typing = NOW(), last_seen = NOW() WHERE id = ?");
$stmt->execute([$botId]);
// 3. Ждать
sleep(2);
// 4. Локализованные ответы
$responses = [
'en' => [
"That's very interesting!",
"I see...",
"Tell me more about it.",
"I'm just a bot, but I'm listening.",
"Can you elaborate?",
"Wow, really?",
"Keep going!",
"I'm processing that information..."
],
'uk' => [
"Це дуже цікаво!",
"Я розумію...",
"Розкажіть більше про це.",
"Я просто бот, але я слухаю.",
"Можете уточнити?",
"Ого, справді?",
"Продовжуйте!",
"Я обробляю цю інформацію..."
],
'ru' => [
"Это очень интересно!",
"Я понимаю...",
"Расскажите подробнее.",
"Я просто бот, но я слушаю.",
"Можете уточнить?",
"Ого, правда?",
"Продолжайте!",
"Я обрабатываю эту информацию..."
]
];
// Откат на английский, если язык не найден
$pool = isset($responses[$lang]) ? $responses[$lang] : $responses['en'];
$reply = $pool[array_rand($pool)];
$stmt = $pdo->prepare("INSERT INTO messages (user_id, type, content, room_id) VALUES (?, 'text', ?, ?)");
$stmt->execute([$botId, $reply, $roomId]);
// 5. Очистить статус набора текста сразу после отправки
$stmt = $pdo->prepare("UPDATE users SET last_typing = NULL WHERE id = ?");
$stmt->execute([$botId]);
}
} catch (PDOException $e) {
file_put_contents('../bot_debug.log', date('Y-m-d H:i:s') . " Error: " . $e->getMessage() . "\n", FILE_APPEND);
}