fix: support missing/no-episodes library filters (API, UI, docs, tests)

This commit is contained in:
2026-03-16 21:01:59 +01:00
parent e44a8190d0
commit 151a08e033
8 changed files with 227 additions and 99 deletions

View File

@@ -524,19 +524,20 @@ class AnimeService:
"series_id": db_series.id,
}
# If filter is "no_episodes", get series with no
# downloaded episodes
if filter_type == "no_episodes":
# Use service method to get series with
# undownloaded episodes
series_no_downloads = (
await AnimeSeriesService
.get_series_with_no_episodes(db)
# If filter is "missing_episodes", get series with any missing episodes
if filter_type == "missing_episodes":
series_missing = (
await AnimeSeriesService.get_series_with_missing_episodes(db)
)
series_with_no_episodes = {
s.folder for s in series_no_downloads
}
series_with_missing_episodes = {s.folder for s in series_missing}
# If filter is "no_episodes", get series with no downloaded episodes
if filter_type == "no_episodes":
series_no_downloads = (
await AnimeSeriesService.get_series_with_no_episodes(db)
)
series_with_no_episodes = {s.folder for s in series_no_downloads}
# Build result list with enriched metadata
result_list = []
for serie in series:
@@ -545,8 +546,11 @@ class AnimeService:
site = getattr(serie, "site", "")
folder = getattr(serie, "folder", "")
episode_dict = getattr(serie, "episodeDict", {}) or {}
# Apply filter if specified
if filter_type == "missing_episodes":
if folder not in series_with_missing_episodes:
continue
if filter_type == "no_episodes":
if folder not in series_with_no_episodes:
continue