Skip to content

Commit

Permalink
актуализация флагов бесед и чатов
Browse files Browse the repository at this point in the history
  • Loading branch information
danyadev committed Apr 26, 2024
1 parent bda1016 commit b2fcb9f
Showing 1 changed file with 75 additions and 92 deletions.
167 changes: 75 additions & 92 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -418,10 +418,7 @@ type Event9 = [
### Событие 10. Сброс флагов беседы
Все возможные флаги описаны в [12 событии](#событие-12-установка-флагов-беседы)
Вместе со сбросом `14` флага сбрасывается и `10`, который мог вообще не быть в списке флагов.
Сделано это для обратной совместимости
Флаги бесед описаны [здесь](#флаги-бесед).
```ts
type Event10 = [
Expand All @@ -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 = [
Expand Down Expand Up @@ -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-новое-сообщение).
Expand Down Expand Up @@ -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
Expand All @@ -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` из [структуры сообщения](#структура-сообщения).
Expand Down

0 comments on commit b2fcb9f

Please sign in to comment.