Enhance metadata management in PLib video library manager by introducing new label handling features. Update LibraryDataKind to include Tags, Performers, Studios, and Collections, allowing for more granular data clearing options. Revise LibraryService to support label management during data resets, ensuring proper handling of user-added metadata. Update README.md to reflect these changes and clarify the implications of data clearing operations.

This commit is contained in:
Leonid Pershin
2026-08-10 10:50:03 +03:00
parent b82b0b4555
commit 4539a97d16
8 changed files with 216 additions and 21 deletions
+14 -8
View File
@@ -21,7 +21,8 @@
библиотеки с удалением, параметры превью и сканирования, тема. Всё пишется
в `settings.json` и подхватывается без перезапуска.
- Очистка собранных данных по видам — постеры, анимированные превью, отпечатки, технические
метаданные — каждый со своей кнопкой и текущим объёмом.
метаданные, изображения меток, теги, актёры, студии, коллекции — каждый со своей кнопкой
и текущим объёмом, плюс «очистить всё».
- Источники метаданных: список GraphQL-эндпойнтов (название, адрес, API-ключ) со схемой
stash-box. Поиск по отпечатку запускается кнопкой на странице видео; найденное показывается
списком, и применяется тем, что выбрали — название, описание, теги, актёры, студия.
@@ -238,13 +239,18 @@ dotnet test
Постеры и анимации различаются лишь тем, что просят у ffmpeg, а хозяйство у них одно, и
описано оно один раз: иначе размер кэша в настройках начал бы врать в тот же день, когда
появился второй вид файлов.
- **Очистка — по видам, и только того, что пересобирается.** `LibraryDataKind` перечисляет
ровно то, что выводится из самих файлов: постеры, анимации, отпечатки, техметаданные.
Цена очистки любого из них — время, а не информация, поэтому кнопка не спрашивает
подтверждения. Названия, теги, коллекции и прогресс просмотра в этот список сознательно
не входят: их не вернёт никакое пересканирование, так что соседство с ними в одном ряду
кнопок было бы ловушкой. Ссылки забываются раньше, чем удаляются файлы, — прерывание
в обратном порядке оставило бы библиотеку с путями в никуда.
- **Очистка — по видам, и вид говорит, чем платишь.** Первые четыре пункта
`LibraryDataKind` выводятся из самих файлов: постеры, анимации, отпечатки,
техметаданные. Их очистка стоит времени, а не информации.
Метки поначалу в список не входили — как пользовательские данные. Это перестало быть
правдой, когда теги, актёров и студии начали приезжать из источников метаданных пачками:
«очистить всё», оставляющее их, просто не делает того, что обещает. Теперь каждый вид
метки — своя кнопка, и подпись под каждой честно говорит, чем именно она восстановится:
повторным применением совпадения, или ничем, как в случае коллекций.
Ссылки забываются раньше, чем удаляются файлы, — прерывание в обратном порядке оставило
бы библиотеку с путями в никуда. А метки снимаются с загруженных видео явно, а не
каскадом в БД: каскад вычистил бы строки связи и оставил каждое видео в памяти всё ещё
держащим метку — на диске верно, на экране нет, пока что-нибудь не перечитает.
## Данные