Добавлен LongPoll. Переработка ядра, переработка сборщика, переработка сообщений.
This commit is contained in:
@@ -4,64 +4,92 @@ declare(strict_types=1);
|
||||
|
||||
namespace VK\Robots;
|
||||
|
||||
use VK\Browsers\BrowserAbstract;
|
||||
use VK\Parsers\Curl;
|
||||
use Exception;
|
||||
use VK\API\LongPoll;
|
||||
use \VK\Browsers\BrowserAbstract,
|
||||
\VK\API\Methods\Message,
|
||||
\VK\API\LongPoll;
|
||||
|
||||
/**
|
||||
* Робот: "Группа"
|
||||
* Робот-группа ВКонтакте
|
||||
*
|
||||
* Класс реализовывающий работу от лица группы ВКонтакте
|
||||
*
|
||||
* @package Robots
|
||||
* @author Arsen Mirzaev
|
||||
* @property LongPoll $longpoll LongPoll-сессия
|
||||
*
|
||||
* @method public function message(int $to, string $message, int $mode = 2) Отправить сообщение
|
||||
* @method public function __set($name, $value) Магический метод-сеттер
|
||||
* @method public function __get($name) Магический метод-геттер
|
||||
*
|
||||
* @package VK\Robots\Group
|
||||
* @author Arsen Mirzaev <red@hood.su>
|
||||
*
|
||||
* @todo Вместо методов реализовать фабрику методов API, как было раньше
|
||||
*/
|
||||
class Group extends RobotAbstract
|
||||
{
|
||||
/**
|
||||
* ВКонтакте: тип API
|
||||
* LongPoll-сессия
|
||||
*
|
||||
* @var string
|
||||
* @var LongPoll
|
||||
*/
|
||||
public string $api;
|
||||
protected LongPoll $longpoll;
|
||||
|
||||
/**
|
||||
* ВКонтакте: активатор мобильной версии
|
||||
*
|
||||
* @var bool
|
||||
* Отправить сообщение
|
||||
*
|
||||
* @param int $to Идентификатор получателя
|
||||
* @param string $message Текст сообщения
|
||||
* @param int $mode Режим доставки сообщения
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
//protected bool $mobile = false;
|
||||
public function message(int $to, string $message, int $mode = 2): array
|
||||
{
|
||||
return Message::put($this, $to, $message, $mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* ВКонтакте: идентификатор капчи
|
||||
* Магический метод-сеттер
|
||||
*
|
||||
* @var int
|
||||
* @param mixed $name Название
|
||||
* @param mixed $value Значение
|
||||
*
|
||||
* @see RobotAbstract Модификация наследуемого метода
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
//protected int $captcha;
|
||||
|
||||
public function postMethod($method, $params = []): BrowserAbstract
|
||||
public function __set($name, $value): void
|
||||
{
|
||||
$browser = __NAMESPACE__ . '\\Browsers\\' . ucfirst($_ENV['BROWSER_TYPE']);
|
||||
return (new $browser)->post();
|
||||
parent::__set($name, $value);
|
||||
|
||||
if ($name === 'longpoll') {
|
||||
if ($value instanceof LongPoll) {
|
||||
$this->longpoll = $value;
|
||||
} else {
|
||||
$this->longpoll = new LongPoll($this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function longpoll(...$params): LongPoll
|
||||
/**
|
||||
* Магический метод-геттер
|
||||
*
|
||||
* @param mixed $name Название
|
||||
*
|
||||
* @see RobotAbstract Модификация наследуемого метода
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
return new LongPoll($this, $params);
|
||||
}
|
||||
if (!empty($parent = parent::__get($name))) {
|
||||
return $parent;
|
||||
}
|
||||
|
||||
public function callback()
|
||||
{
|
||||
return new CallBack($this, $params);
|
||||
}
|
||||
|
||||
protected function genToken(): string
|
||||
{
|
||||
return 'test';
|
||||
}
|
||||
protected function genTokenMobile(string $captcha_key, int $captcha_id): string
|
||||
{
|
||||
return 'test 2';
|
||||
if ($name === 'longpoll') {
|
||||
if (empty($this->longpoll)) {
|
||||
$this->longpoll = new LongPoll($this);
|
||||
}
|
||||
return $this->longpoll;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user