From 9332da311819d4ec9fa19b327271e3fab1dc49e8 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 14 Aug 2023 21:52:03 -0300 Subject: data: remove 'Has Track Art', compute from credits --- src/data/things/track.js | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'src/data/things/track.js') diff --git a/src/data/things/track.js b/src/data/things/track.js index 00585c1e..a0a4ff41 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -1,9 +1,10 @@ import Thing from './thing.js'; import {inspect} from 'util'; -import {color} from '../../util/cli.js'; +import {color} from '../../util/cli.js'; import find from '../../util/find.js'; +import {empty} from '../../util/sugar.js'; export class Track extends Thing { static [Thing.referenceType] = 'track'; @@ -332,36 +333,44 @@ export class Track extends Thing { albumData?.find((album) => album.tracks.includes(track)); // Another reused utility function. This one's logic is a bit more complicated. - static hasCoverArt = ( + static hasCoverArt( track, albumData, coverArtistContribsByRef, hasCoverArt - ) => ( - hasCoverArt ?? - (coverArtistContribsByRef?.length > 0 || null) ?? - Track.findAlbum(track, albumData)?.hasTrackArt ?? - true - ); - - // Now this is a doozy! + ) { + if (!empty(coverArtistContribsByRef)) { + return true; + } + + const album = Track.findAlbum(track, albumData); + if (album && !empty(album.trackCoverArtistContribsByRef)) { + return true; + } + + return false; + } + static hasUniqueCoverArt( track, albumData, coverArtistContribsByRef, hasCoverArt ) { - if (coverArtistContribsByRef?.length > 0) { + if (!empty(coverArtistContribsByRef)) { return true; - } else if (coverArtistContribsByRef) { - return false; - } else if (hasCoverArt === false) { + } + + if (hasCoverArt === false) { return false; - } else if (Track.findAlbum(track, albumData)?.hasTrackArt) { + } + + const album = Track.findAlbum(track, albumData); + if (album && !empty(album.trackCoverArtistContribsByRef)) { return true; - } else { - return false; } + + return false; } [inspect.custom]() { -- cgit 1.3.0-6-gf8a5