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