-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbot_handler.php
More file actions
55 lines (42 loc) · 1.86 KB
/
bot_handler.php
File metadata and controls
55 lines (42 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
/**
* Файл-контроллер обработчик веб-хуков из телеграм бота.
*/
include_once "bootstrap.php";
try {
// инициализиурем объект для работы с ТГ-ботом, получаем данные из веб-хука, устанавливаем чат
$bot = new \App\Bot(config('TELEGRAM_BOT_TOKEN', ''));
$result = $bot->getUpdates();
$bot->setChat();
// получаем введенный пользователем текст
$text = $bot->getInputText();
if (empty(\Core\Database::getInstance()->getChat($bot->getChat())) && $text != '/start') {
$bot->message('Начать использование бота: /start');
return;
}
if (!$text) {
$bot->message("Отправьте текстовое сообщение.");
return;
}
// определяем текущую команду, если она уже выполняется
$command = $db->getCommand($bot->getChat());
if (empty($command)) {
// если нет - берем в качестве команды введенный текст пользователя
/** @todo: добавить проверку на наличие символа "/" */
$command = str_replace('/', '', $text);
}
// обрабатываем несуществующую команду
if (!method_exists($bot, $command)) {
$bot->message('Неизвестная команда. Список доступных команд: /help');
return;
}
// вызываем команду у бота
$bot->$command();
} catch (\Exception $ex) {
// обрабатываем ошибки
\Core\Logger::error($ex);
if ($isDebug) {
$bot->message("Произошла ошибка: ". $ex->getMessage());
}
}
?>