Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
23c2ea2
Добавлена модель пользователя в фасад и входящее сообщение
H0pex Oct 22, 2022
61432f7
Добавлены все поля профиля пользователя с зависимостями стран и город…
H0pex Oct 23, 2022
8c15f21
Оптимизированы поля пользователя, добавлены 3 метода API
H0pex Oct 24, 2022
7e63bd7
Оптимизированы импорты
H0pex Oct 24, 2022
93adc6a
Поля страны и города перенесены из Users в Database
H0pex Oct 24, 2022
4e43ba5
Оптимизирован импорт
H0pex Oct 24, 2022
95a4a4d
Подготовка к ORG-3: External // Groups
H0pex Oct 25, 2022
515a13f
Merge pull request #1 from H0pex/feature/GroupsMethods
H0pex Oct 25, 2022
094921f
Инициализация ORG-3: External // Groups
H0pex Oct 25, 2022
af465c6
Добавлены все методы секции Database
H0pex Oct 28, 2022
fa1cde9
Merge pull request #2 from Hopex-Development/feature/Database
H0pex Oct 29, 2022
fb71674
Исправлены тесксты Callback исключений
H0pex Oct 29, 2022
c50b0fd
Merge pull request #3 from Hopex-Development/hotfix/ORG-10
H0pex Oct 29, 2022
4f989fe
Плановый рефакторинг
H0pex Oct 30, 2022
2189869
Изменена логика объявления параметров запроса на фасадную
H0pex Oct 31, 2022
f56c9c0
Merge pull request #4 from Hopex-Development/feature/ORG-12
H0pex Oct 31, 2022
fa9ec1d
Исправлен допуск пустого значения для идентификатора события в таблиц…
H0pex Jan 3, 2023
5078c6c
Промежуточная фиксация. Рефакторинг исключений
H0pex Jan 3, 2023
2403cc6
Исправлен фасад форматирования. Закончен рефакторинг исключений. Доба…
H0pex Jan 4, 2023
4eca36a
Исправлен баг с SSL сертифиатом. Добавлена динамическая иницилизация …
H0pex Jan 4, 2023
acdc7d8
Добавлена обработка запросов сервера со статистикой и простой вывод с…
H0pex Jan 7, 2023
d10c406
Исправлен формат вывода статистики сервера
H0pex Jan 7, 2023
3e839c2
Added xpaw library to composer
H0pex Jan 7, 2023
db3dc5e
Добавлен вывод мутов, банов, небольшая оптимизация обращений к серверу
H0pex Jan 7, 2023
f984fab
Добавлены таблицы для дальнейшего перехода на БД
H0pex Jan 7, 2023
f9e2ac6
Readme file has been updated (badges and description)
H0pex Jan 8, 2023
722b1c7
Added laravel version to readme
H0pex Jan 8, 2023
75a3f62
Description updated
H0pex Jan 8, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MIT License

> Copyright (c) 2022 [Schizo](https://vk.com/id244036703), [AnnieNiku](https://vk.com/id116596882)
> Copyright (c) 2022 [Schizo](https://vk.com/id244036703), translated by [AnnieNiku](https://vk.com/id116596882)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
65 changes: 31 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,47 @@
<p align="center">
<img src="https://packages-api.hopex.ru/packages/laravel-vk-sdk/logo.png" width="100%" alt="Laravel VK API SDK Logo">
<img src="https://packages-api.hopex.ru/storage/vk-api-sdk/banner.png" width="100%" alt="Laravel VK API SDK Logo">
</p>

# <span style="color:#F55D5C">Laravel</span> <span style="font-size:1rem">VK API SDK</span>

<p>
<img alt="Version Badge" src="https://img.shields.io/endpoint?url=https://packages-api.hopex.ru/laravel-vk-sdk/badges/version/package">
<img alt="VK Badge" src="https://img.shields.io/endpoint?url=https://packages-api.hopex.ru/laravel-vk-sdk/badges/version/api">
<img alt="PHP Badge" src="https://img.shields.io/endpoint?url=https://packages-api.hopex.ru/laravel-vk-sdk/badges/version/php">
<img alt="Laravel Badge" src="https://img.shields.io/endpoint?url=https://packages-api.hopex.ru/laravel-vk-sdk/badges/version/laravel">
<img alt="License Badge" src="https://img.shields.io/endpoint?url=https://packages-api.hopex.ru/laravel-vk-sdk/badges/license">
<p align="center">
<img alt="Downloads" src="https://packages-api.hopex.ru/api/vk-api-sdk/packagist/hopex/downloads">
<img alt="Stars" src="https://packages-api.hopex.ru/api/vk-api-sdk/packagist/hopex/stars">
<img alt="Laravel" src="https://packages-api.hopex.ru/api/vk-api-sdk/version/laravel">
<img alt="PHP" src="https://packages-api.hopex.ru/api/vk-api-sdk/version/php">
<img alt="License" src="https://packages-api.hopex.ru/api/vk-api-sdk/license">
</p>

[Laravel](https://github.com/laravel/laravel) библиотека для упрощенного использования API модулей социальной сети ВКонтакте.
Предназначена для быстрого развертывания приложений-ботов, а также использования VK API в одностороннем порядке.
# About
The VK API SDK library is developed for the Laravel framework, it will allow you to use most of the modules of the VKontakte social network simply.
We have linked VKontakte entities to each other in such a way that you can quickly build the subqueries.
The library provides a good foundation for deploying complex bots and includes the following functionality:
- Simple and quick confirmation of the Callback server: routes have already been created
- Processing community events (new message, wall post, etc.)
- Sending messages of various types to personal and group chats
- Adding censorship to messages and player names sent from the game server
- Integration with game servers (SourceQuery)
- The use of an unlimited number of communities and game servers

### Содержание
* [Приступая к работе](#Приступая к работе)
* [Установка](#Установка)
* [Внутренние зависимости](#Внутренние зависимости)
* [Лицензия](#license)

## Приступая к работе
# Installing

1. Run the command using [composer](https://getcomposer.org/):

### Установка
Установка пакета через [composer](https://getcomposer.org/):
```
composer require hopex/vk-api-sdk
composer req hopex/vk-api-sdk
```

#### Внутренние зависимости
Публикация зависимостей:
2. Publish resources:

```
php artisan vendor:publish --provider=Hopex\VkSdk\Providers\ServiceProvider --tag=vk-sdk-config --tag=vk-sdk-lang
php artisan vendor:publish --tag=vk-sdk-config --tag=vk-sdk-lang --tag=vk-sdk-sources
```

Провайдер и фасады будут автоматически зарегистрированы, однако вы можете вручную добавить их в `config/app.php`.
```php
'providers' => [
// ...
Hopex\VkApiSdk\Providers\VkApiSdkServiceProvider::class,
],
'aliases' => Facade::defaultAliases()->merge([
// ...
'VkApiSdk' => \Hopex\VkApiSdk\Facade::class,
])->toArray(),
3. Migrate the necessary tables:

```
php artisan migrate
```

# Лицензия <span style="font-size: 1rem">[MIT](https://github.com/H0pex/vk-api-sdk/LICENSE)</span>
## License

The VK API SDK for Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
23 changes: 15 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
{
"name": "hopex/laravel-vk-sdk",
"description": "Laravel SDK для быстрого развертывания приложений-ботов и простого использования VK API.",
"description": "Laravel SDK for fast deployment of bot applications and easy use of VK API.",
"type": "library",
"license": "MIT",
"version": "0.0.2",
"keywords": ["php", "laravel", "vk", "api", "sdk"],
"keywords": [
"php",
"laravel",
"vk",
"api",
"sdk"
],
"authors": [
{
"name": "Schizo",
"email": "hopex.schizo@gmail.com",
"homepage": "https://github.com/H0pex"
}
],
"repository": "https://github.com/Hopex-Development/laravel-vk-sdk",
"require": {
"php": "^7.4||^8",
"ext-json": "*"
},
"require-dev": {
"php": "^8",
"ext-json": "*",
"xpaw/php-source-query-class": "^2.1"
},
"autoload": {
"psr-4": {
Expand All @@ -29,9 +35,10 @@
"Hopex\\VkSdk\\Providers\\ServiceProvider"
],
"aliases": {
"Group": "Hopex\\VkSdk\\Facades\\Group",
"VkApi": "Hopex\\VkSdk\\Facades\\VkApi",
"Format": "Hopex\\VkSdk\\Facades\\Format",
"Configure": "Hopex\\VkSdk\\Facades\\Configure"
"SdkConfig": "Hopex\\VkSdk\\Facades\\SdkConfig",
"RequestFields": "Hopex\\VkSdk\\Facades\\RequestFields"
}
}
},
Expand Down
151 changes: 98 additions & 53 deletions src/.root/config/vk-sdk.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
<?php /** @noinspection GrazieInspection */
<?php

use App\VK\Kult\EventsMapper;
use App\VK\Kult\RequestsMapper;
use App\VK\Tests;
use Hopex\VkSdk\Formatters\JsonLogFormatter;

return [

Expand All @@ -13,7 +18,8 @@
*/

'routes' => [
'entry' => 'connect',
'group' => 'callbacks',
'server' => 'requests',
],

/*
Expand Down Expand Up @@ -56,22 +62,76 @@

// TODO: исправить документацию для api и groups
'api' => [
'endpoint' => 'https://api.vk.com/method/',
'version' => '5.131',
'auth' => 'https://oauth.vk.com',
'endpoint' => 'https://api.vk.com/method',
'version' => '5.131',
],

'replacement' => [
'replace_to' => '(🚫)',
'forbidden' => [
'(@)',
'(\*)',
'(http)',
'(\.com)',
'(\.de)',
'(\.net)',
'(\.uk)',
'(\.cn)',
'(\.org)',
'(\.info)',
'(\.nl)',
'(\.eu)',
'(\.ru)',
'(\.co\.uk)',
'(\.me\.uk)',
'(\.org\.uk)',
'(\.sch\.uk)',
],
],

'groups' => [
'84942932' => [
84942932 => [
'description' => 'Test service',
'confirmation' => '28ec36c3',
'token' => 'vk1.a.-U95XUjpt2OxcSqyPydks69FwG1fAHxY5CF7pUFC-d0oG9bY4ld2HO23VQCBF8xbrS2gLDE2QXyLSH6jsCaGw5lGc2M-n8aAbwToCGLp97LiS5Lf3Ha1En3LQshkdLlZkqKS80METKyr_3nSIBF4GJLAxZNvnSd12hXe3PYZAG0oTIkVPgdguVrbs8EEcAGv',
'secret' => [
'code' => '745cc77d276cf36c694e',
'verify' => true,
],
'events' => \App\VK\Chat::class
'server_peer_id' => 0,
'target_server' => '',
'events' => Tests::class,
'allow_retry_events' => true,
],
205402271 => [
'description' => 'Kult Game Project',
'confirmation' => '1129612b',
'token' => 'vk1.a.j-mrHaaBmC8Uq_GlAqwVjG2UALgWLYFqkq-Wgr2bGlO7LHZmT5km24yi2EZU2op1sAD4NHcFq2_KPo3IEwZCvMlywO6whuI8i00kFXBTM-w0lI1RVD534whyOPLZMoCoB2JMH12no5EC7dMUa3Jd63uc1DOlCKTV8GJQi2DG2piDsv_OfC3nrKBy0DQa3q-tr6Ei6HIZ-OW5EZaOw37nNg',
'secret' => [
'code' => 'ymUrvxeTHfUyRtdK',
'verify' => true,
],
'server_peer_id' => 2000000002,
'target_server' => '46.3.223.76:27015',
'events_handler' => EventsMapper::class,
'allow_retry_events' => true
],
],

'servers' => [
'46-3-223-76-27015' => [
'target_group_id' => 205402271,
'rcon_password' => 'Nr8v6uxuCL8cA5NOx43cypz0DuaqCGP',
'requests_handler' => RequestsMapper::class
],
],

'auth_app' => [
'token' => 'b89c4892b89c4892b89c4892aeb8e5dc9fbb89cb89c4892d9c7b14801fb3358d6dcd092',
'secret' => 'OaQA1ddYuF2PLGAGKOjd',
],

/*
|--------------------------------------------------------------------------
| Логирование
Expand All @@ -91,60 +151,45 @@
'enabled' => true,
'channels' => [
'exception' => [
'name' => 'vk-sdk',
'name' => 'vk-sdk-exception',
'driver' => 'daily',
'path' => storage_path('logs/vk-sdk/exceptions.log'),
'level' => env('LOG_LEVEL', 'debug'),
'permissions' => 0755,
'locking' => true,
'days' => 30,
'tap' => \Hopex\VkSdk\Formatters\JsonLogFormatter::class,
'tap' => JsonLogFormatter::class,
],
'info' => [
'name' => 'vk-sdk-infos',
'driver' => 'daily',
'path' => storage_path('logs/vk-sdk/infos.log'),
'level' => env('LOG_LEVEL', 'debug'),
'permissions' => 0755,
'locking' => true,
'days' => 30,
'tap' => JsonLogFormatter::class,
],
'source' => [
'name' => 'vk-sdk-sources',
'driver' => 'daily',
'path' => storage_path('logs/vk-sdk/sources.log'),
'level' => env('LOG_LEVEL', 'debug'),
'permissions' => 0755,
'locking' => true,
'days' => 30,
'tap' => JsonLogFormatter::class,
],
'server' => [
'name' => 'vk-sdk-server',
'driver' => 'daily',
'path' => storage_path('logs/vk-sdk/server.log'),
'level' => env('LOG_LEVEL', 'debug'),
'permissions' => 0755,
'locking' => true,
'days' => 30,
'tap' => JsonLogFormatter::class,
],
],
],

/*
|--------------------------------------------------------------------------
| Базовые коды ошибок
|--------------------------------------------------------------------------
*/

'errors' => [
'1' => \Hopex\VkSdk\Exceptions\Api\Common\UnknownException::class,
'2' => \Hopex\VkSdk\Exceptions\Api\Common\DisabledException::class,
'3' => \Hopex\VkSdk\Exceptions\Api\Methods\MethodException::class,
'4' => \Hopex\VkSdk\Exceptions\Api\Common\SignatureException::class,
'5' => \Hopex\VkSdk\Exceptions\Api\Auth\AuthException::class,
'6' => \Hopex\VkSdk\Exceptions\Api\Common\TooManyException::class,
'7' => \Hopex\VkSdk\Exceptions\Api\Common\PermissionException::class,
'8' => \Hopex\VkSdk\Exceptions\Api\Common\RequestException::class,
'9' => \Hopex\VkSdk\Exceptions\Api\Common\FloodException::class,
'10' => \Hopex\VkSdk\Exceptions\Api\Common\ServerException::class,
'11' => \Hopex\VkSdk\Exceptions\Api\Common\EnabledInTestException::class,
'14' => \Hopex\VkSdk\Exceptions\Api\Common\CaptchaException::class,
'15' => \Hopex\VkSdk\Exceptions\Api\Accesses\AccessException::class,
'16' => \Hopex\VkSdk\Exceptions\Api\Auth\AuthHttpsException::class,
'17' => \Hopex\VkSdk\Exceptions\Api\Auth\AuthValidationException::class,
'18' => \Hopex\VkSdk\Exceptions\Api\Common\UserDeletedException::class,
'20' => \Hopex\VkSdk\Exceptions\Api\Methods\MethodPermissionException::class,
'21' => \Hopex\VkSdk\Exceptions\Api\Methods\MethodAdsException::class,
'23' => \Hopex\VkSdk\Exceptions\Api\Methods\MethodDisabledException::class,
'24' => \Hopex\VkSdk\Exceptions\Api\Confirmation\NeedConfirmationException::class,
'25' => \Hopex\VkSdk\Exceptions\Api\Confirmation\NeedTokenConfirmationException::class,
'27' => \Hopex\VkSdk\Exceptions\Api\Groups\GroupAuthException::class,
'28' => \Hopex\VkSdk\Exceptions\Api\Apps\AppAuthException::class,
'29' => \Hopex\VkSdk\Exceptions\Api\Common\RateLimitException::class,
'30' => \Hopex\VkSdk\Exceptions\Api\Common\PrivateProfileException::class,
'100' => \Hopex\VkSdk\Exceptions\Api\Parameters\ParamException::class,
'101' => \Hopex\VkSdk\Exceptions\Api\Parameters\ParamApiIdException::class,
'113' => \Hopex\VkSdk\Exceptions\Api\Parameters\ParamUserIdException::class,
'150' => \Hopex\VkSdk\Exceptions\Api\Parameters\ParamTimestampException::class,
'200' => \Hopex\VkSdk\Exceptions\Api\Accesses\AccessAlbumException::class,
'201' => \Hopex\VkSdk\Exceptions\Api\Accesses\AccessAudioException::class,
'203' => \Hopex\VkSdk\Exceptions\Api\Accesses\AccessGroupException::class,
'300' => \Hopex\VkSdk\Exceptions\Api\Albums\AlbumFullException::class,
'500' => \Hopex\VkSdk\Exceptions\Api\Votes\VotesPermissionException::class,
'600' => \Hopex\VkSdk\Exceptions\Api\Ads\AdsPermissionException::class,
'603' => \Hopex\VkSdk\Exceptions\Api\Ads\AdsSpecificException::class,
]
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
/**
* @return void
*/
public function up(): void
{
Schema::create('vk_events', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('group_id');
$table->string('type');
$table->string('event_id')->unique()->nullable();
$table->timestamps();
});
}

/**
* @return void
*/
public function down(): void
{
Schema::dropIfExists('vk_events');
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

use Hopex\VkSdk\Models\Server;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
/**
* @return void
*/
public function up(): void
{
Schema::create('servers', function (Blueprint $table) {
$table->id();
$table->string('ip');
$table->unsignedInteger('port');
$table->string('rcon_password');
$table->timestamps();
});
}

/**
* @return void
*/
public function down(): void
{
Schema::dropIfExists('servers');
}
};
Loading