Некоторые исправления
This commit is contained in:
parent
122dc129a5
commit
3c1e4a5b15
|
@ -120,7 +120,6 @@ class api implements ArrayAccess
|
|||
public function __set(string $name, mixed $value): void
|
||||
{
|
||||
match ($name) {
|
||||
'robot' => !isset($this->robot) ? $this->robot = $value : throw new Exception('Запрещено перезаписывать робота'),
|
||||
'settings' => !isset($this->settings) ? $this->settings = $value : throw new Exception('Запрещено перезаписывать настройки'),
|
||||
default => $this->settings[$name] = $value
|
||||
};
|
||||
|
@ -134,7 +133,6 @@ class api implements ArrayAccess
|
|||
public function __get(string $name): mixed
|
||||
{
|
||||
return match ($name) {
|
||||
'robot' => $this->robot ?? throw new Exception('Робот не инициализирован'),
|
||||
'settings' => $this->settings ?? throw new Exception('Настройки не инициализированы'),
|
||||
default => $this->settings[$name] ?? throw new Exception('Параметр не найден: settings[\'' . $name . '\']')
|
||||
};
|
||||
|
|
|
@ -33,7 +33,6 @@ final class messages extends method
|
|||
/**
|
||||
* @param string|null $text Текст
|
||||
*/
|
||||
protected string|null $text = null;
|
||||
|
||||
/**
|
||||
* @var array Массив вложений
|
||||
|
@ -51,7 +50,8 @@ final class messages extends method
|
|||
* @param robot $robot Робот
|
||||
*/
|
||||
public function __construct(
|
||||
protected robot $robot
|
||||
protected robot $robot,
|
||||
protected string|null $text = null
|
||||
) {
|
||||
}
|
||||
|
||||
|
@ -130,9 +130,9 @@ final class messages extends method
|
|||
*
|
||||
* @return array Ответ сервера
|
||||
*/
|
||||
public function send(int|string|array $destination): array
|
||||
public function send(int|string|array $destination): mixed
|
||||
{
|
||||
// Идентификатор сообщения
|
||||
// Идентификатор
|
||||
$random_id = time();
|
||||
|
||||
if ($this->mode = 1) {
|
||||
|
@ -146,11 +146,11 @@ final class messages extends method
|
|||
// Цель отправки
|
||||
$this->robot->api->chooseDestination($destination);
|
||||
|
||||
// Текст сообщения
|
||||
$this->robot->api['message'] = $this->text;
|
||||
|
||||
// Идентификатор сообщения
|
||||
$this->robot->api['random_id'] = $random_id;
|
||||
$this->robot->api->random_id = $random_id;
|
||||
|
||||
// Текст
|
||||
$this->robot->api->message = $this->text;
|
||||
|
||||
// Фильтрация вложений, если они инициализированны
|
||||
if (isset($this->attachments)) {
|
||||
|
@ -175,9 +175,8 @@ final class messages extends method
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// Запрос
|
||||
$request = $this->robot->browser->request(method: 'POST', uri: 'messages.send', options: ['form_params' => $this->robot->api['settings']]);
|
||||
$request = $this->robot->browser->request('POST', 'messages.send', ['form_params' => $this->robot->api->settings]);
|
||||
|
||||
// Очистка
|
||||
//unset($settings);
|
||||
|
@ -186,7 +185,7 @@ final class messages extends method
|
|||
// Если установлен режим 2 (усиленная проверка отправленного сообщения)
|
||||
|
||||
if (!empty($request["response"])) {
|
||||
// Если пришел ID сообщения
|
||||
// Ответ получен
|
||||
|
||||
// Реиницилазиция
|
||||
$this->robot->api->reinit();
|
||||
|
@ -195,8 +194,10 @@ final class messages extends method
|
|||
$this->robot->api['message_ids'] = $request["response"];
|
||||
|
||||
// Запрос
|
||||
if ($this->robot->browser->post(uri: 'https://api.vk.com/method/messages.getById', options: $this->robot->api['settings'])['response']['count'] === 0) {
|
||||
// Если сообщения не существует, то повторить отправку
|
||||
if ($this->robot->browser->request('POST', 'messages.getById', ['form_params' => $this->robot->api->settings])['response']['count'] === 0) {
|
||||
// Сообщения не существует
|
||||
|
||||
// Повторная отправка
|
||||
$this->send($destination);
|
||||
}
|
||||
} else {
|
||||
|
@ -204,7 +205,7 @@ final class messages extends method
|
|||
}
|
||||
}
|
||||
|
||||
return (array) $request;
|
||||
return $request->getBody();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -234,7 +235,7 @@ final class messages extends method
|
|||
public function __get(string $name): mixed
|
||||
{
|
||||
return match ($name) {
|
||||
'text' => $this->text ?? throw new Exception('Текст не задан'),
|
||||
'text' => $this->text ?? throw new Exception('Текст не инициализирован'),
|
||||
'attachment' => $this->attachment->attachments ?? $this->attachment = new attachments($this->robot),
|
||||
'attachments' => isset($this->attachment) ? $this->attachment->attachments : throw new Exception('Вложения не инициализированны'),
|
||||
default => throw new Exception('Свойство не найдено: ' . $name)
|
||||
|
|
|
@ -40,11 +40,11 @@ final class apiTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -54,9 +54,9 @@ final class apiTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -76,7 +76,7 @@ final class apiTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
@ -171,7 +171,7 @@ final class apiTest extends TestCase
|
|||
public function testReadSettingsElement(): void
|
||||
{
|
||||
// Проверка выброса исключения
|
||||
$this->expectExceptionMessage('Не найдено: settings[\'element\']');
|
||||
$this->expectExceptionMessage('Не инициализировано: settings[\'element\']');
|
||||
|
||||
// Чтение элемента настроек
|
||||
self::$robot->key(self::$group_key)->api['element'];
|
||||
|
|
|
@ -46,11 +46,11 @@ final class attachmentsTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -60,9 +60,9 @@ final class attachmentsTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -82,7 +82,7 @@ final class attachmentsTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
|
|
@ -40,11 +40,11 @@ final class messagesTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -54,9 +54,9 @@ final class messagesTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -76,7 +76,7 @@ final class messagesTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
@ -120,7 +120,7 @@ final class messagesTest extends TestCase
|
|||
public function testReadText(): void
|
||||
{
|
||||
// Проверка выброса исключения
|
||||
$this->expectExceptionMessage('Текст не задан');
|
||||
$this->expectExceptionMessage('Текст не инициализирован');
|
||||
|
||||
// Чтение текста
|
||||
self::$robot->message()->text;
|
||||
|
@ -186,22 +186,24 @@ final class messagesTest extends TestCase
|
|||
public function testSend(): void
|
||||
{
|
||||
// Отправка сообщения
|
||||
self::$robot->key(self::$group_key)->message()->send('123');
|
||||
self::$robot->key(self::$group_key)->message('Тестовое сообщение')->send(self::$target_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox Отправка сообщеий (с вложениями)
|
||||
*/
|
||||
public function testSendWithAttachments(): void
|
||||
{
|
||||
// Запись вложений
|
||||
$message = self::$robot->key(self::$group_key)->message()->attachment('text');
|
||||
// public function testSendWithAttachments(): void
|
||||
// {
|
||||
// // Запись вложений
|
||||
// $message = self::$robot->key(self::$group_key)->message()->attachment('text');
|
||||
|
||||
// Отправка сообщения
|
||||
$message->send('123');
|
||||
}
|
||||
// // Отправка сообщения
|
||||
// $message->send('Тестовое сообщение');
|
||||
// }
|
||||
|
||||
/**
|
||||
* @t estdox Отправка сообщеий (с пересылаемым сообщением)
|
||||
*
|
||||
* что это?
|
||||
*/
|
||||
}
|
||||
|
|
|
@ -40,11 +40,11 @@ final class photosTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -54,9 +54,9 @@ final class photosTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -76,7 +76,7 @@ final class photosTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
|||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
use hood\vk\core,
|
||||
hood\vk\robots\robot,
|
||||
hood\vk\tests\settings;
|
||||
use hood\vk\core;
|
||||
use hood\vk\robots\robot;
|
||||
use hood\vk\tests\settings;
|
||||
|
||||
use hood\accounts\vk as account;
|
||||
|
||||
|
@ -40,11 +40,11 @@ final class groupTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -54,9 +54,9 @@ final class groupTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -76,7 +76,7 @@ final class groupTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
@ -133,7 +133,7 @@ final class groupTest extends TestCase
|
|||
{
|
||||
// Проверки
|
||||
$this->assertNotNull(self::$robot->id, 'Не удалось прочитать идентификатор');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не найден');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не инициализирован');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -155,7 +155,7 @@ final class groupTest extends TestCase
|
|||
{
|
||||
// Проверки
|
||||
$this->assertNotNull(self::$robot->session, 'Не удалось прочитать сессию');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не найдена');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не инициализирована');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
|||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
use hood\vk\core,
|
||||
hood\vk\robots\robot,
|
||||
hood\vk\tests\settings;
|
||||
use hood\vk\core;
|
||||
use hood\vk\robots\robot;
|
||||
use hood\vk\tests\settings;
|
||||
|
||||
use hood\accounts\vk as account;
|
||||
|
||||
|
@ -40,11 +40,11 @@ final class userTest extends TestCase
|
|||
{
|
||||
// Проверка входных данных
|
||||
if (empty(self::$project_id)) {
|
||||
self::$markTestSkipped('Не найден идентификатор проекта');
|
||||
self::markTestSkipped('Не инициализирован идентификатор проекта');
|
||||
}
|
||||
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Запись режима SSL-протокола
|
||||
self::$account->ssl = self::$ssl ?? true;
|
||||
|
@ -54,9 +54,9 @@ final class userTest extends TestCase
|
|||
|
||||
// Проверка входных данных
|
||||
if (empty(self::$login)) {
|
||||
self::$markTestSkipped('Не найден входной аккаунта');
|
||||
self::markTestSkipped('Не инициализирован входной аккаунта');
|
||||
} else if (empty(self::$password)) {
|
||||
self::$markTestSkipped('Не найден пароль аккаунта');
|
||||
self::markTestSkipped('Не инициализирован пароль аккаунта');
|
||||
}
|
||||
|
||||
// Деаутентификация (на всякий случай)
|
||||
|
@ -76,7 +76,7 @@ final class userTest extends TestCase
|
|||
public static function testAccountDeinit(): void
|
||||
{
|
||||
// Инициализация аккаунта
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
|
||||
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
|
||||
|
||||
// Деаутентификация
|
||||
self::$account->deauth();
|
||||
|
@ -133,7 +133,7 @@ final class userTest extends TestCase
|
|||
{
|
||||
// Проверки
|
||||
$this->assertNotNull(self::$robot->id, 'Не удалось прочитать идентификатор');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не найден');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не инициализирован');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -155,7 +155,7 @@ final class userTest extends TestCase
|
|||
{
|
||||
// Проверки
|
||||
$this->assertNotNull(self::$robot->session, 'Не удалось прочитать сессию');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не найдена');
|
||||
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не инициализирована');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue