Update song list queries
This commit is contained in:
parent
2b0d4c44a6
commit
c7f588539d
4 changed files with 21 additions and 4 deletions
|
@ -290,16 +290,29 @@ const getAlbumList = async (args: AlbumListArgs): Promise<JFAlbumList> => {
|
|||
const getSongList = async (args: SongListArgs): Promise<JFSongList> => {
|
||||
const { query, server, signal } = args;
|
||||
|
||||
const searchParams: JFSongListParams = {
|
||||
const yearsGroup = [];
|
||||
if (query.jfParams?.minYear && query.jfParams?.maxYear) {
|
||||
for (let i = Number(query.jfParams.minYear); i <= Number(query.jfParams.maxYear); i += 1) {
|
||||
yearsGroup.push(String(i));
|
||||
}
|
||||
}
|
||||
|
||||
const yearsFilter = yearsGroup.length ? yearsGroup.join(',') : undefined;
|
||||
|
||||
const searchParams: JFSongListParams & { maxYear?: number; minYear?: number } = {
|
||||
fields: 'Genres, DateCreated, MediaSources, ParentId',
|
||||
includeItemTypes: 'Audio',
|
||||
limit: query.limit,
|
||||
parentId: query.musicFolderId,
|
||||
recursive: true,
|
||||
searchTerm: query.searchTerm,
|
||||
sortBy: songListSortMap.jellyfin[query.sortBy],
|
||||
sortOrder: sortOrderMap.jellyfin[query.sortOrder],
|
||||
startIndex: query.startIndex,
|
||||
...query.jfParams,
|
||||
maxYear: undefined,
|
||||
minYear: undefined,
|
||||
years: yearsFilter,
|
||||
};
|
||||
|
||||
const data = await api
|
||||
|
|
|
@ -528,6 +528,7 @@ export enum JFSongListSort {
|
|||
|
||||
export type JFSongListParams = {
|
||||
filters?: string;
|
||||
genreIds?: string;
|
||||
genres?: string;
|
||||
includeItemTypes: 'Audio';
|
||||
searchTerm?: string;
|
||||
|
|
|
@ -237,13 +237,14 @@ const getSongList = async (args: SongListArgs): Promise<NDSongList> => {
|
|||
_order: sortOrderMap.navidrome[query.sortOrder],
|
||||
_sort: songListSortMap.navidrome[query.sortBy],
|
||||
_start: query.startIndex,
|
||||
title: query.searchTerm,
|
||||
...query.ndParams,
|
||||
};
|
||||
|
||||
const res = await api.get('api/song', {
|
||||
headers: { 'x-nd-authorization': `Bearer ${server?.ndCredential}` },
|
||||
prefixUrl: server?.url,
|
||||
searchParams,
|
||||
searchParams: parseSearchParams(searchParams),
|
||||
signal,
|
||||
});
|
||||
|
||||
|
|
|
@ -419,10 +419,12 @@ export enum SongListSort {
|
|||
export type SongListQuery = {
|
||||
jfParams?: {
|
||||
filters?: string;
|
||||
genreIds?: string;
|
||||
genres?: string;
|
||||
includeItemTypes: 'Audio';
|
||||
maxYear?: number;
|
||||
minYear?: number;
|
||||
isFavorite?: boolean;
|
||||
maxYear?: number; // Parses to years
|
||||
minYear?: number; // Parses to years
|
||||
sortBy?: JFSongListSort;
|
||||
years?: string;
|
||||
};
|
||||
|
|
Reference in a new issue