diff --git a/hood/vk/system/api/api.php b/hood/vk/system/api/api.php index c4f14a6..6694e46 100644 --- a/hood/vk/system/api/api.php +++ b/hood/vk/system/api/api.php @@ -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 . '\']') }; diff --git a/hood/vk/system/api/methods/messages.php b/hood/vk/system/api/methods/messages.php index 39be2b1..6942d75 100644 --- a/hood/vk/system/api/methods/messages.php +++ b/hood/vk/system/api/methods/messages.php @@ -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) diff --git a/hood/vk/tests/api/apiTest.php b/hood/vk/tests/api/apiTest.php index 31d2c07..e33a325 100644 --- a/hood/vk/tests/api/apiTest.php +++ b/hood/vk/tests/api/apiTest.php @@ -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']; diff --git a/hood/vk/tests/api/attachmentsTest.php b/hood/vk/tests/api/attachmentsTest.php index 63fb445..4ed859c 100644 --- a/hood/vk/tests/api/attachmentsTest.php +++ b/hood/vk/tests/api/attachmentsTest.php @@ -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(); diff --git a/hood/vk/tests/api/methods/messagesTest.php b/hood/vk/tests/api/methods/messagesTest.php index 5fc7ad8..c6ea9bf 100644 --- a/hood/vk/tests/api/methods/messagesTest.php +++ b/hood/vk/tests/api/methods/messagesTest.php @@ -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 Отправка сообщеий (с пересылаемым сообщением) + * + * что это? */ } diff --git a/hood/vk/tests/api/methods/photosTest.php b/hood/vk/tests/api/methods/photosTest.php index c7647d2..a8fd899 100644 --- a/hood/vk/tests/api/methods/photosTest.php +++ b/hood/vk/tests/api/methods/photosTest.php @@ -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(); diff --git a/hood/vk/tests/robots/groupTest.php b/hood/vk/tests/robots/groupTest.php index 91cb2ce..0bda0cf 100644 --- a/hood/vk/tests/robots/groupTest.php +++ b/hood/vk/tests/robots/groupTest.php @@ -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), 'Сессия не инициализирована'); } /** diff --git a/hood/vk/tests/robots/userTest.php b/hood/vk/tests/robots/userTest.php index 8201d27..e6f355b 100644 --- a/hood/vk/tests/robots/userTest.php +++ b/hood/vk/tests/robots/userTest.php @@ -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), 'Сессия не инициализирована'); } /**