Files
SHiNE-server/docs/Blockchain/16_TEXT_Channel_Meta.md
T

3.9 KiB
Raw Blame History

TEXT_CHANNEL_META: профиль канала

TEXT_CHANNEL_META — скрытый технический TEXT-блок для полного снимка профиля канала после создания.

Блок

  • msg_type = 1
  • subType = 90
  • msgVersion = 1
  • body использует тот же бинарный формат line-текста, что и TEXT_POST: line-поля + textLen + UTF-8 текст.

Блок пишется только в линию канала владельца. В обычной ленте сообщений он не отображается как пользовательский пост.

Первый снимок профиля публичного канала хранится прямо в TECH_CREATE_CHANNEL.channelDescription тем же текстовым форматом. Отдельный TEXT_CHANNEL_META при создании нового публичного канала UI не пишет.

Текстовый формат

В начале текста могут идти технические теги, после них обычный текст описания:

<SHiNE:title;v=1;Название канала>
<SHiNE:avatar;v=1;size=248193;sha256=3f2c8a...;ar=AbCdEf...>
Описание канала.

Поддерживаемые теги:

  • <SHiNE:title;v=1;...> — человекочитаемое имя канала.
  • <SHiNE:avatar;v=1;size=...;sha256=...;ar=...> — аватар канала в Arweave.

Правила

  • Каждый TEXT_CHANNEL_META задаёт полный снимок состояния профиля канала.
  • Старые meta-блоки остаются в блокчейне как история, но текущее состояние берётся из последнего валидного meta-блока.
  • Если title отсутствует, используется техническое имя канала.
  • Если avatar отсутствует, аватар считается сброшенным.
  • Если описание после тегов отсутствует, описание считается пустым.
  • meta_updated_at_ms равен времени самого валидного meta-блока.

Ограничения

  • Длина title — максимум 50 Unicode code points.
  • В title запрещены <, >, ;, табуляция, перевод строки и \0.
  • Длина описания — максимум 250 Unicode code points.
  • avatar.ar — Arweave transaction id из 43 символов.
  • avatar.sha256 — 64 hex-символа.
  • avatar.size — положительный размер файла в байтах.

Если meta-блок невалиден, сервер не применяет его целиком.

UI

  • При создании публичного канала UI записывает человекочитаемое имя, аватар и описание в TECH_CREATE_CHANNEL.channelDescription.
  • При создании канала UI показывает системную карточку Создан канал ....
  • При записи TEXT_CHANNEL_META UI показывает системную карточку Изменён профиль канала.
  • У системных карточек нет лайка, ответа, репоста, редактирования и других действий обычного сообщения.
  • По клику на системную карточку показываются аватар, человекочитаемое имя и описание на момент этого события.

Замена старых команд

Команда /.desc больше не используется и не применяется сервером. Описание канала меняется только через TEXT_CHANNEL_META.