Полное изменение enum!
This commit is contained in:
parent
e08f252d5b
commit
e670be5816
|
@ -15,7 +15,7 @@ use stdClass,
|
||||||
/**
|
/**
|
||||||
* Режимы отправки сообщений
|
* Режимы отправки сообщений
|
||||||
*/
|
*/
|
||||||
enum send
|
enum message_send
|
||||||
{
|
{
|
||||||
/** Обычная отправка */
|
/** Обычная отправка */
|
||||||
case simple;
|
case simple;
|
||||||
|
@ -27,19 +27,16 @@ enum send
|
||||||
/**
|
/**
|
||||||
* Режимы генерации идентификатора сессии доставки сообщения
|
* Режимы генерации идентификатора сессии доставки сообщения
|
||||||
*/
|
*/
|
||||||
enum generate
|
enum random_id
|
||||||
{
|
{
|
||||||
/** Генерация: time() */
|
/** Генерация: time() (нельзя отправить более чем 1 сообщение в секунду) */
|
||||||
case date;
|
case date;
|
||||||
|
|
||||||
/** Генерация: rand() */
|
/** Генерация: rand() */
|
||||||
case random;
|
case random;
|
||||||
|
|
||||||
/** Генерация: random_bytes(10) */
|
/** Генерация: random_int(0, PHP_INT_MAX) */
|
||||||
case crypto;
|
case crypto;
|
||||||
|
|
||||||
/** Генерация: sodium_crypto_generichash() */
|
|
||||||
case hash;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,14 +55,14 @@ enum generate
|
||||||
final class messages extends method
|
final class messages extends method
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var send $send_mode Режим отправки сообщений
|
* @var message_send $send_mode Режим отправки сообщений
|
||||||
*/
|
*/
|
||||||
protected send $send_mode = send::simple;
|
protected message_send $send_mode = message_send::simple;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var generate $generate_mode Режим генерации идентификатора сессии доставки сообщения
|
* @var random_id $generate_mode Режим генерации идентификатора сессии доставки сообщения
|
||||||
*/
|
*/
|
||||||
protected generate $generate_mode = generate::date;
|
protected random_id $generate_mode = random_id::crypto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ?int $lat Географическая ширина
|
* @var ?int $lat Географическая ширина
|
||||||
|
@ -200,7 +197,7 @@ final class messages extends method
|
||||||
* @param bool $disable_mentions Отключить уведомление об упоминании в сообщении?
|
* @param bool $disable_mentions Отключить уведомление об упоминании в сообщении?
|
||||||
* @param ?string $intent Интент
|
* @param ?string $intent Интент
|
||||||
* @param ?int $subscribe_id Число, которое будет использоваться для работы с интентами
|
* @param ?int $subscribe_id Число, которое будет использоваться для работы с интентами
|
||||||
* @param int|string|null $random_id Идентификатор сессии доставки сообщения (защита от повторных отправок)
|
* @param ?int $random_id Идентификатор сессии доставки сообщения (защита от повторных отправок)
|
||||||
*
|
*
|
||||||
* @return int|array Идентификатор успешно отправленного сообщения или ответ сервера (подразумевается ошибка)
|
* @return int|array Идентификатор успешно отправленного сообщения или ответ сервера (подразумевается ошибка)
|
||||||
*
|
*
|
||||||
|
@ -228,7 +225,7 @@ final class messages extends method
|
||||||
bool $disable_mentions = false,
|
bool $disable_mentions = false,
|
||||||
?string $intent = null,
|
?string $intent = null,
|
||||||
?int $subscribe_id = null,
|
?int $subscribe_id = null,
|
||||||
int|string|null $random_id = null,
|
?int $random_id = null,
|
||||||
): int|array {
|
): int|array {
|
||||||
// Реинициализация настроек
|
// Реинициализация настроек
|
||||||
$this->robot->api->reinit();
|
$this->robot->api->reinit();
|
||||||
|
@ -240,11 +237,10 @@ final class messages extends method
|
||||||
|
|
||||||
// Инициализация идентификатора сессии доставки сообщения (защита от повторных отправок)
|
// Инициализация идентификатора сессии доставки сообщения (защита от повторных отправок)
|
||||||
$this->robot->api['random_id'] = $random_id ?? match ($this->generate_mode) {
|
$this->robot->api['random_id'] = $random_id ?? match ($this->generate_mode) {
|
||||||
generate::date => time(),
|
random_id::date => time(),
|
||||||
generate::random => rand(),
|
random_id::random => rand(),
|
||||||
generate::crypto => random_bytes(10),
|
random_id::crypto => random_int(0, PHP_INT_MAX),
|
||||||
generate::hash => sodium_crypto_generichash(random_bytes(10)),
|
default => random_int(0, PHP_INT_MAX)
|
||||||
default => time()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Инициализация текста в настройках API
|
// Инициализация текста в настройках API
|
||||||
|
@ -309,7 +305,7 @@ final class messages extends method
|
||||||
throw new Exception('ВКонтакте: ' . $request->error->error_msg, $request->error->error_code);
|
throw new Exception('ВКонтакте: ' . $request->error->error_msg, $request->error->error_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->send_mode === send::check) {
|
if ($this->send_mode === message_send::check) {
|
||||||
// Надёжная доставка сообщения
|
// Надёжная доставка сообщения
|
||||||
|
|
||||||
if (!empty($request["response"])) {
|
if (!empty($request["response"])) {
|
||||||
|
|
|
@ -4,12 +4,12 @@ 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 Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фотографии (изображения)
|
* Фотографии (изображения)
|
||||||
|
@ -22,7 +22,7 @@ use mirzaev\accounts\vk as account;
|
||||||
* @package mirzaev\vk\api\methods
|
* @package mirzaev\vk\api\methods
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
*
|
*
|
||||||
* @todo Добавить обработку ошибок ($request['errors];)
|
* @todo Добавить обработку ошибок ($request['errors])
|
||||||
*/
|
*/
|
||||||
final class photos extends method
|
final class photos extends method
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue