Files
jellybit/docs/research/torrent-bot-message.md
av 42d5b73a04 docs: перевод документации на канон av-dev
- Раскладка docs/ приведена к канону 2: заведены passport/architecture/
  database/security/review и research; docs/specs, drafts, backlog, review/
  и BRIEF.md разобраны и удалены, беклог переехал в docs/tasks (34 задачи,
  6 целей, слаги на английский).
- Нарративы specs удалены как дубли openspec-спек после поимённой сверки;
  остаток заведён задачами (редактор маппинга ревью, крайние случаи
  именования), отказ от сущности title промоутнут в ADR.
- Проектные копии агентов и скиллов ревью/пайплайна удалены в пользу
  плагинов av-dev-pm и av-dev-pipeline; в task gate добавлен шаг canon
  вместо er-schema.
2026-08-04 09:27:26 +03:00

5.7 KiB
Raw Permalink Blame History

Формат сообщения торрент-бота

Основной способ добавления загрузки — переслать в jellybit сообщение стороннего торрент-бота (exfreedomist, поиск по rutracker и соседним трекерам). Из сообщения берутся источник (magnet) и контекст для распознавания. Формат чужой, ничем не документирован и может измениться без предупреждения.

Провенанс. Образец снят вручную из личного чата Telegram (сообщение датировано 2026-03-21) и зафиксирован в [BRIEF.md] проекта; второй образец, меньшего размера, живёт константой botMessage в internal/tgbot/parse_test.go и проверяется тестами разборщика. Статистики по вариантам формата нет — наблюдений всего два, и это условие, а не замер.

[BRIEF.md]: перенесён в ../passport.md; полный текст образца — ниже и в истории git.

Образец

[1] #6514485 [rutracker], 2026-03-21 (https://hashurl.ru/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…):
Дюна: Часть вторая / Dune: Part Two (Дени Вильнёв / Denis Villeneuve) [2024, США, Канада, фантастика, WEB-DL 2160p, HDR10+, Dolby Vision] Dub (Bravo Records Georgia, RHS, Jaskier, HDrezka) + MVO (LostFilm, TVShows, Jaskier) + AVO (Сербин, Яроцкий) + (Ukr) + Original (Eng) + Sub (Rus, Eng, Ukr)

✅ (проверено) | 34.82 GB

magnet:?xt=urn:btih:541ADCFF3B6DD5DBA7088EA83317D9D6FAC331D6&tr=http%3A%2F%2Fbt.t-ru.org%2Fann%3Fmagnet&dn=rutracker-topic-6514485

Открыть magnet в вашем клиенте  (https://hashurl.ru/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…)
или получить .torrent: /tr_5c054

Оцените раздачу:
👍: /g_eabdce или 👎🏿: /r_eabdce

[список файлов] (https://download.exfreedomist.com/files/541ADCFF3B6DD5DBA7088EA83317D9D6FAC331D6)

Следить: /us_5c054
Добавить в закладки: /mka_96423

cправка: /help, index (https://exfreedomist.com/stats/)

Что из этого наблюдается

  • Заголовок строки 1 — порядковый номер выдачи, #<topic-id>, имя трекера в квадратных скобках, дата раздачи и ссылка-редирект hashurl.ru с JWT в пути. Токен в ссылке имеет срок жизни (exp в payload) — как долгоживущий идентификатор он не годится.
  • Строка описания — самый ценный кусок: локализованное название, оригинальное название через /, режиссёр в скобках (тоже через /), затем блок в квадратных скобках [год, страны, жанры, качество, HDR…] и перечисление дорожек и субтитров. Именно она уходит контекстом в распознавание.
  • Разделитель / используется одновременно для пары «локализованное / оригинальное» и для пары «имя режиссёра кириллицей / латиницей». По позиции они не различаются — только по тому, что вторая пара стоит в скобках.
  • magnet отдельной строкой, с dn=rutracker-topic-<id> — то есть dn здесь не содержит названия фильма и как имя раздачи бесполезен. Инфохэш в magnet — v1, uppercase hex; нормализуем в lowercase.
  • .torrent не приложен — предлагается командой бота (/tr_…), то есть вторым шагом в чужом чате. Поэтому источник, приходящий этим путём, — практически всегда magnet.
  • Размер раздачи в человекочитаемом виде (34.82 GB) и отметка « (проверено)».
  • Команды бота (/g_…, /r_…, /us_…, /mka_…, /help) и ссылка на список файлов — шум для распознавания, но безвредный: попадают в контекст как есть.
  • Весь текст — недоверенный вход: он полностью составляется чужим ботом по данным трекера и уезжает в промпт LLM. См. ../security.md.

Чего не знаем

  • Насколько формат стабилен: наблюдений два, оба от одного бота, разница между ними — только в наличии строки «сохранённая копия описания раздачи».
  • Как выглядит сообщение для сериала-сезонника и для аниме — образцов не снимали, а именно на них строится самый сложный случай раскладки.
  • Что бот присылает при неудачном поиске и при слишком длинном описании (обрезка Telegram — 4096 символов на сообщение).