- каталог задач: PLAN.md → ROADMAP.md с каноническими секциями, все 44 записи получили тип, заголовки приведены к форме своего типа - расхождения, найденные судьями канона: исключения инварианта «источник неприкосновенен», инвариант про один активный infohash, UTC в logging.md, поведение из architecture.md заменено ссылками на спеки - триггеры профиля ревью переписаны под умолчание standard
25 lines
1.7 KiB
Markdown
25 lines
1.7 KiB
Markdown
# ✨ Спаривать VobSub .idx+.sub и проставлять языковой суффикс субтитра
|
||
|
||
- **Тип:** feature
|
||
- **Категория:** Ядро продукта
|
||
- **Зачем:** Привязка субтитр→серия уже работает; остались пары VobSub .idx+.sub и потеря Lang/Flags
|
||
- **Теги:** goal:complex-releases
|
||
|
||
Базовая привязка субтитр→серия для сериала уже работает: `layout.PlanFile` несёт
|
||
`Season/Episode`, а `seriesDst` именует субтитр по стему эпизода
|
||
(`internal/layout/layout.go`, код старше аудита 2026-07-03). Для фильма тоже —
|
||
субтитр именуется по базе видеофайла.
|
||
|
||
Реальные пробелы, оставшиеся от аудита:
|
||
|
||
- **Пары VobSub** `.idx`+`.sub` не спариваются — их надо переносить вместе как одну
|
||
дорожку.
|
||
- **Языковой суффикс теряется:** у `recognize.PlanFile` нет полей `Lang/Flags`, и
|
||
`toLayoutPlan` (`internal/httpapi/review.go`) не проставляет язык — субтитр ляжет
|
||
без `*.ru.srt`-суффикса, который ждёт Jellyfin.
|
||
|
||
Смоделировать язык/флаги субтитра сквозь recognize→layout и спаривание `.idx`+`.sub`;
|
||
спека recognition уже требует «внешние субтитры SHALL привязываться к видео».
|
||
|
||
Связано: openspec/specs/recognition, specs/jellyfin-layout.md, пакеты recognize, layout.
|