Refactor derived data management in PLib video library manager. Introduce functionality to clear specific types of derived data, including thumbnails, animated previews, perceptual hashes, and technical metadata. Update ILibraryService and LibraryService to support new data usage reporting and reset operations. Revise SettingsViewModel and UI components to reflect these changes, enhancing user control over data management. Update README.md to document new features and usage instructions.

This commit is contained in:
Leonid Pershin
2026-08-09 08:00:26 +03:00
parent 3c77baced7
commit c41a458d0b
11 changed files with 371 additions and 63 deletions
+10 -1
View File
@@ -13,8 +13,10 @@
кадры, снятые по всей длительности.
- Виртуализированная сетка карточек, ленивая загрузка превью, поиск и сортировка.
- Настройки — боковой панелью в том же окне (сетка сдвигается, а не перекрывается): папки
библиотеки с удалением, параметры превью и сканирования, тема, очистка кэша. Всё пишется
библиотеки с удалением, параметры превью и сканирования, тема. Всё пишется
в `settings.json` и подхватывается без перезапуска.
- Очистка собранных данных по видам — постеры, анимированные превью, отпечатки, технические
метаданные — каждый со своей кнопкой и текущим объёмом.
- Светлая, тёмная и системная темы; выбор запоминается.
- Встроенный плеер: клик по карточке открывает страницу медиа прямо в окне — видео,
перемотка, громкость, кнопка «назад». Полноэкранный режим по F11 или кнопке, выход —
@@ -144,6 +146,13 @@ dotnet test
Постеры и анимации различаются лишь тем, что просят у ffmpeg, а хозяйство у них одно, и
описано оно один раз: иначе размер кэша в настройках начал бы врать в тот же день, когда
появился второй вид файлов.
- **Очистка — по видам, и только того, что пересобирается.** `LibraryDataKind` перечисляет
ровно то, что выводится из самих файлов: постеры, анимации, отпечатки, техметаданные.
Цена очистки любого из них — время, а не информация, поэтому кнопка не спрашивает
подтверждения. Названия, теги, коллекции и прогресс просмотра в этот список сознательно
не входят: их не вернёт никакое пересканирование, так что соседство с ними в одном ряду
кнопок было бы ловушкой. Ссылки забываются раньше, чем удаляются файлы, — прерывание
в обратном порядке оставило бы библиотеку с путями в никуда.
## Данные