Ещё исправления и тест + нашел мусор Кости
This commit is contained in:
parent
19f5275fe9
commit
864ea8ca6d
|
@ -4,21 +4,17 @@ declare(strict_types=1);
|
|||
|
||||
namespace mirzaev\vk\api\methods;
|
||||
|
||||
use Exception;
|
||||
|
||||
use mirzaev\vk\robots\robot,
|
||||
mirzaev\vk\robots\group;
|
||||
|
||||
use mirzaev\accounts\vk as account;
|
||||
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Фотографии (изображения)
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* 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) Отправить сообщение
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*
|
||||
* @see https://vk.com/dev/photos.getUploadServer
|
||||
* @see https://vk.com/dev/messages.getById
|
||||
|
@ -31,24 +27,6 @@ use Exception;
|
|||
final class photos extends method
|
||||
{
|
||||
/**
|
||||
<<<<<<< HEAD:hood/vk/system/api/methods/photos.php
|
||||
* $url
|
||||
*/
|
||||
protected $url;
|
||||
|
||||
/**
|
||||
<<<<<<< HEAD
|
||||
* Сохранить
|
||||
*
|
||||
* $robot Робот
|
||||
* $album_id Альбом
|
||||
* $group_id Группа
|
||||
* $caption Описание
|
||||
* $latitude Географическая широта (-90, 90)
|
||||
* $longitude Географическая долгота (-180, 180)
|
||||
=======
|
||||
=======
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/methods/photos.php
|
||||
* Создать сообщение
|
||||
*
|
||||
* @param robot $robot Робот
|
||||
|
@ -67,7 +45,6 @@ final class photos extends method
|
|||
* @param string|null $caption Описание
|
||||
* @param float|null $latitude Географическая широта (-90, 90)
|
||||
* @param float|null $longitude Географическая долгота (-180, 180)
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*
|
||||
* @see https://vk.com/dev/photos.save
|
||||
*
|
||||
|
@ -128,24 +105,25 @@ final class photos extends method
|
|||
}
|
||||
|
||||
/**
|
||||
<<<<<<< HEAD:hood/vk/system/api/methods/photos.php
|
||||
* Загрузить
|
||||
*
|
||||
* @param Type $var
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
* @param string $images
|
||||
*
|
||||
* @return void
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*
|
||||
* @todo Вынести этот мусор за Костей
|
||||
*/
|
||||
public static function upload(string ...$images): void
|
||||
{
|
||||
if (count($images) > 5) {
|
||||
throw new Exception('Запрещено отправлять более 5 фотографий');
|
||||
}
|
||||
}
|
||||
// public static function upload(string ...$images): void
|
||||
// {
|
||||
// if (count($images) > 5) {
|
||||
// throw new Exception('Запрещено отправлять более 5 фотографий');
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* загрузить
|
||||
*
|
||||
* @todo Вынести этот мусор за Костей
|
||||
*/
|
||||
public static function uploadMessage(robot $robot, string $upload_url, string ...$images)
|
||||
{
|
||||
|
@ -153,21 +131,13 @@ final class photos extends method
|
|||
}
|
||||
|
||||
/**
|
||||
=======
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/methods/photos.php
|
||||
* Получить сервер для загрузки изображений
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $robot Робот
|
||||
* $album_id Альбом
|
||||
* $group_id Группа
|
||||
=======
|
||||
* @see https://vk.com/dev/photos.getUploadServer
|
||||
*
|
||||
* @param robot $robot Робот
|
||||
* @param int|null $album_id Альбом
|
||||
* @param int|group|null $group_id Группа
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*
|
||||
* @see https://vk.com/dev/photos.getUploadServer
|
||||
*
|
||||
* @return array|null Ответ сервера
|
||||
*/
|
||||
|
@ -205,19 +175,8 @@ final class photos extends method
|
|||
/**
|
||||
* Получить альбомы
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $robot Робот
|
||||
* $album_ids = null Идентификаторы альбомов
|
||||
* $offset = null Смещение для выборки подмножества
|
||||
* $count = null Количество для возврата
|
||||
* $need_system = null Активация возврата системных альбомов
|
||||
* $need_covers = null Активация возврата поля с обложкой альбома
|
||||
* $photo_sizes = null Активация специального формата размеров фотографий
|
||||
*
|
||||
* @see https://vk.com/dev/photos.getUploadServer
|
||||
*
|
||||
* Ответ сервера
|
||||
=======
|
||||
* @param robot $robot Робот
|
||||
* @param array $album_ids = null Идентификаторы альбомов
|
||||
* @param int $offset = null Смещение для выборки подмножества
|
||||
|
@ -226,10 +185,7 @@ final class photos extends method
|
|||
* @param bool $need_covers = null Активация возврата поля с обложкой альбома
|
||||
* @param bool $photo_sizes = null Активация специального формата размеров фотографий
|
||||
*
|
||||
* @see https://vk.com/dev/photos.getUploadServer
|
||||
*
|
||||
* @return array Ответ сервера
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
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
|
||||
{
|
||||
|
@ -262,41 +218,8 @@ final class photos extends method
|
|||
return (array) $request;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD:hood/vk/system/api/methods/photos.php
|
||||
/**
|
||||
<<<<<<< HEAD
|
||||
* загрузить фото и получить его id
|
||||
*
|
||||
* $robot робот
|
||||
*
|
||||
* $img фото
|
||||
*/
|
||||
|
||||
public function sex(robot $robot, $img)
|
||||
{
|
||||
if (!isset($this->url)) {
|
||||
|
||||
// Получить адрес сервера для загрузки фотографии в личное сообщение
|
||||
$this->url = json_decode($robot->browser->request('POST', 'photos.getMessagesUploadServer', [
|
||||
'form_params' => [
|
||||
'group_id' => $robot->id,
|
||||
'v' => $robot->version,
|
||||
'access_token' => $robot->key,
|
||||
'peer_id' => 0
|
||||
]
|
||||
])->getBody()->getContents())->response->upload_url;
|
||||
}
|
||||
|
||||
//загрузить
|
||||
$response = json_decode($robot->browser->request('POST', $this->url, [
|
||||
=======
|
||||
* Загрузить фото и получить его id
|
||||
*
|
||||
* $robot робот
|
||||
=======
|
||||
/**
|
||||
* Получить адрес сервера сообщений
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/methods/photos.php
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
|
@ -330,12 +253,7 @@ final class photos extends method
|
|||
public function upload($photo, string $url): object
|
||||
{
|
||||
// Загрузить фото
|
||||
<<<<<<< HEAD:hood/vk/system/api/methods/photos.php
|
||||
$response = json_decode($this->robot->browser->request('POST', $url, [
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
=======
|
||||
$request = json_decode($this->robot->browser->request('POST', $url, [
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/methods/photos.php
|
||||
'multipart' => [
|
||||
[
|
||||
'Content-type' => 'multipart/form-data',
|
||||
|
@ -345,25 +263,6 @@ final class photos extends method
|
|||
]
|
||||
])->getBody()->getContents());
|
||||
|
||||
<<<<<<< HEAD:hood/vk/system/api/methods/photos.php
|
||||
<<<<<<< HEAD
|
||||
//сохранить
|
||||
$response = json_decode($robot->browser->request('POST', 'photos.saveMessagesPhoto', [
|
||||
'form_params' => [
|
||||
'group_id' => $robot->id,
|
||||
'v' => $robot->version,
|
||||
'access_token' => $robot->key,
|
||||
'server' => $response->server,
|
||||
'photo' => $response->photo,
|
||||
'hash' => $response->hash
|
||||
]
|
||||
])->getBody()->getContents());
|
||||
|
||||
return 'photo' . $response->response[0]->owner_id . '_' . $response->response[0]->id;
|
||||
}
|
||||
}
|
||||
=======
|
||||
=======
|
||||
// Если в ответе ошибка
|
||||
if (isset($request->error)) {
|
||||
throw new Exception('Вконтакте: ' . $request->error->error_msg, $request->error->error_code);
|
||||
|
@ -389,7 +288,6 @@ final class photos extends method
|
|||
|
||||
//Загрузить фото
|
||||
$response = $this->upload($pathPhoto, $url);
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/methods/photos.php
|
||||
|
||||
// Реинициализация
|
||||
$this->robot->api->reinit();
|
||||
|
@ -419,7 +317,5 @@ final class photos extends method
|
|||
$request;
|
||||
// Ссылка на фото
|
||||
return 'photo' . $request->response[0]->owner_id . '_' . $request->response[0]->id;
|
||||
|
||||
}
|
||||
}
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
|
|
|
@ -14,8 +14,6 @@ abstract class logger
|
|||
{
|
||||
/**
|
||||
* Экземпляр класса журналиста
|
||||
*
|
||||
* @var logger
|
||||
*/
|
||||
public static $logger;
|
||||
|
||||
|
|
|
@ -13,16 +13,6 @@ use Exception;
|
|||
/**
|
||||
* Робот-группа
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $longpoll LongPoll-сессия
|
||||
*
|
||||
* public function __set($name, $value) Запись свойства
|
||||
* public function __get($name) Чтение свойства
|
||||
* public function __isset($name) Проверка на инициализированность свойства
|
||||
*
|
||||
* hood\vk\robots
|
||||
* Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
|
||||
=======
|
||||
* @property longpoll $longpoll LongPoll-сессия
|
||||
*
|
||||
* @method public function __set($name, $value) Запись свойства
|
||||
|
@ -31,35 +21,23 @@ use Exception;
|
|||
*
|
||||
* @package mirzaev\vk\robots
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
final class group extends robot
|
||||
{
|
||||
/**
|
||||
<<<<<<< HEAD
|
||||
* $longpoll LongPoll-сессия
|
||||
=======
|
||||
* @var longpoll $longpoll LongPoll-сессия
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
protected longpoll $longpoll;
|
||||
|
||||
/**
|
||||
* Запись свойства
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $name Название
|
||||
* $value Значение
|
||||
*
|
||||
* @see hood\vk\robots\robot Наследуемый метод
|
||||
=======
|
||||
* @param string $name Название
|
||||
* @param mixed $value Значение
|
||||
*
|
||||
* @see mirzaev\vk\robots\robot Наследуемый метод
|
||||
*
|
||||
* @return void
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
public function __set(string $name, mixed $value): void
|
||||
{
|
||||
|
@ -78,17 +56,11 @@ final class group extends robot
|
|||
/**
|
||||
* Чтение свойства
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $name Название
|
||||
*
|
||||
* @see hood\vk\robots\robot Наследуемый метод
|
||||
=======
|
||||
* @param string $name Название
|
||||
*
|
||||
* @see mirzaev\vk\robots\robot Наследуемый метод
|
||||
*
|
||||
* @return mixed
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
public function __get(string $name): mixed
|
||||
{
|
||||
|
@ -111,19 +83,11 @@ final class group extends robot
|
|||
/**
|
||||
* Проверка на инициализированность свойства
|
||||
*
|
||||
<<<<<<< HEAD
|
||||
* $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __isset(string $name)
|
||||
=======
|
||||
* @param string $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __isset(string $name): bool
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
{
|
||||
try {
|
||||
return parent::__isset($name);
|
||||
|
|
|
@ -6,11 +6,11 @@ namespace mirzaev\vk\robots;
|
|||
|
||||
use Exception;
|
||||
|
||||
use mirzaev\vk\core;
|
||||
use mirzaev\vk\proxies\proxy;
|
||||
use mirzaev\vk\captcha\captcha;
|
||||
use mirzaev\vk\api\settings as api;
|
||||
use mirzaev\vk\api\methods\method;
|
||||
use mirzaev\vk\core,
|
||||
mirzaev\vk\proxies\proxy,
|
||||
mirzaev\vk\captcha\captcha,
|
||||
mirzaev\vk\api\settings as api,
|
||||
mirzaev\vk\api\methods\method;
|
||||
|
||||
use mirzaev\accounts\vk as account;
|
||||
|
||||
|
@ -45,232 +45,232 @@ use GuzzleHttp\Client as browser;
|
|||
*/
|
||||
abstract class robot
|
||||
{
|
||||
/**
|
||||
* Сессия
|
||||
*/
|
||||
protected int $session;
|
||||
/**
|
||||
* Сессия
|
||||
*/
|
||||
protected int $session;
|
||||
|
||||
/**
|
||||
* Аккаунт
|
||||
*/
|
||||
private account $account;
|
||||
/**
|
||||
* Аккаунт
|
||||
*/
|
||||
private account $account;
|
||||
|
||||
/**
|
||||
* Прокси
|
||||
*/
|
||||
protected proxy $proxy;
|
||||
/**
|
||||
* Прокси
|
||||
*/
|
||||
protected proxy $proxy;
|
||||
|
||||
/**
|
||||
* Обработчик капчи
|
||||
*/
|
||||
protected captcha $captcha;
|
||||
/**
|
||||
* Обработчик капчи
|
||||
*/
|
||||
protected captcha $captcha;
|
||||
|
||||
/**
|
||||
* $messages_mode Режим отправки сообщений
|
||||
*/
|
||||
protected int $messages_mode = 1;
|
||||
/**
|
||||
* $messages_mode Режим отправки сообщений
|
||||
*/
|
||||
protected int $messages_mode = 1;
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param int|null $id Идентификатор
|
||||
* @param string|null $key Ключ
|
||||
*/
|
||||
public function __construct(
|
||||
protected int|null $id = null,
|
||||
protected string|null $key = null
|
||||
) {
|
||||
// Инициализация ядра
|
||||
$core = core::init();
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param int|null $id Идентификатор
|
||||
* @param string|null $key Ключ
|
||||
*/
|
||||
public function __construct(
|
||||
protected int|null $id = null,
|
||||
protected string|null $key = null
|
||||
) {
|
||||
// Инициализация ядра
|
||||
$core = core::init();
|
||||
|
||||
// Идентификация робота
|
||||
$this->id = $id ?? $core->robots + 1;
|
||||
// Идентификация робота
|
||||
$this->id = $id ?? $core->robots + 1;
|
||||
|
||||
// Регистрация робота в ядре
|
||||
$core->write($this->id, $this);
|
||||
// Регистрация робота в ядре
|
||||
$core->write($this->id, $this);
|
||||
|
||||
// Идентификация сессии робота
|
||||
$this->session = count($core->read($this->id));
|
||||
}
|
||||
// Идентификация сессии робота
|
||||
$this->session = count($core->read($this->id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Инициализация ключа
|
||||
*
|
||||
* @param string $key Ключ
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function key(string $key): self
|
||||
{
|
||||
$this->__set('key', $key);
|
||||
/**
|
||||
* Инициализация ключа
|
||||
*
|
||||
* @param string $key Ключ
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function key(string $key): self
|
||||
{
|
||||
$this->__set('key', $key);
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Инициализация аккаунта
|
||||
*
|
||||
* @param account $account Аккаунт
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function account(account $account): self
|
||||
{
|
||||
$this->__set('account', $account);
|
||||
/**
|
||||
* Инициализация аккаунта
|
||||
*
|
||||
* @param account $account Аккаунт
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function account(account $account): self
|
||||
{
|
||||
$this->__set('account', $account);
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Инициализация прокси
|
||||
*
|
||||
* @param proxy $proxy Прокси
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function proxy(proxy $proxy): self
|
||||
{
|
||||
$this->__set('proxy', $proxy);
|
||||
/**
|
||||
* Инициализация прокси
|
||||
*
|
||||
* @param proxy $proxy Прокси
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function proxy(proxy $proxy): self
|
||||
{
|
||||
$this->__set('proxy', $proxy);
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Инициализация обработчика капчи
|
||||
*
|
||||
* @param captcha $captcha Обработчик капчи
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function captcha(captcha $captcha): self
|
||||
{
|
||||
$this->__set('captcha', $captcha);
|
||||
/**
|
||||
* Инициализация обработчика капчи
|
||||
*
|
||||
* @param captcha $captcha Обработчик капчи
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function captcha(captcha $captcha): self
|
||||
{
|
||||
$this->__set('captcha', $captcha);
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Записать свойство
|
||||
*
|
||||
* @param string $name Название
|
||||
* @param mixed $value Значение
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __set(string $name, mixed $value): void
|
||||
{
|
||||
match ($name) {
|
||||
'id' => isset($this->id) ? throw new Exception('Запрещено перезаписывать идентификатор', 500) : $this->id = (int) $value,
|
||||
'session' => isset($this->session) ? throw new Exception('Запрещено перезаписывать сессию', 500) : $this->session = (int) $value,
|
||||
'key' => isset($this->key) ? throw new Exception('Запрещено перезаписывать ключ', 500) : $this->key = (string) $value,
|
||||
'api' => isset($this->api) ? throw new Exception('Запрещено перезаписывать API', 500) : $this->api = $value,
|
||||
'account' => isset($this->account) ? throw new Exception('Запрещено перезаписывать аккаунт', 500) : $this->account = $value,
|
||||
'browser' => isset($this->browser) ? throw new Exception('Запрещено перезаписывать браузер', 500) : $this->browser = $value,
|
||||
'proxy' => $this->proxy = $value,
|
||||
'captcha' => $this->captcha = $value,
|
||||
'messages_new' => $this->messages_new = (int) $value,
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Записать свойство
|
||||
*
|
||||
* @param string $name Название
|
||||
* @param mixed $value Значение
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __set(string $name, mixed $value): void
|
||||
{
|
||||
match ($name) {
|
||||
'id' => isset($this->id) ? throw new Exception('Запрещено перезаписывать идентификатор', 500) : $this->id = (int) $value,
|
||||
'session' => isset($this->session) ? throw new Exception('Запрещено перезаписывать сессию', 500) : $this->session = (int) $value,
|
||||
'key' => isset($this->key) ? throw new Exception('Запрещено перезаписывать ключ', 500) : $this->key = (string) $value,
|
||||
'api' => isset($this->api) ? throw new Exception('Запрещено перезаписывать API', 500) : $this->api = $value,
|
||||
'account' => isset($this->account) ? throw new Exception('Запрещено перезаписывать аккаунт', 500) : $this->account = $value,
|
||||
'browser' => isset($this->browser) ? throw new Exception('Запрещено перезаписывать браузер', 500) : $this->browser = $value,
|
||||
'proxy' => $this->proxy = $value,
|
||||
'captcha' => $this->captcha = $value,
|
||||
'messages_new' => $this->messages_new = (int) $value,
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Прочитать свойство
|
||||
*
|
||||
* @param string $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get(string $name): mixed
|
||||
{
|
||||
return match ($name) {
|
||||
'id' => $this->id ?? throw new Exception('Идентификатор не инициализирован', 500),
|
||||
'session' => $this->session ?? throw new Exception('Сессия не инициализирована', 500),
|
||||
'key' => $this->key ?? throw new Exception('Ключ не инициализирован', 500),
|
||||
'api' => $this->api ?? $this->api = new api($this),
|
||||
'account' => $this->account ?? throw new Exception('Аккаунт не инициализирован', 500),
|
||||
'browser' => $this->browser ?? $this->browser = new browser([
|
||||
'base_uri' => 'https://api.vk.com/method/',
|
||||
'cookies' => true
|
||||
]),
|
||||
'proxy' => $this->proxy,
|
||||
'captcha' => $this->captcha,
|
||||
'messages_new' => $this->messages_new,
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Прочитать свойство
|
||||
*
|
||||
* @param string $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get(string $name): mixed
|
||||
{
|
||||
return match ($name) {
|
||||
'id' => $this->id ?? throw new Exception('Идентификатор не инициализирован', 500),
|
||||
'session' => $this->session ?? throw new Exception('Сессия не инициализирована', 500),
|
||||
'key' => $this->key ?? throw new Exception('Ключ не инициализирован', 500),
|
||||
'api' => $this->api ?? $this->api = new api($this),
|
||||
'account' => $this->account ?? throw new Exception('Аккаунт не инициализирован', 500),
|
||||
'browser' => $this->browser ?? $this->browser = new browser([
|
||||
'base_uri' => 'https://api.vk.com/method/',
|
||||
'cookies' => true
|
||||
]),
|
||||
'proxy' => $this->proxy,
|
||||
'captcha' => $this->captcha,
|
||||
'messages_new' => $this->messages_new,
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверить свойство на инициализированность
|
||||
*
|
||||
* @param string $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __isset(string $name): bool
|
||||
{
|
||||
return match ($name) {
|
||||
'id' => isset($this->id),
|
||||
'session' => isset($this->session),
|
||||
'key' => isset($this->key),
|
||||
'account' => isset($this->account),
|
||||
'api' => isset($this->api),
|
||||
'browser' => isset($this->browser),
|
||||
'proxy' => isset($this->proxy),
|
||||
'captcha' => isset($this->captcha),
|
||||
'messages_new' => isset($this->messages_new),
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Проверить свойство на инициализированность
|
||||
*
|
||||
* @param string $name Название
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __isset(string $name): bool
|
||||
{
|
||||
return match ($name) {
|
||||
'id' => isset($this->id),
|
||||
'session' => isset($this->session),
|
||||
'key' => isset($this->key),
|
||||
'account' => isset($this->account),
|
||||
'api' => isset($this->api),
|
||||
'browser' => isset($this->browser),
|
||||
'proxy' => isset($this->proxy),
|
||||
'captcha' => isset($this->captcha),
|
||||
'messages_new' => isset($this->messages_new),
|
||||
default => throw new Exception("Свойство $name не найдено", 404)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Вызвать метод
|
||||
*
|
||||
* Ищет класс описывающий метод API ВКонтакте,
|
||||
* создаёт и возвращает его объект
|
||||
*
|
||||
* @param string $method Метод
|
||||
* @param array $params Параметры
|
||||
*
|
||||
* @return method
|
||||
*/
|
||||
public function __call(string $method, array $params): method
|
||||
{
|
||||
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
|
||||
// Если найден класс реализующий запрошенный метод
|
||||
return new $class($this, ...$params);
|
||||
}
|
||||
/**
|
||||
* Вызвать метод
|
||||
*
|
||||
* Ищет класс описывающий метод API ВКонтакте,
|
||||
* создаёт и возвращает его объект
|
||||
*
|
||||
* @param string $method Метод
|
||||
* @param array $params Параметры
|
||||
*
|
||||
* @return method
|
||||
*/
|
||||
public function __call(string $method, array $params): method
|
||||
{
|
||||
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
|
||||
// Если найден класс реализующий запрошенный метод
|
||||
return new $class($this, ...$params);
|
||||
}
|
||||
|
||||
throw new Exception("Метод $method не найден", 404);
|
||||
}
|
||||
throw new Exception("Метод $method не найден", 404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Вызвать статический метод
|
||||
*
|
||||
* Ищет класс описывающий метод API ВКонтакте,
|
||||
* создаёт и возвращает его объект
|
||||
*
|
||||
* @param string $method Метод
|
||||
* @param array $params Параметры
|
||||
*
|
||||
* @return method
|
||||
*/
|
||||
public static function __callStatic(string $method, array $params): method
|
||||
{
|
||||
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
|
||||
return $class(self, ...$params);
|
||||
}
|
||||
/**
|
||||
* Вызвать статический метод
|
||||
*
|
||||
* Ищет класс описывающий метод API ВКонтакте,
|
||||
* создаёт и возвращает его объект
|
||||
*
|
||||
* @param string $method Метод
|
||||
* @param array $params Параметры
|
||||
*
|
||||
* @return method
|
||||
*/
|
||||
public static function __callStatic(string $method, array $params): method
|
||||
{
|
||||
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
|
||||
return $class(self, ...$params);
|
||||
}
|
||||
|
||||
throw new Exception("Метод $method не найден", 404);
|
||||
}
|
||||
throw new Exception("Метод $method не найден", 404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Конвертировать в строку
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString(): string
|
||||
{
|
||||
return (string) $this->id;
|
||||
}
|
||||
/**
|
||||
* Конвертировать в строку
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString(): string
|
||||
{
|
||||
return (string) $this->id;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,15 +27,6 @@ trait singleton
|
|||
|
||||
/**
|
||||
* Инициализация
|
||||
<<<<<<< HEAD:hood/vk/system/traits/singleton.php
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
*
|
||||
=======
|
||||
*
|
||||
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/traits/singleton.php
|
||||
* @return self
|
||||
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
|
||||
*/
|
||||
public static function init(): self
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue