mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-07 04:20:12 +02:00
add musicbrainz artist query
This commit is contained in:
@@ -270,6 +270,10 @@ export const queryKeys: Record<
|
||||
},
|
||||
root: (serverId: string) => [serverId, 'genres'] as const,
|
||||
},
|
||||
musicbrainz: {
|
||||
artist: (mbzArtistId: string) => ['musicbrainz', 'artist', mbzArtistId] as const,
|
||||
root: () => ['musicbrainz'] as const,
|
||||
},
|
||||
musicFolders: {
|
||||
list: (serverId: string) => [serverId, 'musicFolders', 'list'] as const,
|
||||
},
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { queryOptions } from '@tanstack/react-query';
|
||||
import { MusicBrainzApi } from 'musicbrainz-api';
|
||||
|
||||
import packageJson from '../../../../../package.json';
|
||||
|
||||
import { queryKeys } from '/@/renderer/api/query-keys';
|
||||
|
||||
export const musicbrainzApi = new MusicBrainzApi({
|
||||
appContactInfo: packageJson.homepage,
|
||||
appName: packageJson.name,
|
||||
appVersion: packageJson.version,
|
||||
});
|
||||
|
||||
// Cache all musicbrainz api results for 5 minutes
|
||||
const CACHE_TIME = 1000 * 60 * 5;
|
||||
|
||||
export const musicbrainzQueries = {
|
||||
artist: (args: { mbzArtistId: string }) => {
|
||||
return queryOptions({
|
||||
gcTime: CACHE_TIME,
|
||||
queryFn: () =>
|
||||
musicbrainzApi.lookup('artist', args.mbzArtistId, [
|
||||
'releases',
|
||||
'recordings',
|
||||
'release-groups',
|
||||
'works',
|
||||
'media',
|
||||
]),
|
||||
queryKey: queryKeys.musicbrainz.artist(args.mbzArtistId),
|
||||
staleTime: CACHE_TIME,
|
||||
});
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user