Доработано под новый класс api, исправленны ошибки.

This commit is contained in:
tarashyanskiy 2021-02-25 11:17:24 +08:00
parent e535c7cbce
commit 701082644e
10 changed files with 283 additions and 394 deletions

187
composer.lock generated
View File

@ -84,10 +84,6 @@
"rest", "rest",
"web service" "web service"
], ],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.2.0"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/GrahamCampbell", "url": "https://github.com/GrahamCampbell",
@ -157,10 +153,6 @@
"keywords": [ "keywords": [
"promise" "promise"
], ],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/1.4.0"
},
"time": "2020-09-30T07:37:28+00:00" "time": "2020-09-30T07:37:28+00:00"
}, },
{ {
@ -232,10 +224,6 @@
"uri", "uri",
"url" "url"
], ],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.7.0"
},
"time": "2020-09-30T07:37:11+00:00" "time": "2020-09-30T07:37:11+00:00"
}, },
{ {
@ -280,11 +268,6 @@
"hood", "hood",
"vk" "vk"
], ],
"support": {
"chat": "https://vk.me/darkweb228",
"docs": "https://git.hood.su/hood/accounts/manual",
"issues": "https://git.hood.su/hood/accounts/issues"
},
"funding": [ "funding": [
{ {
"url": "https://git.hood.su/hood/accounts/thanks", "url": "https://git.hood.su/hood/accounts/thanks",
@ -339,10 +322,6 @@
"exception handler", "exception handler",
"middleware" "middleware"
], ],
"support": {
"issues": "https://github.com/jasny/error-handler/issues",
"source": "https://github.com/jasny/error-handler"
},
"abandoned": true, "abandoned": true,
"time": "2017-01-25T01:27:18+00:00" "time": "2017-01-25T01:27:18+00:00"
}, },
@ -416,10 +395,6 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/1.26.0"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/Seldaek", "url": "https://github.com/Seldaek",
@ -479,9 +454,6 @@
"psr", "psr",
"psr-18" "psr-18"
], ],
"support": {
"source": "https://github.com/php-fig/http-client/tree/master"
},
"time": "2020-06-29T06:28:15+00:00" "time": "2020-06-29T06:28:15+00:00"
}, },
{ {
@ -532,9 +504,6 @@
"request", "request",
"response" "response"
], ],
"support": {
"source": "https://github.com/php-fig/http-message/tree/master"
},
"time": "2016-08-06T14:39:51+00:00" "time": "2016-08-06T14:39:51+00:00"
}, },
{ {
@ -582,9 +551,6 @@
"psr", "psr",
"psr-3" "psr-3"
], ],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.3"
},
"time": "2020-03-23T09:12:05+00:00" "time": "2020-03-23T09:12:05+00:00"
}, },
{ {
@ -625,10 +591,6 @@
} }
], ],
"description": "A polyfill for getallheaders.", "description": "A polyfill for getallheaders.",
"support": {
"issues": "https://github.com/ralouphie/getallheaders/issues",
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
"time": "2019-03-08T08:55:37+00:00" "time": "2019-03-08T08:55:37+00:00"
} }
], ],
@ -682,10 +644,6 @@
"constructor", "constructor",
"instantiate" "instantiate"
], ],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
},
"funding": [ "funding": [
{ {
"url": "https://www.doctrine-project.org/sponsorship.html", "url": "https://www.doctrine-project.org/sponsorship.html",
@ -748,10 +706,6 @@
"object", "object",
"object graph" "object graph"
], ],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
},
"funding": [ "funding": [
{ {
"url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
@ -810,10 +764,6 @@
"parser", "parser",
"php" "php"
], ],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4"
},
"time": "2020-12-20T10:01:03+00:00" "time": "2020-12-20T10:01:03+00:00"
}, },
{ {
@ -870,10 +820,6 @@
} }
], ],
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
"source": "https://github.com/phar-io/manifest/tree/master"
},
"time": "2020-06-27T14:33:11+00:00" "time": "2020-06-27T14:33:11+00:00"
}, },
{ {
@ -921,10 +867,6 @@
} }
], ],
"description": "Library for handling version information and constraints", "description": "Library for handling version information and constraints",
"support": {
"issues": "https://github.com/phar-io/version/issues",
"source": "https://github.com/phar-io/version/tree/3.0.4"
},
"time": "2020-12-13T23:18:30+00:00" "time": "2020-12-13T23:18:30+00:00"
}, },
{ {
@ -974,10 +916,6 @@
"reflection", "reflection",
"static analysis" "static analysis"
], ],
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
},
"time": "2020-06-27T09:03:43+00:00" "time": "2020-06-27T09:03:43+00:00"
}, },
{ {
@ -1030,10 +968,6 @@
} }
], ],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
},
"time": "2020-09-03T19:13:55+00:00" "time": "2020-09-03T19:13:55+00:00"
}, },
{ {
@ -1079,10 +1013,6 @@
} }
], ],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
},
"time": "2020-09-17T18:55:26+00:00" "time": "2020-09-17T18:55:26+00:00"
}, },
{ {
@ -1146,10 +1076,6 @@
"spy", "spy",
"stub" "stub"
], ],
"support": {
"issues": "https://github.com/phpspec/prophecy/issues",
"source": "https://github.com/phpspec/prophecy/tree/1.12.2"
},
"time": "2020-12-19T10:15:11+00:00" "time": "2020-12-19T10:15:11+00:00"
}, },
{ {
@ -1217,10 +1143,6 @@
"testing", "testing",
"xunit" "xunit"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1277,10 +1199,6 @@
"filesystem", "filesystem",
"iterator" "iterator"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1340,10 +1258,6 @@
"keywords": [ "keywords": [
"process" "process"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
"source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1399,10 +1313,6 @@
"keywords": [ "keywords": [
"template" "template"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
"source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1458,10 +1368,6 @@
"keywords": [ "keywords": [
"timer" "timer"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
"source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1472,16 +1378,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.1", "version": "9.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4",
"reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1557,10 +1463,6 @@
"testing", "testing",
"xunit" "xunit"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1"
},
"funding": [ "funding": [
{ {
"url": "https://phpunit.de/donate.html", "url": "https://phpunit.de/donate.html",
@ -1571,7 +1473,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-01-17T07:42:25+00:00" "time": "2021-02-02T14:45:58+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -1617,10 +1519,6 @@
], ],
"description": "Library for parsing CLI options", "description": "Library for parsing CLI options",
"homepage": "https://github.com/sebastianbergmann/cli-parser", "homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1673,10 +1571,6 @@
], ],
"description": "Collection of value objects that represent the PHP code units", "description": "Collection of value objects that represent the PHP code units",
"homepage": "https://github.com/sebastianbergmann/code-unit", "homepage": "https://github.com/sebastianbergmann/code-unit",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
"source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1728,10 +1622,6 @@
], ],
"description": "Looks up which function or method a line of code belongs to", "description": "Looks up which function or method a line of code belongs to",
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
"source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1802,10 +1692,6 @@
"compare", "compare",
"equality" "equality"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1859,10 +1745,6 @@
], ],
"description": "Library for calculating the complexity of PHP code units", "description": "Library for calculating the complexity of PHP code units",
"homepage": "https://github.com/sebastianbergmann/complexity", "homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1925,10 +1807,6 @@
"unidiff", "unidiff",
"unified diff" "unified diff"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -1988,10 +1866,6 @@
"environment", "environment",
"hhvm" "hhvm"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2065,10 +1939,6 @@
"export", "export",
"exporter" "exporter"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2129,10 +1999,6 @@
"keywords": [ "keywords": [
"global state" "global state"
], ],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
"source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2186,10 +2052,6 @@
], ],
"description": "Library for counting the lines of code in PHP source code", "description": "Library for counting the lines of code in PHP source code",
"homepage": "https://github.com/sebastianbergmann/lines-of-code", "homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
"source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2243,10 +2105,6 @@
], ],
"description": "Traverses array structures and object graphs to enumerate all referenced objects", "description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/", "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
"source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2298,10 +2156,6 @@
], ],
"description": "Allows reflection of object attributes, including inherited and non-public ones", "description": "Allows reflection of object attributes, including inherited and non-public ones",
"homepage": "https://github.com/sebastianbergmann/object-reflector/", "homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
"source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2361,10 +2215,6 @@
], ],
"description": "Provides functionality to recursively process PHP variables", "description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context", "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
"source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2416,10 +2266,6 @@
], ],
"description": "Provides a list of PHP built-in functions that operate on resources", "description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations", "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
"issues": "https://github.com/sebastianbergmann/resource-operations/issues",
"source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2472,10 +2318,6 @@
], ],
"description": "Collection of value objects that represent the types of the PHP type system", "description": "Collection of value objects that represent the types of the PHP type system",
"homepage": "https://github.com/sebastianbergmann/type", "homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2525,10 +2367,6 @@
], ],
"description": "Library that helps with managing the version number of Git-hosted PHP projects", "description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version", "homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
"source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
@ -2539,7 +2377,7 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.22.0", "version": "v1.22.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
@ -2597,9 +2435,6 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@ -2654,10 +2489,6 @@
} }
], ],
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/master"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/theseer", "url": "https://github.com/theseer",
@ -2713,10 +2544,6 @@
"check", "check",
"validate" "validate"
], ],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.9.1"
},
"time": "2020-07-08T17:02:28+00:00" "time": "2020-07-08T17:02:28+00:00"
} }
], ],
@ -2731,5 +2558,5 @@
"php": "~8.0" "php": "~8.0"
}, },
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.0.0" "plugin-api-version": "1.1.0"
} }

View File

@ -16,6 +16,7 @@ use GuzzleHttp\Promise\Each;
* *
* @var robot $robot Робот * @var robot $robot Робот
* @var array $settings Настройки * @var array $settings Настройки
* @var float $version Версия API
*/ */
class api implements ArrayAccess class api implements ArrayAccess
{ {
@ -24,7 +25,8 @@ class api implements ArrayAccess
*/ */
public function __construct( public function __construct(
protected robot $robot, protected robot $robot,
protected array $settings = [] protected array $settings = [],
protected float $version = 5.124
) { ) {
if (empty($settings)) { if (empty($settings)) {
// Настройки не получены // Настройки не получены
@ -81,7 +83,7 @@ class api implements ArrayAccess
$this->settings['access_token'] = $this->robot->key; $this->settings['access_token'] = $this->robot->key;
// Версия API // Версия API
$this->settings['v'] = $this->robot->version; $this->settings['v'] = $this->version;
} }
/** /**
@ -189,4 +191,3 @@ class api implements ArrayAccess
} }
} }
} }
}

View File

@ -11,13 +11,13 @@ use hood\vk\core,
/** /**
* LongPoll * LongPoll
* *
* $key Ключ к серверу * @property string $key Ключ к серверу
* $server Сервер * @property string $server Сервер
* $ts Идентификатор последнего события * @property string $ts Идентификатор последнего события
* *
* public function __construct(object $robot) Инициализация * @method public function __construct(object $robot) Инициализация
* public function get(int $wait = 25) Получить события * @method public function get(int $wait = 25) Получить события
* public function handle(callable $function, int $wait = 25) Обработать события * @method public function handle(callable $function, int $wait = 25) Обработать события
* *
* @see https://vk.com/dev/bots_longpoll * @see https://vk.com/dev/bots_longpoll
* @see https://vk.com/dev/groups.getLongPollServer * @see https://vk.com/dev/groups.getLongPollServer
@ -34,6 +34,8 @@ final class longpoll
* Ключ к серверу * Ключ к серверу
* *
* @see $this->get() * @see $this->get()
*
* @var string
*/ */
private string $key; private string $key;
@ -41,6 +43,8 @@ final class longpoll
* Сервер (URL) * Сервер (URL)
* *
* @see $this->get() * @see $this->get()
*
* @var string
*/ */
private string $server; private string $server;
@ -50,13 +54,15 @@ final class longpoll
* От него отсчитываются новые, необработанные события * От него отсчитываются новые, необработанные события
* *
* @see $this->get() * @see $this->get()
*
* @var string
*/ */
private string $ts; private string $ts;
/** /**
* Инициализация * Инициализация
* *
* $robot Робот * @param robot $robot Робот
*/ */
public function __construct(private robot $robot) public function __construct(private robot $robot)
{ {
@ -84,24 +90,27 @@ final class longpoll
* *
* Полная настройка и активация LongPoll * Полная настройка и активация LongPoll
* *
* $status = true Активация или деактивация * @param bool $status = true Активация или деактивация
* ...$params Изменяемые параметры * @param string ...$params Изменяемые параметры
*
* @return array
*/ */
public function post(bool $status = true, string ...$params): array public function post(bool $status = true, string ...$params): array
{ {
// Инициализация настроек // Реиницилазиция
$settings = [ $this->robot->api->reinit();
'group_id' => $this->robot->id,
'access_token' => $this->robot->key,
'v' => $this->robot->version,
'api_version' => $this->robot->version
];
if ($status === true && !array_key_exists('enabled', $settings)) { // Инициализация настроек
$this->robot->api['group_id'] = $this->robot->id;
$this->robot->api['access_token'] = $this->robot->key;
$this->robot->api['v'] = $this->robot->version;
$this->robot->api['api_version'] = $this->robot->version;
if ($status === true && !array_key_exists('enabled', $this->robot->api['settings'])) {
// Если запущена активация и не был передан параметр статуса LongPoll // Если запущена активация и не был передан параметр статуса LongPoll
// Установка параметра активации LongPoll // Установка параметра активации LongPoll
$settings['enabled'] = 1; $this->robot->api['enabled'] = 1;
} }
// Установка переданных параметров // Установка переданных параметров
@ -118,77 +127,80 @@ final class longpoll
// Если параметр не указывает на установку всех значений // Если параметр не указывает на установку всех значений
// Установка значения // Установка значения
$settings[$param] = $status; $this->robot->api[$param] = $status;
} else { } else {
// Иначе установить все значения // Иначе установить все значения
// Если передан параметр: установка ВСЕХ значений // Если передан параметр: установка ВСЕХ значений
$settings['message_new'] = $status; $this->robot->api['message_new'] = $status;
$settings['message_reply'] = $status; $this->robot->api['message_reply'] = $status;
$settings['message_allow'] = $status; $this->robot->api['message_allow'] = $status;
$settings['message_deny'] = $status; $this->robot->api['message_deny'] = $status;
$settings['message_edit'] = $status; $this->robot->api['message_edit'] = $status;
$settings['message_typing_state'] = $status; $this->robot->api['message_typing_state'] = $status;
$settings['photo_new'] = $status; $this->robot->api['photo_new'] = $status;
$settings['audio_new'] = $status; $this->robot->api['audio_new'] = $status;
$settings['video_new'] = $status; $this->robot->api['video_new'] = $status;
$settings['wall_reply_new'] = $status; $this->robot->api['wall_reply_new'] = $status;
$settings['wall_reply_edit'] = $status; $this->robot->api['wall_reply_edit'] = $status;
$settings['wall_reply_delete'] = $status; $this->robot->api['wall_reply_delete'] = $status;
$settings['wall_reply_restore'] = $status; $this->robot->api['wall_reply_restore'] = $status;
$settings['wall_post_new'] = $status; $this->robot->api['wall_post_new'] = $status;
$settings['wall_repost'] = $status; $this->robot->api['wall_repost'] = $status;
$settings['board_post_new'] = $status; $this->robot->api['board_post_new'] = $status;
$settings['board_post_edit'] = $status; $this->robot->api['board_post_edit'] = $status;
$settings['board_post_restore'] = $status; $this->robot->api['board_post_restore'] = $status;
$settings['board_post_delete'] = $status; $this->robot->api['board_post_delete'] = $status;
$settings['photo_comment_new'] = $status; $this->robot->api['photo_comment_new'] = $status;
$settings['photo_comment_edit'] = $status; $this->robot->api['photo_comment_edit'] = $status;
$settings['photo_comment_delete'] = $status; $this->robot->api['photo_comment_delete'] = $status;
$settings['photo_comment_restore'] = $status; $this->robot->api['photo_comment_restore'] = $status;
$settings['video_comment_new'] = $status; $this->robot->api['video_comment_new'] = $status;
$settings['video_comment_edit'] = $status; $this->robot->api['video_comment_edit'] = $status;
$settings['video_comment_delete'] = $status; $this->robot->api['video_comment_delete'] = $status;
$settings['video_comment_restore'] = $status; $this->robot->api['video_comment_restore'] = $status;
$settings['market_comment_new'] = $status; $this->robot->api['market_comment_new'] = $status;
$settings['market_comment_edit'] = $status; $this->robot->api['market_comment_edit'] = $status;
$settings['market_comment_delete'] = $status; $this->robot->api['market_comment_delete'] = $status;
$settings['market_comment_restore'] = $status; $this->robot->api['market_comment_restore'] = $status;
$settings['poll_vote_new'] = $status; $this->robot->api['poll_vote_new'] = $status;
$settings['group_join'] = $status; $this->robot->api['group_join'] = $status;
$settings['group_leave'] = $status; $this->robot->api['group_leave'] = $status;
$settings['group_change_settings'] = $status; $this->robot->api['group_change_settings'] = $status;
$settings['group_change_photo'] = $status; $this->robot->api['group_change_photo'] = $status;
$settings['group_officers_edit'] = $status; $this->robot->api['group_officers_edit'] = $status;
$settings['user_block'] = $status; $this->robot->api['user_block'] = $status;
$settings['user_unblock'] = $status; $this->robot->api['user_unblock'] = $status;
$settings['like_add'] = $status; $this->robot->api['like_add'] = $status;
$settings['like_remove'] = $status; $this->robot->api['like_remove'] = $status;
$settings['message_event'] = $status; $this->robot->api['message_event'] = $status;
} }
} }
return $this->robot->browser->request(method: 'POST', uri: 'groups.setLongPollSettings', options: $settings); return $this->robot->browser->request(method: 'POST', uri: 'groups.setLongPollSettings', options: $this->robot->api['settings']);
} }
/** /**
* Получить события * Получить события
* *
* $wait Время ожидания новых событий (в секундах) * @param int $wait Время ожидания новых событий (в секундах)
*
* @return array
*/ */
public function get(int $wait = 25): array public function get(int $wait = 25): array
{ {
if (empty($this->key) || empty($this->server) || empty($this->ts)) { if (empty($this->key) || empty($this->server) || empty($this->ts)) {
// Если не инициализирован LongPoll-сервер // Если не инициализирован LongPoll-сервер
// Реиницилазиция
$this->robot->api->reinit();
// Инициализация настроек
$this->robot->api['group_id'] = $this->robot->id;
// Запрос на получение доступа и данных LongPoll-сервера // Запрос на получение доступа и данных LongPoll-сервера
$response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [ $response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [
'form_params' => [ 'form_params' => $this->robot->api['settings']
'group_id' => $this->robot->id,
'v' => $this->robot->version,
'access_token' => $this->robot->key
],
])->getBody()->getContents())->response; ])->getBody()->getContents())->response;
// Ключ доступа // Ключ доступа
@ -210,8 +222,10 @@ final class longpoll
* *
* Получает и обрабатывает события * Получает и обрабатывает события
* *
* $function Обработка * @param callable $function Обработка
* $wait Время ожидания новых событий (в секундах) * @param int $wait Время ожидания новых событий (в секундах)
*
* @return array
*/ */
public function handle(callable $function, int $wait = 25): array public function handle(callable $function, int $wait = 25): array
{ {

View File

@ -9,7 +9,7 @@ use hood\vk\robots\robot;
/** /**
* Сообщение * Сообщение
* *
* public static function put(RobotAbstract $from, int $to, string $message, int $mode = 2) Отправить сообщение * @method public static function put(RobotAbstract $from, int $to, string $message, int $mode = 2) Отправить сообщение
* *
* @see https://vk.com/dev/messages.send * @see https://vk.com/dev/messages.send
* @see https://vk.com/dev/messages.getById * @see https://vk.com/dev/messages.getById
@ -22,7 +22,7 @@ use hood\vk\robots\robot;
final class messages extends method final class messages extends method
{ {
/** /**
* $mode Режим отправки * @param int $mode Режим отправки
*/ */
protected int $mode = 1; protected int $mode = 1;
@ -31,10 +31,12 @@ final class messages extends method
* *
* Если переданы все параметры, то сразу отправляет * Если переданы все параметры, то сразу отправляет
* *
* $robot Робот * @param robot $robot Робот
* $message Текст * @param string $message Текст
* $destination Получатель * @param int|string|array|null $destination Получатель
* $attachments Вложения * @param array $attachments Вложения
*
* @return self
*/ */
public function __construct( public function __construct(
protected robot $robot, protected robot $robot,
@ -49,7 +51,7 @@ final class messages extends method
/** /**
* Отправить сообщение * Отправить сообщение
* *
* $destination Получатель * @param int|string|array $destination Получатель
* *
* @see https://vk.com/dev/messages.send * @see https://vk.com/dev/messages.send
* *
@ -90,22 +92,21 @@ final class messages extends method
if (!empty($forward_messages)) { if (!empty($forward_messages)) {
// Если есть пересылаемые сообщения // Если есть пересылаемые сообщения
$settings['forward_messages'] = implode(',', $forward_messages); $this->robot->api['forward_messages'] = implode(',', $forward_messages);
} }
//var_dump($attachments); //var_dump($attachments);
if (!empty($this->attachments)) { if (!empty($this->attachments)) {
// Если есть вложения // Если есть вложения
//echo 'lol'; //echo 'lol';
$settings['attachment'] = implode(',', $this->attachments); $this->robot->api['attachment'] = implode(',', $this->attachments);
//var_dump($settings['attachment']);
} }
// Запрос // Запрос
$request = $this->robot->browser->request(method: 'POST', uri: 'messages.send', options: ['form_params' => $settings]); $request = $this->robot->browser->request(method: 'POST', uri: 'messages.send', options: ['form_params' => $this->robot->api['settings']]);
// Очистка // Очистка
unset($settings); //unset($settings);
if ($this->mode >= 2) { if ($this->mode >= 2) {
// Если установлен режим 2 (усиленная проверка отправленного сообщения) // Если установлен режим 2 (усиленная проверка отправленного сообщения)
@ -113,17 +114,14 @@ final class messages extends method
if (!empty($request["response"])) { if (!empty($request["response"])) {
// Если пришел ID сообщения // Если пришел ID сообщения
// Ключ // Реиницилазиция
$settings['access_token'] = $this->robot->key; $this->robot->api->reinit();
// Версия API
$settings['v'] = $this->robot->version;
// Запрашиваемые сообщения // Запрашиваемые сообщения
$settings['message_ids'] = $request["response"]; $this->robot->api['message_ids'] = $request["response"];
// Запрос // Запрос
if ($this->robot->browser->post(uri: 'https://api.vk.com/method/messages.getById', options: $settings)['response']['count'] === 0) { if ($this->robot->browser->post(uri: 'https://api.vk.com/method/messages.getById', options: $this->robot->api['settings'])['response']['count'] === 0) {
// Если сообщения не существует, то повторить отправку // Если сообщения не существует, то повторить отправку
$this->send($destination); $this->send($destination);
} }
@ -138,20 +136,22 @@ final class messages extends method
/** /**
* Получить информацию о сообщении * Получить информацию о сообщении
* *
* Информация о сообщении * @return array Информация о сообщении
*/ */
public function info(): array public function info(): array
{ {
$settings = $this->init(); //Инициализация
//$settings = $this->init();
$this->robot->api->init();
// Цель отправки // Цель отправки
self::chooseDestination($settings, $this->destination); $this->robot->api->chooseDestination($this->destination);
// Сообщение // Сообщение
$settings['message'] = $this->message; $this->robot->api['message'] = $this->message;
// Режим отправки // Режим отправки
$settings['mode'] = $this->mode; $settings['mode'] = $this->mode; //!!!!!!!!!!!!!!!!!!!!!!
// Фильтрация вложений // Фильтрация вложений
$forward_messages = []; $forward_messages = [];
@ -167,13 +167,13 @@ final class messages extends method
if (!empty($forward_messages)) { if (!empty($forward_messages)) {
// Если есть пересылаемые сообщения // Если есть пересылаемые сообщения
$settings['forward_messages'] = implode(',', $forward_messages); $this->robot->api['forward_messages'] = implode(',', $forward_messages);
} }
if (!empty($attachments)) { if (!empty($attachments)) {
// Если есть вложения // Если есть вложения
$settings['attachment'] = implode(',', $attachments); $this->robot->api['attachment'] = implode(',', $this->attachments);
} }
return $settings; return $settings;

View File

@ -9,10 +9,10 @@ use hood\vk\robots\robot;
/** /**
* Абстракция метода API * Абстракция метода API
* *
* protected static put(string $url, ...$params) Создать * @method protected static put(string $url, ...$params) Создать
* protected static post(string $url, ...$params) Изменить * @method protected static post(string $url, ...$params) Изменить
* protected static get(string $url, ...$params) Получить * @method protected static get(string $url, ...$params) Получить
* protected static delete(string $url, ...$params) Удалить * @method protected static delete(string $url, ...$params) Удалить
* *
* @package hood\vk\api\methods * @package hood\vk\api\methods
* @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su> * @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
@ -22,7 +22,7 @@ abstract class method
/** /**
* Создать * Создать
* *
* Ответ сервера * @return array Ответ сервера
*/ */
public static function put(): array public static function put(): array
{ {
@ -32,7 +32,7 @@ abstract class method
/** /**
* Изменить * Изменить
* *
* Ответ сервера * @return array Ответ сервера
*/ */
public static function post(): array public static function post(): array
{ {
@ -42,7 +42,7 @@ abstract class method
/** /**
* Получить * Получить
* *
* Ответ сервера * @return array Ответ сервера
*/ */
public static function get(): array public static function get(): array
{ {
@ -52,7 +52,7 @@ abstract class method
/** /**
* Удалить * Удалить
* *
* Ответ сервера * @return array Ответ сервера
*/ */
public static function delete(): array public static function delete(): array
{ {

View File

@ -14,7 +14,7 @@ use Exception;
/** /**
* Фотографии (изображения) * Фотографии (изображения)
* *
* public static function put(RobotAbstract $from, int $to, string $message, int $mode = 2) Отправить сообщение * @method public static function put(RobotAbstract $from, int $to, string $message, int $mode = 2) Отправить сообщение
* *
* @see https://vk.com/dev/photos.getUploadServer * @see https://vk.com/dev/photos.getUploadServer
* @see https://vk.com/dev/messages.getById * @see https://vk.com/dev/messages.getById
@ -34,12 +34,12 @@ final class photos extends method
/** /**
* Сохранить * Сохранить
* *
* $robot Робот * @param robot $robot Робот
* $album_id Альбом * @param int $album_id Альбом
* $group_id Группа * @param int|null $group_id Группа
* $caption Описание * @param string|null $caption Описание
* $latitude Географическая широта (-90, 90) * @param float|null $latitude Географическая широта (-90, 90)
* $longitude Географическая долгота (-180, 180) * @param float|null $longitude Географическая долгота (-180, 180)
* *
* @see https://vk.com/dev/photos.save * @see https://vk.com/dev/photos.save
* *
@ -103,6 +103,7 @@ final class photos extends method
* Загрузить * Загрузить
* *
* @param Type $var * @param Type $var
* @return void
*/ */
public static function upload(string ...$images): void public static function upload(string ...$images): void
{ {
@ -122,9 +123,9 @@ final class photos extends method
/** /**
* Получить сервер для загрузки изображений * Получить сервер для загрузки изображений
* *
* $robot Робот * @param robot $robot Робот
* $album_id Альбом * @param int|null $album_id Альбом
* $group_id Группа * @param int|group|null $group_id Группа
* *
* @see https://vk.com/dev/photos.getUploadServer * @see https://vk.com/dev/photos.getUploadServer
* *
@ -164,17 +165,17 @@ final class photos extends method
/** /**
* Получить альбомы * Получить альбомы
* *
* $robot Робот * @param robot $robot Робот
* $album_ids = null Идентификаторы альбомов * @param array $album_ids = null Идентификаторы альбомов
* $offset = null Смещение для выборки подмножества * @param int $offset = null Смещение для выборки подмножества
* $count = null Количество для возврата * @param int $count = null Количество для возврата
* $need_system = null Активация возврата системных альбомов * @param bool $need_system = null Активация возврата системных альбомов
* $need_covers = null Активация возврата поля с обложкой альбома * @param bool $need_covers = null Активация возврата поля с обложкой альбома
* $photo_sizes = null Активация специального формата размеров фотографий * @param bool $photo_sizes = null Активация специального формата размеров фотографий
* *
* @see https://vk.com/dev/photos.getUploadServer * @see https://vk.com/dev/photos.getUploadServer
* *
* Ответ сервера * @return array Ответ сервера
*/ */
public static function getAlbums(robot $robot, array $album_ids = null, int $offset = null, int $count = null, bool $need_system = null, bool $need_covers = null, bool $photo_sizes = null): array public static function getAlbums(robot $robot, array $album_ids = null, int $offset = null, int $count = null, bool $need_system = null, bool $need_covers = null, bool $photo_sizes = null): array
{ {
@ -215,18 +216,20 @@ final class photos extends method
* $img фото * $img фото
*/ */
public function sex(robot $robot, $img) public function get_photo(robot $robot, $img)
{ {
// Реиницилазиция
$this->robot->api->reinit();
// Инициализация настроек
$this->robot->api['group_id'] = $robot->id;
$this->robot->api['peer_id'] = 0;
if (!isset($this->url)) { if (!isset($this->url)) {
// Получить адрес сервера для загрузки фотографии в личное сообщение // Получить адрес сервера для загрузки фотографии в личное сообщение
$this->url = json_decode($robot->browser->request('POST', 'photos.getMessagesUploadServer', [ $this->url = json_decode($robot->browser->request('POST', 'photos.getMessagesUploadServer', [
'form_params' => [ 'form_params' => $this->robot->api['settings']
'group_id' => $robot->id,
'v' => $robot->version,
'access_token' => $robot->key,
'peer_id' => 0
]
])->getBody()->getContents())->response->upload_url; ])->getBody()->getContents())->response->upload_url;
} }
@ -241,18 +244,18 @@ final class photos extends method
] ]
])->getBody()->getContents()); ])->getBody()->getContents());
$this->robot->api->reinit();
$this->robot->api['group_id'] = $robot->id;
$this->robot->api['server'] = $response->server;
$this->robot->api['photo'] = $response->photo;
$this->robot->api['hash'] = $response->hash;
//сохранить //сохранить
$response = json_decode($robot->browser->request('POST', 'photos.saveMessagesPhoto', [ $response = json_decode($robot->browser->request('POST', 'photos.saveMessagesPhoto', [
'form_params' => [ 'form_params' => $this->robot->api['settings']
'group_id' => $robot->id,
'v' => $robot->version,
'access_token' => $robot->key,
'server' => $response->server,
'photo' => $response->photo,
'hash' => $response->hash
]
])->getBody()->getContents()); ])->getBody()->getContents());
//Ссылка на фото
return 'photo' . $response->response[0]->owner_id . '_' . $response->response[0]->id; return 'photo' . $response->response[0]->owner_id . '_' . $response->response[0]->id;
} }
} }

View File

@ -12,15 +12,15 @@ use hood\vk\loggers\jasmo,
/** /**
* Ядро * Ядро
* *
* $robots Количество роботов * @property-read int $robots Количество роботов
* $timezone Временная зона (журналирование) * @property string $timezone Временная зона (журналирование)
* $path Пути (архитектура проекта) * @property array $path Пути (архитектура проекта)
* *
* protected static function __construct() Инициализация * @method protected static function __construct() Инициализация
* public static function init() Запуск инициализации или получение инстанции * @method public static function init() Запуск инициализации или получение инстанции
* public public function build() Сборщик * @method public public function build() Сборщик
* public function set($id, $value) Запись в реестр * @method public function set($id, $value) Запись в реестр
* public function get($id = null) Чтение из реестра * @method public function get($id = null) Чтение из реестра
* *
* @package VK * @package VK
* @author Арсен Мирзаев <red@hood.su> * @author Арсен Мирзаев <red@hood.su>
@ -31,11 +31,15 @@ final class core
/** /**
* Счётчик роботов * Счётчик роботов
*
* @var int
*/ */
private int $robots = 0; private int $robots = 0;
/** /**
* Реестр роботов * Реестр роботов
*
* @var array
*/ */
private array $registry = []; private array $registry = [];
@ -43,28 +47,38 @@ final class core
* Временная зона * Временная зона
* *
* Используется в логировании * Используется в логировании
*
* @var string
*/ */
private string $timezone; private string $timezone;
/** /**
* Путь до корня проекта * Путь до корня проекта
*
* @var string
*/ */
private string $path_root; private string $path_root;
/** /**
* Путь до папки журналов * Путь до папки журналов
*
* @var string
*/ */
private string $path_logs; private string $path_logs;
/** /**
* Путь до временной папки * Путь до временной папки
*
* @var string
*/ */
private string $path_temp; private string $path_temp;
/** /**
* Журналист * Журналист
* *
* $file Файл для журналирования * @param string $file Файл для журналирования
*
* @return self
* *
* @todo Добавить установку иного журналиста по спецификации PSR-3 * @todo Добавить установку иного журналиста по спецификации PSR-3
* @todo Более гибкое журналирование * @todo Более гибкое журналирование
@ -80,10 +94,12 @@ final class core
/** /**
* Записать в реестр * Записать в реестр
* *
* $id Идентификатор * @param int $id
* $robot робот * @param robot $robot
* *
* @see hood\vk\traits\registry Модификация метода * @see hood\vk\traits\registry Модификация метода
*
* @return void
*/ */
public function set(int $id, robot $robot): void public function set(int $id, robot $robot): void
{ {
@ -101,10 +117,12 @@ final class core
* *
* Если не передать идентификатор, то вернёт все значения * Если не передать идентификатор, то вернёт все значения
* *
* $id Идентификатор * @param int|null $id Идентификатор
* $session Сессия * @param int|null $session Сессия
* *
* @see hood\vk\traits\registry Модификация метода * @see hood\vk\traits\registry Модификация метода
*
* @return mixed
*/ */
public function get(int|null $id = null, int|null $session = null): mixed public function get(int|null $id = null, int|null $session = null): mixed
{ {
@ -122,10 +140,12 @@ final class core
/** /**
* Удалить из реестра * Удалить из реестра
* *
* $id Идентификатор * @param int|null $id Идентификатор
* $session Сессия * @param int|null $session Сессия
* *
* @see hood\vk\traits\registry Модификация метода * @see hood\vk\traits\registry Модификация метода
*
* @return void
*/ */
public function delete(int|null $id = null, int|null $session = null): void public function delete(int|null $id = null, int|null $session = null): void
{ {
@ -168,8 +188,10 @@ final class core
/** /**
* Записать свойство * Записать свойство
* *
* $name Название * @param mixed $name Название
* $value Значение * @param mixed $value Значение
*
* @return void
*/ */
public function __set(mixed $name, mixed $value): void public function __set(mixed $name, mixed $value): void
{ {
@ -184,9 +206,9 @@ final class core
/** /**
* Прочитать свойство * Прочитать свойство
* *
* Значение по умолчанию, есле не задано * @param mixed $name Название
* *
* $name Название * @return mixed
*/ */
public function __get(mixed $name): mixed public function __get(mixed $name): mixed
{ {
@ -206,8 +228,10 @@ final class core
* Ищет класс описывающий робота, * Ищет класс описывающий робота,
* создаёт и возвращает его объект * создаёт и возвращает его объект
* *
* $method Метод * @param string $method Метод
* $params Параметры * @param array $params Параметры
*
* @return robot
*/ */
public function __call(string $method, array $params): robot public function __call(string $method, array $params): robot
{ {

View File

@ -13,29 +13,31 @@ use Throwable,
/** /**
* Робот-группа * Робот-группа
* *
* $longpoll LongPoll-сессия * @property longpoll $longpoll LongPoll-сессия
* *
* public function __set($name, $value) Запись свойства * @method public function __set($name, $value) Запись свойства
* public function __get($name) Чтение свойства * @method public function __get($name) Чтение свойства
* public function __isset($name) Проверка на инициализированность свойства * @method public function __isset($name) Проверка на инициализированность свойства
* *
* hood\vk\robots * @package hood\vk\robots
* Arsen Mirzaev Tatyano-Muradovich <red@hood.su> * @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
*/ */
final class group extends robot final class group extends robot
{ {
/** /**
* $longpoll LongPoll-сессия * @var longpoll $longpoll LongPoll-сессия
*/ */
protected longpoll $longpoll; protected longpoll $longpoll;
/** /**
* Запись свойства * Запись свойства
* *
* $name Название * @param string $name Название
* $value Значение * @param mixed $value Значение
* *
* @see hood\vk\robots\robot Наследуемый метод * @see hood\vk\robots\robot Наследуемый метод
*
* @return void
*/ */
public function __set(string $name, mixed $value): void public function __set(string $name, mixed $value): void
{ {
@ -54,9 +56,11 @@ final class group extends robot
/** /**
* Чтение свойства * Чтение свойства
* *
* $name Название * @param string $name Название
* *
* @see hood\vk\robots\robot Наследуемый метод * @see hood\vk\robots\robot Наследуемый метод
*
* @return mixed
*/ */
public function __get(string $name): mixed public function __get(string $name): mixed
{ {
@ -79,11 +83,11 @@ final class group extends robot
/** /**
* Проверка на инициализированность свойства * Проверка на инициализированность свойства
* *
* $name Название * @param string $name Название
* *
* @return mixed * @return mixed
*/ */
public function __isset(string $name) public function __isset(string $name): bool
{ {
try { try {
return parent::__isset($name); return parent::__isset($name);

View File

@ -47,42 +47,37 @@ use hood\accounts\vk as account;
abstract class robot abstract class robot
{ {
/** /**
* Идентификатор * @var int Сессия
*/
protected int $id;
/**
* Сессия
*/ */
protected int $session; protected int $session;
/** /**
* Ключ * @var string Ключ
*/ */
protected string $key; protected string $key;
/** /**
* Аккаунт * @var string Аккаунт
*/ */
private account $account; private account $account;
/** /**
* Прокси * @var proxy Прокси
*/ */
protected proxy $proxy; protected proxy $proxy;
/** /**
* Обработчик капчи * @var captcha Обработчик капчи
*/ */
protected captcha $captcha; protected captcha $captcha;
/** /**
* Режим отправки сообщений * @var int Режим отправки сообщений
*/ */
protected int $messages_mode = 1; protected int $messages_mode = 1;
/** /**
* API ВКонтакте * @var api API ВКонтакте
*/ */
protected api $api; protected api $api;
@ -91,10 +86,9 @@ abstract class robot
* Конструктор * Конструктор
* *
* @param int $id Идентификатор * @param int $id Идентификатор
* @param float $version Версия API
*/ */
public function __construct( public function __construct(
int|null $id = null protected int|null $id = null,
) { ) {
// Инициализация ядра // Инициализация ядра
$core = core::init(); $core = core::init();
@ -112,7 +106,9 @@ abstract class robot
/** /**
* Инициализация ключа * Инициализация ключа
* *
* $key Ключ * @param string $key Ключ
*
* @return self
*/ */
public function key(string $key): self public function key(string $key): self
{ {
@ -128,7 +124,9 @@ abstract class robot
/** /**
* Инициализация аккаунта * Инициализация аккаунта
* *
* $account Аккаунт * @param account $account Аккаунт
*
* @return self
*/ */
public function account(account $account): self public function account(account $account): self
{ {
@ -144,7 +142,9 @@ abstract class robot
/** /**
* Инициализация прокси * Инициализация прокси
* *
* $proxy Прокси * @param proxy $proxy Прокси
*
* @return self
*/ */
public function proxy(proxy $proxy): self public function proxy(proxy $proxy): self
{ {
@ -156,7 +156,9 @@ abstract class robot
/** /**
* Инициализация обработчика капчи * Инициализация обработчика капчи
* *
* $captcha Обработчик капчи * @param captcha $captcha Обработчик капчи
*
* @return self
*/ */
public function captcha(captcha $captcha): self public function captcha(captcha $captcha): self
{ {
@ -168,8 +170,10 @@ abstract class robot
/** /**
* Записать свойство * Записать свойство
* *
* $name Название * @param string $name Название
* $value Значение * @param mixed $value Значение
*
* @return void
*/ */
public function __set(string $name, mixed $value): void public function __set(string $name, mixed $value): void
{ {
@ -191,6 +195,8 @@ abstract class robot
* Прочитать свойство * Прочитать свойство
* *
* @param string $name Название * @param string $name Название
*
* @return mixed
*/ */
public function __get(string $name): mixed public function __get(string $name): mixed
{ {
@ -215,6 +221,8 @@ abstract class robot
* Проверить свойство на инициализированность * Проверить свойство на инициализированность
* *
* @param string $name Название * @param string $name Название
*
* @return mixed
*/ */
public function __isset(string $name): bool public function __isset(string $name): bool
{ {
@ -238,8 +246,10 @@ abstract class robot
* Ищет класс описывающий метод API ВКонтакте, * Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект * создаёт и возвращает его объект
* *
* $method Метод * @param string $method Метод
* $params Параметры * @param array $params Параметры
*
* @return method
*/ */
public function __call(string $method, array $params): method public function __call(string $method, array $params): method
{ {
@ -257,8 +267,10 @@ abstract class robot
* Ищет класс описывающий метод API ВКонтакте, * Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект * создаёт и возвращает его объект
* *
* $method Метод * @param string $method Метод
* $params Параметры * @param array $params Параметры
*
* @return method
*/ */
public static function __callStatic(string $method, array $params): method public static function __callStatic(string $method, array $params): method
{ {
@ -271,6 +283,8 @@ abstract class robot
/** /**
* Конвертировать в строку * Конвертировать в строку
*
* @return string
*/ */
public function __toString(): string public function __toString(): string
{ {

View File

@ -27,6 +27,8 @@ trait singleton
/** /**
* Инициализация * Инициализация
*
* @return self
*/ */
public static function init(): self public static function init(): self
{ {