diff options
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/things/album.js | 1 | ||||
-rw-r--r-- | src/data/things/track.js | 43 | ||||
-rw-r--r-- | src/data/yaml.js | 1 |
3 files changed, 26 insertions, 19 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js index d371f51f..0c87b7c1 100644 --- a/src/data/things/album.js +++ b/src/data/things/album.js @@ -104,7 +104,6 @@ export class Album extends Thing { update: {validate: isDimensions}, }, - hasTrackArt: Thing.common.flag(true), hasTrackNumbers: Thing.common.flag(true), isListedOnHomepage: Thing.common.flag(true), isListedInGalleries: Thing.common.flag(true), 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]() { diff --git a/src/data/yaml.js b/src/data/yaml.js index 25dfecb3..d8067a40 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -193,7 +193,6 @@ export const processAlbumDocument = makeProcessDocument(T.Album, { color: 'Color', urls: 'URLs', - hasTrackArt: 'Has Track Art', hasTrackNumbers: 'Has Track Numbers', isListedOnHomepage: 'Listed on Homepage', isListedInGalleries: 'Listed in Galleries', |