tgbot: download id моноширинным (code) для tap-to-copy
Включён HTML parse mode у всех исходящих сообщений бота (send + edit-путь
refreshCard), download id выводится моноширинным <code> — в клиентах Telegram
по нему работает tap-to-copy (скопировать id для /download/{id} или диагностики).
Префикс # / download_id= остаётся вне <code>, чтобы копировался чистый id.
Parse mode делает разметку значимой для всех текстов, поэтому добавлен
escape-хелпер и экранированы все внешние/недоверенные фрагменты: display name,
распознанное название, источник/контекст, целевой путь, причины, provider,
error_code/error_msg (инвариант «выход LLM недоверенный»). esc применяется
последним шагом, после усечения, чтобы обрез не разрубил HTML-сущность.
Capability notifications: два ADDED-требования (формат id + экранирование).
Беклог: задача закрыта, зонтичный telegram-revyu-uvedomleniy обновлён.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,6 @@ Tududi (проект `jellybit`) больше **не** держит беклог
|
||||
## Низкий
|
||||
|
||||
- [Ревью уведомлений в Telegram (аудит текстов и формата)](telegram-revyu-uvedomleniy.md) — зонтичный проход по всем текстам бота: полнота карточек, единый язык, оформление; порождает под-задачи
|
||||
- [Download id в Telegram моноширинным (code) для tap-to-copy](telegram-download-id-code.md) — слать id как `code`; требует включить parse mode (HTML) в send() + escape всех текстов
|
||||
- [Мгновенные обновления через SSE](sse-obnovleniya.md) — Живые обновления прогресса сейчас на htmx-поллинге (фаза 2 веб-UI) — просто и работает…
|
||||
- [Шум ERROR фоновых циклов при недоступной зависимости](oshibki-klassifikaciya-i-konvencii-logirovaniya.md) — Остаток задачи логирования: ext.* ERROR-шторм при недоступном qBittorrent + эскалация устойчивого сбоя тика _(ревью Fable)_
|
||||
- [Версии/качество одного тайтла (репаки, апгрейд 1080p → 2160p)](versii-kachestvo-repaki.md) — По калибровке болей (2026-07-02) — не боль, из приоритета выпало
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# Download id в Telegram моноширинным (code) для tap-to-copy
|
||||
|
||||
**Приоритет:** низкий
|
||||
|
||||
Сейчас download id выводится в уведомлениях бота обычным текстом с префиксом `#`
|
||||
(`internal/tgbot/bot.go:288`, `render.go:26/50/151`). Хотим слать id как
|
||||
`code`-текст (моноширинный) — в клиентах Telegram по нему работает tap-to-copy,
|
||||
удобно скопировать id для перехода на `/download/{id}` или для диагностики.
|
||||
|
||||
Что учесть:
|
||||
|
||||
- `send()` (`internal/tgbot/bot.go:442`) сейчас не выставляет `ParseMode` — всё
|
||||
уходит plain text. Для `code` нужно включить parse mode. Рекомендуется **HTML**
|
||||
(`<code>%s</code>`) — экранирование проще и локальнее, чем у MarkdownV2.
|
||||
- Включение parse mode затрагивает **все** исходящие сообщения: спецсимволы в
|
||||
display name, путях, названиях сломают разметку, если их не экранировать.
|
||||
Escape-хелпера сейчас нет — нужен, плюс аккуратный проход по всем текстам
|
||||
`render.go`. Это часть общего [[telegram-revyu-uvedomleniy]] — имеет смысл делать
|
||||
вместе.
|
||||
|
||||
Связано: `internal/tgbot` (`render.go`, `bot.go`).
|
||||
@@ -13,8 +13,9 @@
|
||||
запись матча в метабазе, download id, причину `failed`.
|
||||
- **Единый язык:** в текстах бота вперемешку «задача»/«раздача»/«загрузка» —
|
||||
свести к доменному `Download` (см. [[ubiquitous-language-slovar]]).
|
||||
- **Оформление:** моноширинный download id [[telegram-download-id-code]], возможно
|
||||
акценты — упирается в parse mode + escape (общая развилка с задачей про code).
|
||||
- **Оформление:** моноширинный download id — уже сделано (HTML parse mode +
|
||||
escape всех текстов, capability `notifications`); осталось при желании добавить
|
||||
акценты поверх включённого parse mode.
|
||||
- **Не дублировать** уже заведённое: матч метабазы в боте
|
||||
[[telegram-match-metabazy]], мульти-бот адресация уведомлений
|
||||
[[uvedomleniya-multi-bot]], выбор из нескольких находок [[telegram-vybor-nahodok]].
|
||||
|
||||
Reference in New Issue
Block a user