SHA256
Сервер: добавить новые TEXT типы и STATUS_ACTION
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# STATUS_ACTION блоки (`type=5`, `version=1`)
|
||||
|
||||
`STATUS_ACTION` хранит статусные действия пользователя по отношению к конкретному материалу.
|
||||
|
||||
## Подтипы
|
||||
|
||||
1. `subType=10` — `STATUS_DONE_ONCE`
|
||||
- выполнил / прошёл один раз.
|
||||
|
||||
2. `subType=20` — `STATUS_INTERESTED`
|
||||
- заинтересовался материалом.
|
||||
|
||||
3. `subType=30` — `STATUS_STARTED`
|
||||
- начал.
|
||||
|
||||
4. `subType=40` — `STATUS_IN_STUDY`
|
||||
- находится в процессе полноценного изучения.
|
||||
|
||||
5. `subType=50` — `STATUS_COMPLETED`
|
||||
- завершил.
|
||||
|
||||
6. `subType=60` — `STATUS_ABANDONED`
|
||||
- бросил.
|
||||
|
||||
7. `subType=70` — `STATUS_LEARNED`
|
||||
- выучил упражнение / комплекс.
|
||||
|
||||
8. `subType=80` — `STATUS_CONFIRMED`
|
||||
- подтвердил чужой status-блок.
|
||||
|
||||
## Формат body
|
||||
|
||||
Все `STATUS_ACTION` используют один и тот же бинарный body-формат:
|
||||
|
||||
```text
|
||||
[1] toBlockchainNameLen (uint8)
|
||||
[N] toBlockchainName UTF-8
|
||||
[4] toBlockGlobalNumber
|
||||
[32] toBlockHash32
|
||||
[2] textLenBytes (uint16)
|
||||
[M] text UTF-8
|
||||
```
|
||||
|
||||
Где:
|
||||
|
||||
- `toBlockchainName` — блокчейн, в котором находится целевой материал;
|
||||
- `toBlockGlobalNumber` — номер целевого блока;
|
||||
- `toBlockHash32` — хэш целевого блока;
|
||||
- `text` — опциональное пояснение пользователя к статусу.
|
||||
|
||||
## Правила
|
||||
|
||||
- Каждый `STATUS_ACTION` всегда является target-based сообщением.
|
||||
- `STATUS_ACTION` не является line-based сообщением канала.
|
||||
- Текст может быть пустым: основной смысл задаётся самим `subType`.
|
||||
- Базовые статусы пользователь ставит сам за себя.
|
||||
- `STATUS_CONFIRMED` ставится другим человеком на конкретный status-блок.
|
||||
|
||||
## Что не поддерживается
|
||||
|
||||
- Отдельного `EDIT` для `STATUS_ACTION` нет.
|
||||
- Если нужно изменить смысл статуса, пишется новое статусное событие.
|
||||
Reference in New Issue
Block a user