Первая инициализция
This commit is contained in:
parent
fe5787fcd2
commit
eff0dfd7d4
|
@ -0,0 +1,3 @@
|
||||||
|
!.gitignore
|
||||||
|
composer.phar
|
||||||
|
vendor
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
index.php
|
|
@ -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);
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
arangodb.php
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'endpoint' => '',
|
||||||
|
'database' => '',
|
||||||
|
'name' => '',
|
||||||
|
'password' => ''
|
||||||
|
];
|
Loading…
Reference in New Issue