From e4319f885440af73f6e3e8ed5595d0ed653915fa Mon Sep 17 00:00:00 2001 From: Mirzaev Date: Thu, 10 Nov 2022 23:27:57 +1000 Subject: [PATCH 1/3] =?UTF-8?q?=D0=AD=D0=BA=D1=80=D0=B0=D0=BD=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5,=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D1=81=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=BC=20=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B,=20?= =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20=D1=80=D0=B0=D0=B7=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=20=D0=BA=D0=BD=D0=BE=D0=BF?= =?UTF-8?q?=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/programs/buttons_generator.php | 39 +++++ .../system/programs/character_escaping.php | 66 +++++++ .../system/programs/mentions_converter.php | 45 +++++ .../bobby/system/programs/reply_to_group.php | 69 ++++++++ .../bobby/system/programs/roleplay_action.php | 163 ++++++++++++++++++ .../robot/bobby/system/programs/variables.php | 43 +++++ 6 files changed, 425 insertions(+) create mode 100644 mirzaev/vk/robot/bobby/system/programs/buttons_generator.php create mode 100644 mirzaev/vk/robot/bobby/system/programs/character_escaping.php create mode 100644 mirzaev/vk/robot/bobby/system/programs/mentions_converter.php create mode 100644 mirzaev/vk/robot/bobby/system/programs/reply_to_group.php create mode 100644 mirzaev/vk/robot/bobby/system/programs/roleplay_action.php create mode 100644 mirzaev/vk/robot/bobby/system/programs/variables.php diff --git a/mirzaev/vk/robot/bobby/system/programs/buttons_generator.php b/mirzaev/vk/robot/bobby/system/programs/buttons_generator.php new file mode 100644 index 0000000..b498f8f --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/buttons_generator.php @@ -0,0 +1,39 @@ + + */ +class buttons_generator extends program +{ + /** + * Конструктор + * + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update, string ...$buttons): void { + var_dump($buttons); die; + }, $robot, $accounts); + } +} diff --git a/mirzaev/vk/robot/bobby/system/programs/character_escaping.php b/mirzaev/vk/robot/bobby/system/programs/character_escaping.php new file mode 100644 index 0000000..c784088 --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/character_escaping.php @@ -0,0 +1,66 @@ + + */ +class character_escaping extends program +{ + /** + * Конструктор + * + * @param callable $program Программа выполняемая командой + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update, string ...$text): void { + // Инициализация буфера текста + $buffer = ''; + + // Конвертация текста + foreach ($text as $part) $buffer .= mb_substr($part, 0, 1) === '\\' ? self::convert($part = mb_substr($part, 1)) : $part; + + // Запись текста из буфера в событие (для того, чтобы передать на выполнение следующим программам) + $update['object']['message']['text'] = $buffer; + }, $robot, $accounts); + } + + protected static function convert(string $text): string + { + // Инициализация буфера вывода + $buffer = ''; + + foreach ([mb_convert_encoding($text, 'UTF-32', 'UTF-8')] as $symbol) { + // Перебор символов + + $c = 0; + for ($i = 0; $i < 4; $i++) { + $c |= ord($symbol[$i]) << (8 * (3 - $i)); + } + + // Запись в буфер вывода + $buffer .= "&#" . $c . ";"; + } + + return $buffer; + } +} diff --git a/mirzaev/vk/robot/bobby/system/programs/mentions_converter.php b/mirzaev/vk/robot/bobby/system/programs/mentions_converter.php new file mode 100644 index 0000000..0982e5c --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/mentions_converter.php @@ -0,0 +1,45 @@ + + */ +class mentions_converter extends program +{ + /** + * Конструктор + * + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update): void { + // Конвертация упоминаний + $update['object']['message']['text'] = preg_replace_callback('/(*UTF8)(?=[^\[]+)[^\[]+|\[(id\d+)\|([^\]]+)\]/', fn (array $matches) => isset($matches[2]) ? '@' . $matches[1] . ' (' . $matches[2] . ')' : $matches[0] ?? $update['object']['message']['text'], $update['object']['message']['text'], 500); + }, $robot, $accounts); + } +} diff --git a/mirzaev/vk/robot/bobby/system/programs/reply_to_group.php b/mirzaev/vk/robot/bobby/system/programs/reply_to_group.php new file mode 100644 index 0000000..8bef535 --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/reply_to_group.php @@ -0,0 +1,69 @@ + + */ +class reply_to_group extends program +{ + /** + * Конструктор + * + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update): void { + if (isset($update['object']['message']['reply_message'])) { + // Найдено сообщение для ответа + + if ($update['object']['message']['reply_message']['from_id'] < 0) { + // Ответ на сообщение группы + + // Инициализация данных аккаунта отправителя + $sender = $robot->user()->get($update['object']['message']['from_id'], name_case: 'gen'); + + if ($update['object']['message']['reply_message']['from_id'] === -217012993) { + // Ответ на сообщение Бобби Мирзаева + + // Отправка сообщения с ролевым действием + $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text("@club217012993 (Бобби) избил @id$sender->id ($sender->first_name) до полусмерти")->mentions(false)); + } else if ($update['object']['message']['reply_message']['from_id'] === -191417381) { + // Ответ на сообщение Шамиля Мирзаева + + // Отправка сообщения с ролевым действием + $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text('Как дела, @club191417381 (брат)? Давай свалим отсюда?')->mentions(false)); + } else { + // Ответ на сообщение другой группы + + // Отправка сообщения с ролевым действием + $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text('@club' . $update['object']['message']['reply_message']['from_id'] . ' (Слышь), здристни отсюда')->mentions(false)); + } + + // Завершение выполнения команд + $core->break(); + + return; + } + } + }, $robot, $accounts); + } +} diff --git a/mirzaev/vk/robot/bobby/system/programs/roleplay_action.php b/mirzaev/vk/robot/bobby/system/programs/roleplay_action.php new file mode 100644 index 0000000..6f16aa1 --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/roleplay_action.php @@ -0,0 +1,163 @@ + + */ +class roleplay_action extends program +{ + /** + * Конструктор + * + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update, string $original, string $text = ''): void { + try { + // Инициализация длины сообщения + $original_length = strlen($update['object']['message']['text']); + + // Инициализция длины распознанных команд + $command_length = strlen($text) + 2; // +2 это два символа "*" - особенность регулярного выражения + if (!empty($buttons)) $command_length += strlen($buttons); + if (!empty($parameters)) $command_length += strlen($parameters); + + // Удаление сообщения, если в нём нет лишнего текста + if ($original_length === $command_length) $robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']); + } catch (Exception $e) { + } + + if (empty($text = trim($text))) { + // Пустой текст сообщения + + // Инициализация данных аккаунта отправителя + $sender = $robot->user()->get($update['object']['message']['from_id']); + + // Инициализация сообщения с ролевым действием + $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text("@id$sender->id ($sender->first_name) тупит")->disable_mentions(true)); + + return; + } + + // Инициализация индикаторов наличия изменённого псевдонима у получателя и отпрвителя + $sender_changed = $receiver_changed = false; + + // Инициализация псевдонима получателя + $receiver_alias = ''; + + if (isset($update['object']['message']['reply_message'])) { + // Найдено сообщение для ответа + + // Инициализация данных аккаунта получателя + $receiver = $robot->user()->get($update['object']['message']['reply_message']['from_id']); + + if (isset($receiver)) { + // Найден получатель + + // Обработка падежа получателя + $text = preg_replace_callback('/(*UTF8)^(.*)\|([^$]+)$/', function (array $matches) use ($text, &$receiver_alias, $receiver): string { + // Инициализация псевдонима отправителя + $alias = preg_replace('/\)/', ')', $matches[2], 300); + + // Инициализация псевдонима получателя + $receiver_alias = " @id$receiver->id ($receiver->first_name" . (empty($alias) ? '' : $alias) . ')'; + + return $matches[1] ?? $matches[0] ?? $text; + }, $text, 1); + + if (empty($receiver_alias)) { + // Не найден псевдоним получателя + + // Обработка псевдонима получателя + $text = preg_replace_callback('/(*UTF8)^(.*)\(([^\)]*)\)$/', function (array $matches) use ($text, &$receiver_alias, $receiver): string { + // Инициализация псевдонима отправителя + $alias = preg_replace('/\)/', ')', $matches[2], 300); + + // Инициализация псевдонима получателя + $receiver_alias = " @id$receiver->id (" . (empty($alias) ? $receiver->first_name : $alias) . ')'; + + return $matches[1] ?? $matches[0] ?? $text; + }, $text, 1); + } + } + + // Проверка на пустого получателя + if (empty(trim($receiver_alias))) { + // Пустой текст получателя + + // Реинициализация текста получателя + $receiver_alias = " @id$receiver->id ($receiver->first_name)"; + } else $receiver_changed = true; + } + + // Инициализация псевдонима отправителя + $sender_alias = ''; + + // Инициализация данных аккаунта отправителя + $sender = $robot->user()->get($update['object']['message']['from_id']); + + // Обработка падежа отправителя + $text = preg_replace_callback('/(*UTF8)^\|([^\s]+)(.*)$/', function (array $matches) use ($text, $sender, &$sender_alias): string { + // Инициализация псевдонима отправителя + $alias = preg_replace('/\)/', ')', $matches[1], 300); + + // Инициализация ссылки на отправителя + $sender_alias = "@id$sender->id ($sender->first_name" . (empty($alias) ? '' : $alias) . ') '; + + return $matches[2] ?? $matches[0] ?? $text; + }, $text, 1); + + if (empty($sender_alias)) { + // Не найден псевдоним отправителя + + // Обработка псевдонима отправителя + $text = preg_replace_callback('/(*UTF8)^\(([^\)]*)\)(.*)$/', function (array $matches) use ($text, $sender, &$sender_alias): string { + // Инициализация псевдонима отправителя + $alias = preg_replace('/\)/', ')', $matches[1], 300); + + // Инициализация ссылки на отправителя + $sender_alias = "@id$sender->id (" . (empty($alias) ? $sender->first_name : $alias) . ') '; + + return $matches[2] ?? $matches[0] ?? $text; + }, $text, 1); + } + + if (empty(trim($sender_alias))) { + // Пустой текст отправителя + + // Реинициализация текста отправителя + $sender_alias = "@id$sender->id ($sender->first_name) "; + } else $sender_changed = true; + + // Удаление команд падежей из строки + $text = preg_replace('/(*UTF8)\|[А-яё\w]+/', '', $text, 500); + + // Инициализация сообщения с ролевым действием + if (empty($text = trim($text)) && !$sender_changed && !$receiver_changed) $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text("@id$sender->id ($sender->first_name) тупит")->mentions(false)); + else $core->message($robot->message()->destination($update['object']['message']['peer_id'])->text("$sender_alias$text$receiver_alias")->mentions(false), 'roleplay_action'); + }, $robot, $accounts); + } +} diff --git a/mirzaev/vk/robot/bobby/system/programs/variables.php b/mirzaev/vk/robot/bobby/system/programs/variables.php new file mode 100644 index 0000000..83b9cf9 --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/programs/variables.php @@ -0,0 +1,43 @@ + + */ +class variables extends program +{ + /** + * Конструктор + * + * @param callable $program Программа выполняемая командой + * @param robot $robot Робот, который будет выполнять команду + * @param array $accounts Реестр аккаунтов которым разрешено выполнять команду + */ + public function __construct( + public robot $robot, + public array $accounts = [] + ) { + parent::__construct(function (core $core, robot $robot, array &$update, string ...$text): void { + + }, $robot, $accounts); + } +} From 4f2d16d7b14ed44da689c2f0d074185d943dc0ce Mon Sep 17 00:00:00 2001 From: Mirzaev Date: Tue, 15 Nov 2022 09:15:47 +1000 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=83=D1=8E=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=83=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=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 | 175 ++++-------------- 1 file changed, 37 insertions(+), 138 deletions(-) diff --git a/mirzaev/vk/robot/bobby/system/public/index.php.template b/mirzaev/vk/robot/bobby/system/public/index.php.template index e850118..a479459 100644 --- a/mirzaev/vk/robot/bobby/system/public/index.php.template +++ b/mirzaev/vk/robot/bobby/system/public/index.php.template @@ -2,6 +2,15 @@ declare(strict_types=1); +// Файлы проекта +use mirzaev\vk\robot\bobby\programs\roleplay_action, + mirzaev\vk\robot\bobby\programs\character_escaping, + mirzaev\vk\robot\bobby\programs\reply_to_group, + mirzaev\vk\robot\bobby\programs\mentions_converter, + mirzaev\vk\robot\bobby\programs\variables, + mirzaev\vk\robot\bobby\programs\buttons_generator, + mirzaev\vk\robot\bobby\programs\postprocessor; + // Фреймворк ВКонтакте use mirzaev\vk\core, mirzaev\vk\api\longpoll; @@ -13,8 +22,7 @@ use mirzaev\arangodb\connection; use mirzaev\vk\arangodb\longpoll as database; // Модуль чат-робота для фреймворка ВКонтакте -use mirzaev\vk\chat\core as chat, - mirzaev\vk\chat\command; +use mirzaev\vk\chat\core as chat; // Инициализация defined('SYSTEM_PATH_ROOT') or define('SYSTEM_PATH_ROOT', __DIR__ . '/../'); @@ -32,154 +40,45 @@ $robot = $core->group(217012993)->key(''); // Инициализация обработчика LongPoll API $longpoll = new longpoll($robot); -// Инициализация базы данных -$database = new database(new connection(require SYSTEM_PATH_ROOT . 'settings/arangodb.php')); +// Инициализация базы данных ВКонтакте +$vk = new database(new connection(require SYSTEM_PATH_ROOT . 'settings/vk.php')); -// Очистка базы данных (тестирование) -$database->truncate(); +// Инициализация базы данных Бобби +$bobby = new database(new connection(require SYSTEM_PATH_ROOT . 'settings/bobby.php')); + +// Очистка базы данных ВКонтакте (тестирование) +$vk->truncate(); + +// Очистка базы данных Бобби (тестирование) +$bobby->truncate(); // Инициализация модуля "чат-робот" $chat = new chat; -// Инициализация команды "ролевое действие" -$chat->pattern('/(*UTF8)^\*([^\*]*)\*$/', 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) { - } +// Инициализация программы "экранирование символов" +$chat->command('/(*UTF8)\\\[^\\\]|[^\\\]+/', new character_escaping($robot)); - // Обработка ссылок на аккаунты - $text = preg_replace_callback('/(*UTF8)(?=[^\[]+)[^\[]+|\[(id\d+)\|([^\]]+)\]/', fn (array $matches) => isset($matches[2]) ? '@' . $matches[1] . ' (' . $matches[2] . ')' : $matches[0] ?? $text, $text, 500); +// Инициализация программ: "ответ на сообщение группы", "конвертация упоминаний" и "переменные" +$chat->command( + '/(*UTF8)^.*$/', + new reply_to_group($robot), + new mentions_converter($robot) +); - // Инициализация индикаторов наличия изменённого псевдонима у получателя и отпрвителя - $sender_changed = $receiver_changed = false; +// Инициализация программы "переменные" +$chat->command('/(*UTF8)^\(.*\)$/', new variables($robot)); - // Инициализация псевдонима получателя - $receiver_alias = ''; +// Инициализация программы "ролевое действие" +$chat->command('/(*UTF8)^\*([^\*]*)\*(?=\n|\r|$|\s*\[|\s*\()/', new roleplay_action($robot)); - if (isset($update['object']['message']['reply_message'])) { - // Найдено сообщение для ответа +// Инициализация программы "генератор кнопок" +$chat->command('/(*UTF8){.+\*[^}]+\*}/', new buttons_generator($robot)); - if ($update['object']['message']['reply_message']['from_id'] > 0) { - // Ответ на сообщение пользователя - - // Инициализация данных аккаунта получателя - $receiver = $robot->user()->get($update['object']['message']['reply_message']['from_id']); - - if (isset($receiver)) { - // Найден получатель - - // Обработка падежа получателя - $text = preg_replace_callback('/(*UTF8)^(.*)\|([^$]+)$/', function (array $matches) use ($text, &$receiver_alias, $receiver): string { - // Инициализация псевдонима отправителя - $alias = preg_replace('/\)/', ')', $matches[2], 300); - - // Инициализация псевдонима получателя - $receiver_alias = " @id$receiver->id ($receiver->first_name" . (empty($alias) ? '' : $alias) . ')'; - - return $matches[1] ?? $matches[0] ?? $text; - }, $text, 1); - - if (empty($receiver_alias)) { - // Не найден псевдоним получателя - - // Обработка псевдонима получателя - $text = preg_replace_callback('/(*UTF8)^(.*)\(([^\)]*)\)$/', function (array $matches) use ($text, &$receiver_alias, $receiver): string { - // Инициализация псевдонима отправителя - $alias = preg_replace('/\)/', ')', $matches[2], 300); - - // Инициализация псевдонима получателя - $receiver_alias = " @id$receiver->id (" . (empty($alias) ? $receiver->first_name : $alias) . ')'; - - return $matches[1] ?? $matches[0] ?? $text; - }, $text, 1); - } - } - - // Проверка на пустого получателя - if (empty(trim($receiver_alias))) { - // Пустой текст получателя - - // Реинициализация текста получателя - $receiver_alias = " @id$receiver->id ($receiver->first_name)"; - } else $receiver_changed = true; - } else { - // Ответ на сообщение группы (подразумевается $update['object']['message']['reply_message']['from_id'] < 0) - - // Инициализация данных аккаунта отправителя - $sender = $robot->user()->get($update['object']['message']['from_id'], name_case: 'gen'); - - // Отправка сообщения с ролевым действием - $robot->message()->send($update['object']['message']['peer_id'], "@club217012993 (Бобби) избил @id$sender->id ($sender->first_name) до полусмерти", disable_mentions: true); - - return; - } - } - - // Инициализация псевдонима отправителя - $sender_alias = ''; - - // Инициализация данных аккаунта отправителя - $sender = $robot->user()->get($update['object']['message']['from_id']); - - // Обработка падежа отправителя - $text = preg_replace_callback('/(*UTF8)^\|([^\s]+)(.*)$/', function (array $matches) use ($text, $sender, &$sender_alias): string { - // Инициализация псевдонима отправителя - $alias = preg_replace('/\)/', ')', $matches[1], 300); - - // Инициализация ссылки на отправителя - $sender_alias = "@id$sender->id ($sender->first_name" . (empty($alias) ? '' : $alias) . ') '; - - return $matches[2] ?? $matches[0] ?? $text; - }, $text, 1); - - if (empty($sender_alias)) { - // Не найден псевдоним отправителя - - // Обработка псевдонима отправителя - $text = preg_replace_callback('/(*UTF8)^\(([^\)]*)\)(.*)$/', function (array $matches) use ($text, $sender, &$sender_alias): string { - // Инициализация псевдонима отправителя - $alias = preg_replace('/\)/', ')', $matches[1], 300); - - // Инициализация ссылки на отправителя - $sender_alias = "@id$sender->id (" . (empty($alias) ? $sender->first_name : $alias) . ') '; - - return $matches[2] ?? $matches[0] ?? $text; - }, $text, 1); - } - - if (empty(trim($sender_alias))) { - // Пустой текст отправителя - - // Реинициализация текста отправителя - $sender_alias = "@id$sender->id ($sender->first_name) "; - } else $sender_changed = true; - - // Удаление команд падежей из строки - $text = preg_replace('/(*UTF8)\|[А-яё\w]+/', '', $text, 500); - - if (empty($text = trim($text)) && !$sender_changed && !$receiver_changed) { - // Пустой текст сообщения, а у получателя и отправителя не изменены псевдонимы - - // Удаление пробела у отправителя - $sender_alias = trim($sender_alias); - - // Реинициализация текста сообщения - $text = ', мне @club191417381 (Шамиля) позвать?'; - } - - // Отправка сообщения с ролевым действием - $robot->message()->send($update['object']['message']['peer_id'], "$sender_alias$text$receiver_alias", disable_mentions: true); -})); - -$longpoll->handle(function (array $update) use ($robot, $database, $chat) { +$longpoll->handle(function (array $update) use ($robot, $vk, $bobby, $chat) { // Обработка события - // var_dump($update); - - // Сохранение события в базе данных - // $database->save($update); + // Сохранение в базе данных + $vk->save($update); // Обработка команды $chat->handle($update); From 91050dcd1096fdd3899250a83c46282ee2fbc6e4 Mon Sep 17 00:00:00 2001 From: Mirzaev Date: Tue, 15 Nov 2022 09:32:26 +1000 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BA=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{arangodb.php.template => bobby.php.template} | 0 mirzaev/vk/robot/bobby/system/settings/vk.php.template | 8 ++++++++ 2 files changed, 8 insertions(+) rename mirzaev/vk/robot/bobby/system/settings/{arangodb.php.template => bobby.php.template} (100%) create mode 100644 mirzaev/vk/robot/bobby/system/settings/vk.php.template diff --git a/mirzaev/vk/robot/bobby/system/settings/arangodb.php.template b/mirzaev/vk/robot/bobby/system/settings/bobby.php.template similarity index 100% rename from mirzaev/vk/robot/bobby/system/settings/arangodb.php.template rename to mirzaev/vk/robot/bobby/system/settings/bobby.php.template diff --git a/mirzaev/vk/robot/bobby/system/settings/vk.php.template b/mirzaev/vk/robot/bobby/system/settings/vk.php.template new file mode 100644 index 0000000..42c06d7 --- /dev/null +++ b/mirzaev/vk/robot/bobby/system/settings/vk.php.template @@ -0,0 +1,8 @@ + '', + 'database' => '', + 'name' => '', + 'password' => '' +];