Правки после ревью документации
This commit is contained in:
@@ -18,7 +18,9 @@ movies/
|
||||
- provider-id в имени папки (`[tmdbid-...]`) добавляется при работе с
|
||||
базой — снимает неоднозначность для русских названий, которые Jellyfin
|
||||
иначе может опознать неверно.
|
||||
- Внешние субтитры — `Имя.<lang>.srt`, при необходимости `.forced`.
|
||||
- Внешние субтитры — `Имя.<lang>[.flag].srt` (флаги `forced`/`sdh`/
|
||||
`default`/`hi`), напр. `…ru.forced.srt`; база имени совпадает с именем
|
||||
видеофайла. Пары VobSub — `.idx` + `.sub`.
|
||||
|
||||
## Сериалы
|
||||
|
||||
@@ -35,18 +37,32 @@ series/
|
||||
|
||||
## Сопоставление источник → цель
|
||||
|
||||
qBittorrent держит файлы в `paths.downloads`. Для каждого распознанного
|
||||
файла создаётся **хардлинк** в `paths.movies` / `paths.series` с целевым
|
||||
именем. Исходный файл остаётся на месте (раздача продолжается), inode
|
||||
общий — диск не дублируется.
|
||||
Источник берём по пути из qBittorrent (`save_path`/`content_path` +
|
||||
относительное имя, после трансляции `path_map` в хост-путь). Для каждого
|
||||
распознанного **файла** (не каталога) создаётся **хардлинк** в
|
||||
`paths.movies`/`paths.series`; целевые каталоги — `mkdir` (0755,
|
||||
`1000:1000`). Исходный файл остаётся на месте (раздача продолжается),
|
||||
inode общий — диск не дублируется.
|
||||
|
||||
Требование: целевой и исходный каталоги — на одной ФС.
|
||||
Целевое имя строится из распознанных полей и **санитизируется** (без
|
||||
разделителей пути, `..`, управляющих символов); финальный путь обязан
|
||||
быть строго под библиотекой. Существующую цель **не перезаписываем** (тот
|
||||
же inode → готово; другой файл → коллизия → review). Инварианты и undo —
|
||||
в [architecture.md](architecture.md) → «Раскладка файлов».
|
||||
|
||||
Требование: целевой и исходный каталоги — на одной ФС (внутри контейнера
|
||||
jellybit это обеспечивает mount `/srv`).
|
||||
|
||||
## Крайние случаи
|
||||
|
||||
- **Многофайловый фильм** (части) — `... part1`, `... part2` в одной
|
||||
папке фильма.
|
||||
- **Сезон-пак** — все серии в один `Season xx`.
|
||||
- **Многофайловый фильм** (части) — стэкинг по точному токену Jellyfin
|
||||
(`… - part1`/`cd1`); точный формат уточнить при реализации.
|
||||
- **Редакции** — `Имя (Год) [edition-Director's Cut]` либо отдельные
|
||||
версии в папке фильма.
|
||||
- **Двойная серия** в одном файле — `… SxxEyy-Eyy`.
|
||||
- **Спецвыпуски** — `Season 00`.
|
||||
- **Сезон-пак** — серии в один `Season xx`; смешанный пак — по per-file
|
||||
сезонам.
|
||||
- **Несколько аудиодорожек** — обычно внутри mkv, не наша забота.
|
||||
- **Аниме с абсолютной нумерацией** — требует пересчёта в S·E, отдельная
|
||||
проработка ([drafts/ideas.md](../drafts/ideas.md)).
|
||||
- **Аниме с абсолютной нумерацией** — пересчёт в S·E, отдельная проработка
|
||||
([drafts/ideas.md](../drafts/ideas.md)).
|
||||
|
||||
Reference in New Issue
Block a user