SHA256
Каналы: создавать профиль одним блоком
This commit is contained in:
@@ -9,6 +9,23 @@ Payload включает:
|
||||
4. `channelType` (`uint16`, 2 байта);
|
||||
5. `channelTypeVersion` (`uint16`, 2 байта).
|
||||
|
||||
### `channelDescription`
|
||||
|
||||
`channelDescription` хранится как `uint16 length + UTF-8`, максимум `2048` байт.
|
||||
|
||||
Для публичных каналов (`channelType=1`) поле является начальным снимком профиля канала и использует тот же текстовый meta-формат, что `TEXT_CHANNEL_META`:
|
||||
|
||||
```text
|
||||
<SHiNE:title;v=1;Название канала>
|
||||
<SHiNE:avatar;v=1;size=248193;sha256=3f2c8a...;ar=AbCdEf...>
|
||||
Описание канала.
|
||||
```
|
||||
|
||||
Если `title` отсутствует, человекочитаемым именем считается техническое `channelName`.
|
||||
Если `avatar` отсутствует, канал создаётся без аватара.
|
||||
|
||||
Новые UI-клиенты создают публичный канал одним блоком `TECH_CREATE_CHANNEL`; отдельный `TEXT_CHANNEL_META` при создании не пишется. `TEXT_CHANNEL_META` используется для последующих изменений профиля канала.
|
||||
|
||||
## 2. Типы каналов
|
||||
- `0` — `stories` (root-канал пользователя).
|
||||
- `1` — публичный канал.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# TEXT_CHANNEL_META: профиль канала
|
||||
|
||||
`TEXT_CHANNEL_META` — скрытый технический `TEXT`-блок для полного снимка профиля канала.
|
||||
`TEXT_CHANNEL_META` — скрытый технический `TEXT`-блок для полного снимка профиля канала после создания.
|
||||
|
||||
## Блок
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
Блок пишется только в линию канала владельца. В обычной ленте сообщений он не отображается как пользовательский пост.
|
||||
|
||||
Первый снимок профиля публичного канала хранится прямо в `TECH_CREATE_CHANNEL.channelDescription` тем же текстовым форматом. Отдельный `TEXT_CHANNEL_META` при создании нового публичного канала UI не пишет.
|
||||
|
||||
## Текстовый формат
|
||||
|
||||
В начале текста могут идти технические теги, после них обычный текст описания:
|
||||
@@ -48,7 +50,7 @@
|
||||
|
||||
## UI
|
||||
|
||||
- При создании канала UI может сразу после `TECH_CREATE_CHANNEL` записать первый `TEXT_CHANNEL_META` с человекочитаемым именем, аватаром и описанием.
|
||||
- При создании публичного канала UI записывает человекочитаемое имя, аватар и описание в `TECH_CREATE_CHANNEL.channelDescription`.
|
||||
- При создании канала UI показывает системную карточку `Создан канал ...`.
|
||||
- При записи `TEXT_CHANNEL_META` UI показывает системную карточку `Изменён профиль канала`.
|
||||
- У системных карточек нет лайка, ответа, репоста, редактирования и других действий обычного сообщения.
|
||||
|
||||
@@ -121,6 +121,13 @@
|
||||
- Команда `/.desc` удалена из актуальной модели изменения описания канала; профиль канала меняется только через `TEXT_CHANNEL_META`.
|
||||
- API чтения каналов расширен полями `displayName`, `avaAr`, `avaSha256`, `avaSize`, `metaUpdatedAtMs` и списком `metaEvents`.
|
||||
|
||||
## 2026-08-01 02:18:00 +0400
|
||||
- Базовый коммит-ориентир: `8125d1a`.
|
||||
- Увеличен лимит `CreateChannelBody.channelDescription` до `2048` UTF-8 байт.
|
||||
- Для публичных каналов начальный профиль канала теперь хранится прямо в `TECH_CREATE_CHANNEL.channelDescription` тем же meta-форматом, что `TEXT_CHANNEL_META`.
|
||||
- UI создания публичного канала больше не пишет отдельный `TEXT_CHANNEL_META` сразу после создания; отдельный meta-блок используется только для последующих изменений профиля.
|
||||
- Bootstrap `channel_names_state` при старте сервера теперь применяет последующие `TEXT_CHANNEL_META` поверх начального профиля из `TECH_CREATE_CHANNEL`.
|
||||
|
||||
## 2026-07-31 17:40:31 +0400
|
||||
- Базовый коммит-ориентир: `d640dd6`.
|
||||
- Формат блокчейна не менялся.
|
||||
|
||||
Reference in New Issue
Block a user