Files
jellybit/docs/backlog/knopka-obnovit-imya-polnyj-format.md
T
avandClaude Opus 4.8 e8ce828296 Беклог: полный формат ярлыка «Обновить имя» + скрытие cancelled в списке
- Кнопка «Обновить имя» должна давать формат add-шага (Название (режиссёр,
  год), сезон; всё опц. кроме названия) вместо усечённого «Title (Year)».
- Отменённые (cancelled) скрывать в общем списке наравне с удалёнными;
  тумблер «показать удалённые» раскрывает и cancelled, и deleted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 20:25:11 +03:00

3.1 KiB

Кнопка «Обновить имя»: полный формат ярлыка (Название (режиссёр, год), сезон)

Приоритет: низкий · Теги: web-ui, naming, review

Кнопка «Обновить имя» (перелив распознанного названия в display_name и ярлык раздачи) сейчас генерирует усечённый формат Title (Year) через naming.FormatTitleYear(plan.Title, plan.Year) (internal/worker/review.go:1110). Ожидается тот же формат, что и «полное» отображаемое имя add-шага: Название (режиссёр, год), а для сериала — плюс . Сезон N. Всё опционально, кроме названия.

Нужный формат уже реализован приватной render() в internal/naming/naming.go:104-140 (movie: "Title (Director, Year)", series

  • ". Сезон N"), но RefreshDisplayName его не использует — комментарий у FormatTitleYear (naming.go:88-95) прямо отмечает: «у перелива режиссёра и сезона нет». Задача — устранить это расхождение: перелив должен давать тот же ярлык, что и add-шаг.

Шаги:

  • Экспонировать render-логику (публичная обёртка в internal/naming) или собрать extracted из плана и позвать её из RefreshDisplayName.
  • Сезон — из плана (recognize.PlanFile.Season, recognize.go:77): для сериала взять сезон (единый — подставить, разные — решить: опустить или взять минимальный; свериться с логикой сводки сезонов на странице).
  • Режиссёр — открытый вопрос: в recognize.Plan его сейчас нет. Найти источник (матч метабазы TMDB/TVDB несёт режиссёра? recognition?) или, если недоступен, опустить (формат допускает отсутствие). Уточнить, откуда add-шаг берёт режиссёра, и переиспользовать тот же источник.
  • Все части, кроме названия, опциональны — пустой режиссёр/год/сезон просто выпадают из скобок/хвоста (как уже делает render).

Проверить: единый формат ярлыка раздачи и display_name; санитайзинг и лимит длины (maxNameLen) сохраняются; поведение на done/orphaned (кнопка гейтится наличием распознавания, не состоянием — internal/httpapi/download.go:142).

Связано: openspec/specs/recognition, openspec/specs/review, пакеты internal/naming, internal/worker, internal/recognize.