feat: update media filter to support multiple series names and enhance library item fetching

This commit is contained in:
2026-03-12 03:12:59 +01:00
parent bf07a65dcd
commit f028b1be98
10 changed files with 173 additions and 93 deletions

View File

@@ -127,13 +127,13 @@ export const api = {
items: (
token: string,
filter: Pick<MediaFilter, "content_type" | "series_name" | "collections" | "search_term" | "genres">,
filter: Pick<MediaFilter, "content_type" | "series_names" | "collections" | "search_term" | "genres">,
limit = 50,
) => {
const params = new URLSearchParams();
if (filter.search_term) params.set("q", filter.search_term);
if (filter.content_type) params.set("type", filter.content_type);
if (filter.series_name) params.set("series", filter.series_name);
filter.series_names?.forEach((name) => params.append("series[]", name));
if (filter.collections?.[0]) params.set("collection", filter.collections[0]);
params.set("limit", String(limit));
return request<LibraryItemResponse[]>(`/library/items?${params}`, { token });

View File

@@ -12,8 +12,8 @@ export interface MediaFilter {
min_duration_secs?: number | null;
max_duration_secs?: number | null;
collections: string[];
/** Filter by TV series name, e.g. "iCarly". Use with Sequential strategy. */
series_name?: string | null;
/** Filter to one or more TV series by name. OR-combined: any listed show is eligible. */
series_names?: string[];
/** Free-text search, used for library browsing only. */
search_term?: string | null;
}