diff --git a/src/renderer/api/jellyfin.api.ts b/src/renderer/api/jellyfin.api.ts index c828f3dd..6d325e76 100644 --- a/src/renderer/api/jellyfin.api.ts +++ b/src/renderer/api/jellyfin.api.ts @@ -63,6 +63,10 @@ import { useAuthStore } from '/@/renderer/store'; import { ServerListItem, ServerType } from '/@/renderer/types'; import { parseSearchParams } from '/@/renderer/utils'; +const getCommaDelimitedString = (value: string[]) => { + return value.join(','); +}; + const api = ky.create({}); const authenticate = async ( @@ -297,9 +301,11 @@ const getSongList = async (args: SongListArgs): Promise => { } } - const yearsFilter = yearsGroup.length ? yearsGroup.join(',') : undefined; + const yearsFilter = yearsGroup.length ? getCommaDelimitedString(yearsGroup) : undefined; + const albumIdsFilter = query.albumIds ? getCommaDelimitedString(query.albumIds) : undefined; const searchParams: JFSongListParams & { maxYear?: number; minYear?: number } = { + albumIds: albumIdsFilter, fields: 'Genres, DateCreated, MediaSources, ParentId', includeItemTypes: 'Audio', limit: query.limit, diff --git a/src/renderer/api/jellyfin.types.ts b/src/renderer/api/jellyfin.types.ts index aa2ad55a..0741de45 100644 --- a/src/renderer/api/jellyfin.types.ts +++ b/src/renderer/api/jellyfin.types.ts @@ -527,9 +527,14 @@ export enum JFSongListSort { } export type JFSongListParams = { + albumArtistIds?: string; + albumIds?: string; + artistIds?: string; + contributingArtistIds?: string; filters?: string; genreIds?: string; genres?: string; + ids?: string; includeItemTypes: 'Audio'; searchTerm?: string; sortBy?: JFSongListSort; diff --git a/src/renderer/api/navidrome.api.ts b/src/renderer/api/navidrome.api.ts index 4eb75028..9ee4d840 100644 --- a/src/renderer/api/navidrome.api.ts +++ b/src/renderer/api/navidrome.api.ts @@ -237,6 +237,7 @@ const getSongList = async (args: SongListArgs): Promise => { _order: sortOrderMap.navidrome[query.sortOrder], _sort: songListSortMap.navidrome[query.sortBy], _start: query.startIndex, + album_id: query.albumIds, title: query.searchTerm, ...query.ndParams, }; diff --git a/src/renderer/api/navidrome.types.ts b/src/renderer/api/navidrome.types.ts index e254c557..effa21ae 100644 --- a/src/renderer/api/navidrome.types.ts +++ b/src/renderer/api/navidrome.types.ts @@ -229,6 +229,7 @@ export enum NDSongListSort { export type NDSongListParams = { _sort?: NDSongListSort; + album_id?: string[]; genre_id?: string; starred?: boolean; } & NDPagination & diff --git a/src/renderer/api/types.ts b/src/renderer/api/types.ts index f070b1b1..2e1b24cd 100644 --- a/src/renderer/api/types.ts +++ b/src/renderer/api/types.ts @@ -417,6 +417,7 @@ export enum SongListSort { } export type SongListQuery = { + albumIds?: string[]; jfParams?: { filters?: string; genreIds?: string;