Добавлены совместные ролевые действия и команды падежей
This commit is contained in:
parent
74fa35c892
commit
72d704cd0e
|
@ -42,24 +42,52 @@ $database->truncate();
|
||||||
$chat = new chat;
|
$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 {
|
try {
|
||||||
// Удаление сообщения
|
// Удаление сообщения
|
||||||
$robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']);
|
$robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация данных отправителя
|
// Конвертация кодировки текста сообщения
|
||||||
|
// $text = mb_convert_encoding($text, 'UTF-8');
|
||||||
|
|
||||||
|
// Инициализация данных аккаунта отправителя
|
||||||
$sender = $robot->user()->get($update['object']['message']['from_id']);
|
$sender = $robot->user()->get($update['object']['message']['from_id']);
|
||||||
|
|
||||||
// Отправка ответа
|
if (isset($update['object']['message']['reply_message'])) {
|
||||||
$robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name) $text");
|
// Найдено сообщение для ответа
|
||||||
|
|
||||||
|
// Инициализация данных аккаунта отправившего сообщение для ответа (получателя)
|
||||||
|
$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) {
|
$longpoll->handle(function (array $update) use ($robot, $database, $chat) {
|
||||||
// Обработка события
|
// Обработка события
|
||||||
|
|
||||||
// var_dump($update);
|
var_dump($update);
|
||||||
|
|
||||||
// Сохранение события в базе данных
|
// Сохранение события в базе данных
|
||||||
// $database->save($update);
|
// $database->save($update);
|
||||||
|
|
Loading…
Reference in New Issue