Первая инициализция

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2022-11-08 09:55:01 +10:00
parent fe5787fcd2
commit eff0dfd7d4
7 changed files with 1274 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
!.gitignore
composer.phar
vendor

55
composer.json Normal file
View File

@ -0,0 +1,55 @@
{
"name": "mirzaev/vk-robot-bobby",
"description": "Бобби Мирзаев - чат-робот ВКонтакте для проведения ролевых игр",
"readme": "README.md",
"keywords": [
"Bobby",
"Mirzaev",
"vk",
"chat-robot",
"roleplay"
],
"type": "robot",
"license": "WTFPL",
"homepage": "https://git.mirzaev.sexy/mirzaev/vk-robot-bobby",
"authors": [
{
"name": "Arsen Mirzaev Tatyano-Muradovich",
"email": "arsen@mirzaev.sexy",
"homepage": "https://hood.su/mirzaev",
"role": "Father"
}
],
"support": {
"email": "arsen@mirzaev.sexy",
"wiki": "https://git.mirzaev.sexy/mirzaev/vk-robot-bobby/wiki",
"issues": "https://git.mirzaev.sexy/mirzaev/vk-robot-bobby/issues",
"chat": "https://vk.me/bobby.mirzaev.sexy"
},
"funding": [
{
"type": "funding",
"url": "https://fund.mirzaev.sexy"
}
],
"minimum-stability": "dev",
"require": {
"php": "^8.1",
"triagens/arangodb": "~3.8",
"guzzlehttp/guzzle": "^7.4",
"mirzaev/arangodb": "^1.0",
"mirzaev/vk": "^4.2",
"mirzaev/vk-arangodb": "^1.0.1",
"mirzaev/vk-chat": "^1.0"
},
"autoload": {
"psr-4": {
"mirzaev\\vk\\robot\\bobby\\": "mirzaev/vk/robot/bobby/system"
}
},
"autoload-dev": {
"psr-4": {
"mirzaev\\vk\\robot\\bobby\\tests\\": "mirzaev/vk/robot/bobby/tests"
}
}
}

1137
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
index.php

View File

@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
// Фреймворк ВКонтакте
use mirzaev\vk\core,
mirzaev\vk\api\longpoll;
// Фреймворк ArangoDB
use mirzaev\arangodb\connection;
// Модуль ArangoDB для фреймворка ВКонтакте
use mirzaev\vk\arangodb\longpoll as database;
// Модуль чат-робота для фреймворка ВКонтакте
use mirzaev\vk\chat\core as chat,
mirzaev\vk\chat\command;
// Инициализация
defined('SYSTEM_PATH_ROOT') or define('SYSTEM_PATH_ROOT', __DIR__ . '/../');
defined('SYSTEM_PATH_PUBLIC') or define('SYSTEM_PATH_PUBLIC', __DIR__);
// Подключение автозагрузчика
require SYSTEM_PATH_ROOT . '../../../../../vendor/autoload.php';
// Инициализация ядра
$core = core::init();
// Инициализция робота
$robot = $core->group('group id here')->key('group key here');
// Инициализация обработчика LongPoll API
$longpoll = new longpoll($robot);
// Инициализация базы данных
$database = new database(new connection(require SYSTEM_PATH_ROOT . 'settings/arangodb.php'));
// Очистка базы данных (тестирование)
$database->truncate();
// Инициализация модуля "чат-робот"
$chat = new chat;
// Инициализация команды "ролевое действие"
$chat->pattern('/\*([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) {
}
// Инициализация данных отправителя
$sender = $robot->user()->get($update['object']['message']['from_id']);
// Отправка ответа
$robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name) $text");
}));
$longpoll->handle(function (array $update) use ($robot, $database, $chat) {
// Обработка события
// var_dump($update);
// Сохранение события в базе данных
// $database->save($update);
// Обработка команды
$chat->handle($update);
});

View File

@ -0,0 +1 @@
arangodb.php

View File

@ -0,0 +1,8 @@
<?php
return [
'endpoint' => '',
'database' => '',
'name' => '',
'password' => ''
];