Добавлен LongPoll. Переработка ядра, переработка сборщика, переработка сообщений.
This commit is contained in:
@@ -4,10 +4,33 @@ declare(strict_types=1);
|
||||
|
||||
namespace VK\Robots;
|
||||
|
||||
use \VK\Browsers\BrowserAbstract;
|
||||
use \VK\Proxies\ProxyAbstract;
|
||||
use \VK\Proxies\CaptchaAbstract;
|
||||
use \Exception;
|
||||
use \VK\Browsers\BrowserAbstract,
|
||||
\VK\Proxies\ProxyAbstract,
|
||||
\VK\Captcha\CaptchaAbstract,
|
||||
\VK\Core;
|
||||
|
||||
/**
|
||||
* Абстракция робота
|
||||
*
|
||||
* @property int $id Идентификатор
|
||||
* @property int $session Сессия
|
||||
* @property string $token Токен
|
||||
* @property float $version Версия API
|
||||
* @property BrowserAbstract $browser Браузер
|
||||
* @property ProxyAbstract $proxy Прокси
|
||||
* @property CaptchaAbstract $captcha Обработчик капчи
|
||||
*
|
||||
* @method protected static function put(string $url, ...$params) Создать
|
||||
* @method protected static function post(string $url, ...$params) Изменить
|
||||
* @method protected static function get(string $url, ...$params) Получить
|
||||
* @method protected static function delete(string $url, ...$params) Удалить
|
||||
* @method public function __set($name, $value) Магический метод-сеттер
|
||||
* @method public function __get($name) Магический метод-геттер
|
||||
*
|
||||
* @package API/Methods
|
||||
* @author Арсен Мирзаев <red@hood.su>
|
||||
*/
|
||||
abstract class RobotAbstract
|
||||
{
|
||||
/**
|
||||
@@ -17,6 +40,13 @@ abstract class RobotAbstract
|
||||
*/
|
||||
protected int $id;
|
||||
|
||||
/**
|
||||
* Сессия
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected int $session;
|
||||
|
||||
/**
|
||||
* Токен
|
||||
*
|
||||
@@ -29,17 +59,17 @@ abstract class RobotAbstract
|
||||
*
|
||||
* @var float
|
||||
*/
|
||||
public float $version = 5.103;
|
||||
protected float $version = 5.124;
|
||||
|
||||
/**
|
||||
* Используемый браузер
|
||||
* Браузер
|
||||
*
|
||||
* @var BrowserAbstract
|
||||
*/
|
||||
protected BrowserAbstract $browser;
|
||||
|
||||
/**
|
||||
* Прокси-сервер
|
||||
* Прокси
|
||||
*
|
||||
* @var ProxyAbstract
|
||||
*/
|
||||
@@ -55,12 +85,17 @@ abstract class RobotAbstract
|
||||
/**
|
||||
* Магический сеттер
|
||||
*
|
||||
* @return mixed
|
||||
* @param mixed $name Название
|
||||
* @param mixed $value Значение
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __set($name, $value)
|
||||
public function __set($name, $value): void
|
||||
{
|
||||
if ($name === 'id' && empty($this->id)) {
|
||||
$this->id = $value;
|
||||
} else if ($name === 'session' && empty($this->session)) {
|
||||
$this->session = $value;
|
||||
} else if ($name === 'token' && empty($this->token)) {
|
||||
$this->token = $value;
|
||||
} else if ($name === 'version' && empty($this->version)) {
|
||||
@@ -77,12 +112,16 @@ abstract class RobotAbstract
|
||||
/**
|
||||
* Магический геттер
|
||||
*
|
||||
* @param mixed $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
if ($name === 'id') {
|
||||
return $this->id;
|
||||
} else if ($name === 'session') {
|
||||
return $this->session;
|
||||
} else if ($name === 'token') {
|
||||
return $this->token;
|
||||
} else if ($name === 'version') {
|
||||
@@ -97,7 +136,9 @@ abstract class RobotAbstract
|
||||
}
|
||||
|
||||
/**
|
||||
* Установка токена
|
||||
* Токен
|
||||
*
|
||||
* @param string $token Токен
|
||||
*
|
||||
* @return RobotAbstract
|
||||
*/
|
||||
@@ -110,19 +151,30 @@ abstract class RobotAbstract
|
||||
|
||||
|
||||
/**
|
||||
* Установка браузера
|
||||
* Браузер
|
||||
*
|
||||
* @return RobotAbstract
|
||||
* @param BrowserAbstract $browser Браузер
|
||||
*
|
||||
* @return BrowserAbstract
|
||||
*/
|
||||
public function browser(BrowserAbstract $browser): RobotAbstract
|
||||
public function browser(BrowserAbstract $browser = null): BrowserAbstract
|
||||
{
|
||||
$this->browser = $browser;
|
||||
|
||||
return $this;
|
||||
if (isset($this->browser) && $browser === null) {
|
||||
// Если не передан браузер и свойство иниициализировано
|
||||
return $this->browser;
|
||||
} else if ($browser === null) {
|
||||
// Иначе если не передан браузер свойство не инициализировано
|
||||
return $this->browser = new \VK\Browsers\Curl();
|
||||
} else {
|
||||
// Иначе полученный браузер записывается в свойство и возвращается
|
||||
return $this->browser = $browser;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Установка прокси-сервера
|
||||
* Установка прокси
|
||||
*
|
||||
* @param ProxyAbstract $proxy Прокси
|
||||
*
|
||||
* @return RobotAbstract
|
||||
*/
|
||||
@@ -134,7 +186,9 @@ abstract class RobotAbstract
|
||||
}
|
||||
|
||||
/**
|
||||
* Установка сервиса антикапчи
|
||||
* Установка обработчика капчи
|
||||
*
|
||||
* @param CaptchaAbstract $captcha Обработчик капчи
|
||||
*
|
||||
* @return RobotAbstract
|
||||
*/
|
||||
@@ -145,38 +199,27 @@ abstract class RobotAbstract
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение браузера
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getBrowser(): BrowserAbstract
|
||||
{
|
||||
// return $this->browser;
|
||||
return new \VK\Browsers\Curl;
|
||||
}
|
||||
// /**
|
||||
// * Метод получения токена аккаунта
|
||||
// *
|
||||
// * @return string
|
||||
// */
|
||||
// public function getToken($captcha_key = null, $captcha_id = null): string
|
||||
// {
|
||||
// if (!empty($_ENV['ACCOUNT_TOKEN'])) {
|
||||
// return $_ENV['ACCOUNT_TOKEN'];
|
||||
// } else if ($this->mobile) {
|
||||
// $this->token_access = $this->genTokenMobile($captcha_key, $this->captcha_id ?? $captcha_id);
|
||||
// } else {
|
||||
// $this->token_access = $this->genToken();
|
||||
// }
|
||||
|
||||
/**
|
||||
* Метод получения токена аккаунта
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getToken($captcha_key = null, $captcha_id = null): string
|
||||
{
|
||||
if (!empty($_ENV['ACCOUNT_TOKEN'])) {
|
||||
return $_ENV['ACCOUNT_TOKEN'];
|
||||
} else if ($this->mobile) {
|
||||
$this->token_access = $this->genTokenMobile($captcha_key, $this->captcha_id ?? $captcha_id);
|
||||
} else {
|
||||
$this->token_access = $this->genToken();
|
||||
}
|
||||
|
||||
return $this->token_access;
|
||||
}
|
||||
// return $this->token_access;
|
||||
// }
|
||||
|
||||
|
||||
abstract protected function genToken(): string;
|
||||
abstract protected function genTokenMobile(string $captcha_key, int $captcha_id): string;
|
||||
// abstract protected function genToken(): string;
|
||||
// abstract protected function genTokenMobile(string $captcha_key, int $captcha_id): string;
|
||||
|
||||
// /**
|
||||
// * @param null $access_groups
|
||||
|
Reference in New Issue
Block a user