Refactor metadata application logic in PLib video library manager to utilize a set of sources instead of a single source, improving the accuracy of metadata retrieval. Update tests to validate new behavior, ensuring that previously answered sources are not queried again and that multiple applications of the same source are recorded correctly. Revise README.md to reflect these changes and clarify the new metadata handling processes.

This commit is contained in:
Leonid Pershin
2026-08-10 11:31:14 +03:00
parent 70611c2051
commit 3bf79a3996
2 changed files with 72 additions and 6 deletions
+9 -3
View File
@@ -183,9 +183,15 @@ dotnet test
**Признак «уже размечено» — отдельная отметка, а не наличие описания.** Сначала прогон
пропускал видео с непустым `Description`, и это ломалось на источниках, у которых есть
название, актёры и теги, но нет синопсиса: такие видео возвращались на каждом запуске.
Теперь применение ставит `MetadataAppliedAt` и имя источника, а миграция проставляет
отметку тем, у кого описание уже есть, — иначе первый же запуск после обновления предложил
бы заново всё, что уже было сделано.
Хранится **набор** источников (`VideoMetadataSources`), а не последний применённый.
Одного поля хватало ровно до второго применения, после которого первый источник
забывался и предлагался заново. Набор же отвечает на вопрос, который прогон и задаёт, —
«этот источник уже высказался?», — и делает осмысленным режим «источники, которых ещё
не спрашивали»: у видео уже есть ответы PornDB, вопрос в том, что добавит StashDB.
Спрашивать того, кто уже ответил, значит потратить запрос, чтобы услышать написанное.
Режимов три: только неразмеченные, недостающие источники, всё заново.
Миграция переносит старую одиночную колонку в набор первой строкой, и делает это до
удаления колонок — сгенерированный вариант удалял их первыми и терял всё разом.
- **Картинки скачиваются один раз и по размеру.** `images` в stash-box есть у сцены,
у актёра и у студии; у тега такого поля нет вовсе, поэтому там карточка показывает первую
букву — это норма, а не отсутствие данных. Обложка сцены нужна там, где выбирают из