mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-13 20:10:07 +02:00
reimplement genre detail route
This commit is contained in:
@@ -208,7 +208,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
|
||||
ImageTypeLimit: 1,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
SortBy: albumArtistListSortMap.jellyfin[query.sortBy] || 'SortName,Name',
|
||||
@@ -316,11 +316,11 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
...artistQuery,
|
||||
Fields: 'People, Tags',
|
||||
GenreIds: query.genres ? query.genres.join(',') : undefined,
|
||||
GenreIds: query.genreIds ? query.genreIds.join(',') : undefined,
|
||||
IncludeItemTypes: 'MusicAlbum',
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
SortBy: albumListSortMap.jellyfin[query.sortBy] || 'SortName',
|
||||
@@ -354,7 +354,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
|
||||
ImageTypeLimit: 1,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
SortBy: albumArtistListSortMap.jellyfin[query.sortBy] || 'SortName,Name',
|
||||
@@ -398,7 +398,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
EnableTotalRecordCount: true,
|
||||
Fields: 'ItemCounts',
|
||||
Limit: query.limit,
|
||||
ParentId: query?.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query?.searchTerm,
|
||||
SortBy: genreListSortMap.jellyfin[query.sortBy] || 'SortName',
|
||||
@@ -588,7 +588,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
? true
|
||||
: undefined,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SortBy: JFSongListSort.RANDOM,
|
||||
SortOrder: JFSortOrder.ASC,
|
||||
@@ -742,7 +742,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
IncludeItemTypes: 'Audio',
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
SortBy: songListSortMap.jellyfin[query.sortBy] || 'Album,SortName',
|
||||
@@ -777,7 +777,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
IncludeItemTypes: 'Audio',
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
ParentId: query.musicFolderId,
|
||||
ParentId: getMusicFolderId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
SortBy: songListSortMap.jellyfin[query.sortBy] || 'Album,SortName',
|
||||
@@ -1160,3 +1160,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
// totalRecordCount: res.body.TotalRecordCount,
|
||||
// };
|
||||
// };
|
||||
|
||||
function getMusicFolderId(musicFolderId?: string | string[]) {
|
||||
return Array.isArray(musicFolderId) ? musicFolderId[0] : musicFolderId;
|
||||
}
|
||||
|
||||
@@ -284,8 +284,8 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const genres = hasFeature(apiClientProps.server, ServerFeature.BFR)
|
||||
? query.genres
|
||||
: query.genres?.[0];
|
||||
? query.genreIds
|
||||
: query.genreIds?.[0];
|
||||
|
||||
const res = await ndApiClient(apiClientProps).getAlbumList({
|
||||
query: {
|
||||
|
||||
@@ -219,7 +219,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
|
||||
const res = await ssApiClient(apiClientProps).getArtists({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -340,7 +340,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
if (query.favorite) {
|
||||
const res = await ssApiClient(apiClientProps).getStarred({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -360,7 +360,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
};
|
||||
}
|
||||
|
||||
if (query.genres?.length) {
|
||||
if (query.genreIds?.length) {
|
||||
type = AlbumListSortType.BY_GENRE;
|
||||
}
|
||||
|
||||
@@ -397,8 +397,8 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
const res = await ssApiClient(apiClientProps).getAlbumList2({
|
||||
query: {
|
||||
fromYear,
|
||||
genre: query.genres?.length ? query.genres[0] : undefined,
|
||||
musicFolderId: query.musicFolderId,
|
||||
genre: query.genreIds?.length ? query.genreIds[0] : undefined,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
offset: query.startIndex,
|
||||
size: query.limit,
|
||||
toYear,
|
||||
@@ -485,7 +485,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
if (query.favorite) {
|
||||
const res = await ssApiClient(apiClientProps).getStarred({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -502,7 +502,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
let startIndex = 0;
|
||||
let totalRecordCount = 0;
|
||||
|
||||
if (query.genres?.length) {
|
||||
if (query.genreIds?.length) {
|
||||
type = AlbumListSortType.BY_GENRE;
|
||||
}
|
||||
|
||||
@@ -530,8 +530,8 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
const res = await ssApiClient(apiClientProps).getAlbumList2({
|
||||
query: {
|
||||
fromYear,
|
||||
genre: query.genres?.length ? query.genres[0] : undefined,
|
||||
musicFolderId: query.musicFolderId,
|
||||
genre: query.genreIds?.length ? query.genreIds[0] : undefined,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
offset: startIndex,
|
||||
size: MAX_SUBSONIC_ITEMS,
|
||||
toYear,
|
||||
@@ -567,7 +567,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
|
||||
const res = await ssApiClient(apiClientProps).getArtists({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -783,7 +783,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
fromYear: query.minYear,
|
||||
genre: query.genre,
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
size: query.limit,
|
||||
toYear: query.maxYear,
|
||||
},
|
||||
@@ -938,7 +938,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
count: query.limit,
|
||||
genre: query.genreIds[0],
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
offset: query.startIndex,
|
||||
},
|
||||
});
|
||||
@@ -959,7 +959,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
if (query.favorite) {
|
||||
const res = await ssApiClient(apiClientProps).getStarred({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1127,7 +1127,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
count: 1,
|
||||
genre: query.genreIds[0],
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
offset: sectionIndex,
|
||||
},
|
||||
});
|
||||
@@ -1152,7 +1152,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
count: MAX_SUBSONIC_ITEMS,
|
||||
genre: query.genreIds[0],
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
offset: startIndex,
|
||||
},
|
||||
});
|
||||
@@ -1175,7 +1175,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
if (query.favorite) {
|
||||
const res = await ssApiClient(apiClientProps).getStarred({
|
||||
query: {
|
||||
musicFolderId: query.musicFolderId,
|
||||
musicFolderId: getMusicFolderId(query.musicFolderId),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1423,3 +1423,7 @@ export const SubsonicController: InternalControllerEndpoint = {
|
||||
return null;
|
||||
},
|
||||
};
|
||||
|
||||
function getMusicFolderId(musicFolderId?: string | string[]) {
|
||||
return Array.isArray(musicFolderId) ? musicFolderId[0] : musicFolderId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user