From 72d704cd0e36d13dc7f4ef6141b7e97c61641067 Mon Sep 17 00:00:00 2001 From: Mirzaev Date: Tue, 8 Nov 2022 13:23:43 +1000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=80=D0=BE=D0=BB=D0=B5=D0=B2=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=B9=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=BF=D0=B0=D0=B4?= =?UTF-8?q?=D0=B5=D0=B6=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bobby/system/public/index.php.template | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/mirzaev/vk/robot/bobby/system/public/index.php.template b/mirzaev/vk/robot/bobby/system/public/index.php.template index 63c2a63..5c1536f 100644 --- a/mirzaev/vk/robot/bobby/system/public/index.php.template +++ b/mirzaev/vk/robot/bobby/system/public/index.php.template @@ -42,24 +42,52 @@ $database->truncate(); $chat = new chat; // Инициализация команды "ролевое действие" -$chat->pattern('/\*([A-я\w\s]+)\*/', new command(function (array $update, string $text) use ($robot) { +$chat->pattern('/(*UTF8)\*([A-я\w\s]+)\*/', new command(function (array $update, string $text) use ($robot) { try { // Удаление сообщения $robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']); } catch (Exception $e) { } - // Инициализация данных отправителя + // Конвертация кодировки текста сообщения + // $text = mb_convert_encoding($text, 'UTF-8'); + + // Инициализация данных аккаунта отправителя $sender = $robot->user()->get($update['object']['message']['from_id']); - // Отправка ответа - $robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name) $text"); + if (isset($update['object']['message']['reply_message'])) { + // Найдено сообщение для ответа + + // Инициализация данных аккаунта отправившего сообщение для ответа (получателя) + $receiver = $robot->user()->get($update['object']['message']['reply_message']['from_id']); + + // Поиск падежей для получателя + preg_match_all('/(*UTF8)\s\|([А-я\w]+)$/', $text, $matches); + + // Инициализация падежа получателя + $receiver_case = $matches[1][0]; + + // Инициализация цели для ролевого действия + $target = " @id$receiver->id ($receiver->first_name$receiver_case)"; + } else $target = ''; + + // Поиск падежей для отправителя + preg_match_all('/(*UTF8)^\|([А-я\w]+)\s/', $text, $matches); + + // Инициализация падежа отправителя + $sender_case = $matches[1][0]; + + // Удаление команд падежей из строки + $text = preg_replace('/(*UTF8)\s?\|[А-я\w]+\s?/', '', $text, 500); + + // Отправка сообщения с ролевым действием + $robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name$sender_case) $text$target"); })); $longpoll->handle(function (array $update) use ($robot, $database, $chat) { // Обработка события - // var_dump($update); + var_dump($update); // Сохранение события в базе данных // $database->save($update);