From b2fcb9fb91e17066385d46d4593d6672e102f45d Mon Sep 17 00:00:00 2001 From: Danil Nemov Date: Fri, 26 Apr 2024 18:05:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B0=D0=BA=D1=82=D1=83=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=84=D0=BB=D0=B0=D0=B3=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B1=D0=B5=D1=81=D0=B5=D0=B4=20=D0=B8=20=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 167 ++++++++++++++++++++++++------------------------------ 1 file changed, 75 insertions(+), 92 deletions(-) diff --git a/README.md b/README.md index 063612d..cf27f50 100644 --- a/README.md +++ b/README.md @@ -418,10 +418,7 @@ type Event9 = [ ### Событие 10. Сброс флагов беседы -Все возможные флаги описаны в [12 событии](#событие-12-установка-флагов-беседы) - -Вместе со сбросом `14` флага сбрасывается и `10`, который мог вообще не быть в списке флагов. -Сделано это для обратной совместимости +Флаги бесед описаны [здесь](#флаги-бесед). ```ts type Event10 = [ @@ -433,43 +430,7 @@ type Event10 = [ ### Событие 12. Установка флагов беседы -Возможные флаги беседы: - -`1 << 4` (`16`) - Беседа замьючена - -`1 << 5` (`32`) - Звук в беседе выключен (сомнительный флаг) - -`1 << 8` (`256`) - Входящий запрос на переписку / вступление в беседу - -`1 << 9` (`512`) - Отклоненный запрос на переписку / вступление в беседу - -`1 << 10` (`1024`) - Наличие упоминания - -`1 << 11` (`2048`) - Не отображать беседу при поиске - -`1 << 12` (`4096`) - Внутренний флаг - -`1 << 13` (`8192`) - Беседа в статусе бизнес-уведомления - -`1 << 14` (`16384`) - Наличие маркированного сообщения: упоминание или исчезающее сообщение - -`1 << 16` (`65536`) - Фантомный чат - -`1 << 18` (`262144`) - Не присылать уведомлений о `@all` и `@online` - -`1 << 19` (`524288`) - Не присылать уведомлений о всех упоминаниях - -`1 << 20` (`1048576`) - Беседа помечена как непрочитанная - -`1 << 22` (`4194304`) - Беседа в статусе входящего запроса на переписку (наличие флага `8` или `9`) - -`1 << 23` (`8388608`) - Беседа помещена в архив - -`1 << 24` (`16777216`) - Беседа, в которой идет звонок - -`1 << 26` (`67108864`) - Признак того, что это чат -- при создании фантомного чата добавляется этот флаг и `1 << 16` -- при создании канала с чата снимается этот флаг +Флаги бесед описаны [здесь](#флаги-бесед). ```ts type Event12 = [ @@ -613,35 +574,35 @@ type Event51 = [ ### Событие 52. Изменение данных чата -| Тип | Описание | Дополнительная информация | -| :-: | :------------------------------------------------------------: | :-------------------------: | -| 0 | Из беседы был создан фантомный чат | `0` | -| 1 | Изменилось название беседы | `0` | -| 2 | Обновилась аватарка беседы | `0` | -| 3 | Назначен новый администратор | `id` администратора | -| 4 | Изменение [прав доступа](#права-доступа-в-беседах) в беседе | `mask` с правами доступа | -| 5 | Закрепление или открепление сообщения | `conversationMsgId` или `0` | -| 6 | Вступление в беседу | `id` вступившего | -| 7 | Выход из беседы | `id` вышедшего | -| 8 | Исключение из беседы | `id` исключенного | -| 9 | Разжалован администратор | `id` бывшего админа | -| 10 | Изменился баннер | `0` | -| 11 | Появление или скрытие клавиатуры | `peerId` | -| 12 | Отозвано / подтверждено / отклонено / пришло приглашение в чат | `0` / `1` / `2` / `3` | -| 13 | Контакт был сконвертирован в юзера (`contactId` -> `userId`) | `contactId` | -| 14 | Произошло любое действие с бизнес-уведомлением | `0` | -| 15 | Вы отозвали приглашение контакта или юзера в чат | `contactId` или `userId` | -| 16 | Контакт или юзер отклонил приглашение в чат | `contactId` или `userId` | -| 17 | Контакт или юзер принял приглашение в чат | `contactId` или `userId` | -| 18 | Контакт или юзера пригласили в чат | `contactId` или `userId` | -| 19 | Начало или окончание группового звонка | `1` в начале, `0` в конце | -| 22 | Чат больше не новый: пришло первое сообщение (только в лс) | `0` | -| 23 | Изменено оформление чата | `0` | -| 24 | Изменилось описание чата | `0` | -| 25 | Изменилось состояние `chat_settings.short_poll_reactions` | `0` / `1` | -| 26 | _soon_ | _soon_ | -| 27 | _soon_ | _soon_ | -| 28 | _soon_ | _soon_ | +| Тип | Описание | Дополнительная информация | +| :-: |:--------------------------------------------------------------:|:---------------------------:| +| 0 | Из беседы был создан фантомный чат | `0` | +| 1 | Изменилось название беседы | `0` | +| 2 | Обновилась аватарка беседы | `0` | +| 3 | Назначен новый администратор | `id` администратора | +| 4 | Изменение [прав доступа](#права-доступа-в-беседах) в беседе | `mask` с правами доступа | +| 5 | Закрепление или открепление сообщения | `conversationMsgId` или `0` | +| 6 | Вступление в беседу | `id` вступившего | +| 7 | Выход из беседы | `id` вышедшего | +| 8 | Исключение из беседы | `id` исключенного | +| 9 | Разжалован администратор | `id` бывшего админа | +| 10 | Изменился баннер | `0` | +| 11 | Появление или скрытие клавиатуры | `peerId` | +| 12 | Отозвано / подтверждено / отклонено / пришло приглашение в чат | `0` / `1` / `2` / `3` | +| 13 | Контакт был сконвертирован в юзера (`contactId` -> `userId`) | `contactId` | +| 14 | Произошло любое действие с бизнес-уведомлением | `0` | +| 15 | Вы отозвали приглашение контакта или юзера в чат | `contactId` или `userId` | +| 16 | Контакт или юзер отклонил приглашение в чат | `contactId` или `userId` | +| 17 | Контакт или юзер принял приглашение в чат | `contactId` или `userId` | +| 18 | Контакт или юзера пригласили в чат | `contactId` или `userId` | +| 19 | Начало или окончание группового звонка | `1` в начале, `0` в конце | +| 22 | Чат больше не новый: пришло первое сообщение (только в лс) | `0` | +| 23 | Изменено оформление чата | `0` | +| 24 | Изменилось описание чата | `0` | +| 25 | Изменилось состояние `chat_settings.short_poll_reactions` | `0` / `1` | +| 26 | Добавление инкогнито юзера в чат | `incognitoId` | +| 27 | Конвертация инкогнито юзера в обычного юзера | `incognitoId` | +| 28 | Удаление инкогнито юзера из чата | `incognitoId` | При изменении названия (`1`) и обновлении аватарки беседы (`2`) нужные данные можно взять из [сервисного сообщения](#сервисные-сообщения) в [4 событии](#событие-4-новое-сообщение). @@ -961,34 +922,34 @@ const mask = 1 + 2 + 8 + 64 + 1024; const mask = (1 << 0) | (1 << 1) | (1 << 3) | (1 << 6) | (1 << 10); ``` -| Название | Описание | Бит | Значение | -| :------------: | :--------------------------------------: | :-------: | :--------: | -| unread | Непрочитанное сообщение | `1 << 0` | `1` | -| outbox | Исходящее сообщение | `1 << 1` | `2` | -| important | Важное сообщение | `1 << 3` | `8` | -| chat_vkcom | Отправка сообщения в беседу через vk.com | `1 << 4` | `16` | -| friends | Исходящее; входящее от друга в лс | `1 << 5` | `32` | -| spam | Пометка сообщения как спам | `1 << 6` | `64` | -| deleted | Удаление сообщения локально | `1 << 7` | `128` | -| audio_listened | Прослушано голосовое сообщение | `1 << 12` | `4096` | -| chat | Отправка сообщения в беседу | `1 << 13` | `8192` | -| cancel_spam | Отмена пометки как спам | `1 << 15` | `32768` | -| old_minor_id | Сообщение не поднимает диалог вверх | `1 << 16` | `65536` | -| deleted_all | Удаление сообщения для всех | `1 << 17` | `131072` | -| not_delivered | Внутренний флаг | `1 << 18` | `262144` | -| chat_in | Входящее сообщение в беседе | `1 << 19` | `524288` | -| silent | Сообщение без уведомления | `1 << 20` | `1048576` | -| reply_msg | Ответ на сообщение | `1 << 21` | `2097152` | -| auto_read | Сообщение пришло сразу прочитанным | `1 << 23` | `8388608` | -| has_ttl | Внутренний флаг | `1 << 26` | `67108864` | +| Бит | Значение | Описание | +|:---------:|:----------:|:--------------------------------------------------------------------------------------:| +| `1 << 0` | `1` | Непрочитанное сообщение | +| `1 << 1` | `2` | Исходящее сообщение | +| `1 << 3` | `8` | Важное сообщение | +| `1 << 4` | `16` | **[deprecated]** Сообщение из группового чата | +| `1 << 5` | `32` | **[deprecated]** Сообщение от друга | +| `1 << 6` | `64` | Сообщение помечено как спам | +| `1 << 7` | `128` | Сообщение удалено локально | +| `1 << 12` | `4096` | Прослушано голосовое сообщение | +| `1 << 13` | `8192` | Сообщение из группового чата | +| `1 << 15` | `32768` | 🤔 Сообщение перемещено в список спама | +| `1 << 16` | `65536` | Не обновлять `minor_id`, т.е. не поднимать чат в списке | +| `1 << 17` | `131072` | Сообщение удалено для всех | +| `1 << 18` | `262144` | **[internal]** | +| `1 << 19` | `524288` | **[internal]** | +| `1 << 20` | `1048576` | Не показывать пуш/уведомление для этого сообщения | +| `1 << 21` | `2097152` | Сообщение с ответом на другое сообщение | +| `1 << 22` | `4194304` | Сообщение будет удалено при окончании TTL | +| `1 << 23` | `8388608` | Сообщение придет автоматически прочитанным, если ранее не было непрочитанных сообщений | +| `1 << 24` | `16777216` | Наличие реакции у сообщения | +| `1 << 26` | `67108864` | **[internal]** | Бесшумное сообщение можно отправить, добавив к параметрам метода [`messages.send`](https://dev.vk.com/method/messages.send) ключ `silent: true`: - Такое сообщение отправится без уведомления пользователю, даже если у него включены уведомления - Упоминание или ответ на сообщение тоже не отправит уведомления - Сообщение о выходе из беседы автоматически приходит без уведомления -`not_delivered` и `has_ttl` приходят для бизнес-уведомлений - Пример определения наличия флага в маске: ```js const mask = 1 | 2 | 32; // = 35 @@ -997,6 +958,28 @@ const mask = 1 | 2 | 32; // = 35 2 & mask // вернет 2 (true) ``` +### Флаги бесед + +| Бит | Значение | Описание | +|:---------:|:----------:|:--------------------------------------------------------------------------:| +| `1 << 4` | `16` | Отключение пуш уведомлений | +| `1 << 5` | `32` | Отключение звука уведомлений | +| `1 << 8` | `256` | Входящий запрос на переписку / вступление в беседу | +| `1 << 9` | `512` | Отклоненный запрос на переписку / вступление в беседу | +| `1 << 10` | `1024` | Наличие упоминания | +| `1 << 11` | `2048` | Не отображать беседу при поиске | +| `1 << 12` | `4096` | **[internal]** | +| `1 << 13` | `8192` | Беседа с бизнес-уведомлениями | +| `1 << 14` | `16384` | Наличие маркированного сообщения: упоминание или исчезающее сообщение | +| `1 << 16` | `65536` | Беседа, которая не пропадает из списка чатов (не сбрасывается `minor_id`) | +| `1 << 18` | `262144` | Не присылать уведомления об `@all` и `@online` | +| `1 << 19` | `524288` | Не присылать уведомления о всех упоминаниях | +| `1 << 20` | `1048576` | Беседа помечена как непрочитанная | +| `1 << 22` | `4194304` | **[internal]** | +| `1 << 23` | `8388608` | Беседа помещена в архив | +| `1 << 24` | `16777216` | Беседа, в которой идет звонок | +| `1 << 26` | `67108864` | Признак того, что это чат: при создании старого канала снимается этот флаг | + ### Сервисные сообщения Сервисное сообщение описывается ключом `source_act` и ключами с дополнительными данными в объекте `additional` из [структуры сообщения](#структура-сообщения).