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