From a5992943d0fd017ced710590748212202652a10a Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 7 Feb 2026 13:12:19 -0800 Subject: [PATCH] fetch image by release group instead of release --- src/renderer/features/albums/api/album-api.ts | 3 +-- .../features/musicbrainz/api/musicbrainz-api.ts | 10 ++++------ src/renderer/features/musicbrainz/utils.ts | 8 +++++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/renderer/features/albums/api/album-api.ts b/src/renderer/features/albums/api/album-api.ts index 2c8dc3978..f4f7c96df 100644 --- a/src/renderer/features/albums/api/album-api.ts +++ b/src/renderer/features/albums/api/album-api.ts @@ -1,12 +1,11 @@ import { queryOptions } from '@tanstack/react-query'; -import { getMbzReleaseIdFromAlbumId } from '../../musicbrainz/utils'; - import { api } from '/@/renderer/api'; import { controller } from '/@/renderer/api/controller'; import { queryKeys } from '/@/renderer/api/query-keys'; import { getOptimizedListCount } from '/@/renderer/api/utils-list-count'; import { fetchMbzReleaseAsAlbum } from '/@/renderer/features/musicbrainz/api/musicbrainz-api'; +import { getMbzReleaseIdFromAlbumId } from '/@/renderer/features/musicbrainz/utils'; import { QueryHookArgs } from '/@/renderer/lib/react-query'; import { AlbumDetailQuery, AlbumListQuery, ListCountQuery } from '/@/shared/types/domain-types'; diff --git a/src/renderer/features/musicbrainz/api/musicbrainz-api.ts b/src/renderer/features/musicbrainz/api/musicbrainz-api.ts index 4b4d453b6..06ab18958 100644 --- a/src/renderer/features/musicbrainz/api/musicbrainz-api.ts +++ b/src/renderer/features/musicbrainz/api/musicbrainz-api.ts @@ -15,7 +15,7 @@ import packageJson from '../../../../../package.json'; import { queryKeys } from '/@/renderer/api/query-keys'; import { collectWorksFromRelease, - getImageUrl, + getImageUrlByReleaseGroupId, normalizeReleaseToAlbum, } from '/@/renderer/features/musicbrainz/utils'; import { logFn } from '/@/renderer/utils/logger'; @@ -158,11 +158,9 @@ const artistSelect = memoize( }); const albums: Album[] = releaseEntriesUniqueByGroup - .map(([releaseId, release]) => { + .map(([, release]) => { const releaseGroup = release['release-group']; - const hasArtwork = - release['cover-art-archive']?.artwork === true && - release['cover-art-archive']?.front === true; + const hasArtwork = releaseGroup; const primaryReleaseType = releaseGroup?.['primary-type']?.toLowerCase() || null; const secondaryReleaseTypes = @@ -175,7 +173,7 @@ const artistSelect = memoize( const originalYear = originalDate ? Number(originalDate.split('-')[0]) : null; const releaseDate = release.date ? release.date : null; const releaseYear = release.date ? Number(release.date.split('-')[0]) : null; - const imageUrl = hasArtwork ? getImageUrl(releaseId) : null; + const imageUrl = hasArtwork ? getImageUrlByReleaseGroupId(releaseGroup.id) : null; const album: Album = { _itemType: LibraryItem.ALBUM, diff --git a/src/renderer/features/musicbrainz/utils.ts b/src/renderer/features/musicbrainz/utils.ts index 35b046b10..2c9b738c1 100644 --- a/src/renderer/features/musicbrainz/utils.ts +++ b/src/renderer/features/musicbrainz/utils.ts @@ -30,13 +30,15 @@ export function collectWorksFromRelease(release: IRelease): IWork[] { export function getImageUrl(releaseId: string): string { return `https://coverartarchive.org/release/${releaseId}/front-250.jpg`; } + +export function getImageUrlByReleaseGroupId(releaseGroupId: string): string { + return `https://coverartarchive.org/release-group/${releaseGroupId}/front-250.jpg`; +} + export function getMbzReleaseIdFromAlbumId(albumId: string): null | string { if (!albumId.startsWith(MUSICBRAINZ_ID_PREFIX)) return null; return albumId.slice(MUSICBRAINZ_ID_PREFIX.length); } -// function getImageUrlByReleaseGroupId(releaseGroupId: string): string { -// return `https://coverartarchive.org/release-group/${releaseGroupId}/front-250.jpg`; -// } // const MBZ_COUNTRY_CODES = { // AD: 'Andorra',