diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2022-12-21 21:36:58 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2022-12-21 21:37:13 -0400 |
commit | e6f233025c0e511bb472bb75540d50381b58db48 (patch) | |
tree | 72dccb2167d9913d52ce600cbd66b2a360765e0a /src/data | |
parent | 485afee14f88d5ff30eda2e2185531d4b1695c30 (diff) |
gallery conditions for tracks without unique art
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/things/track.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js index 0842bf23..880f65fe 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -187,6 +187,26 @@ export class Track extends Thing { }, }, + hasUniqueCoverArt: { + flags: {expose: true}, + + expose: { + dependencies: ['albumData', 'coverArtistContribsByRef', 'hasCoverArt'], + compute: ({ + albumData, + coverArtistContribsByRef, + hasCoverArt, + [Track.instance]: track, + }) => + Track.hasUniqueCoverArt( + track, + albumData, + coverArtistContribsByRef, + hasCoverArt + ), + }, + }, + originalReleaseTrack: Thing.common.dynamicThingFromSingleReference( 'originalReleaseTrackByRef', 'trackData', @@ -324,6 +344,26 @@ export class Track extends Thing { true ); + // Now this is a doozy! + static hasUniqueCoverArt( + track, + albumData, + coverArtistContribsByRef, + hasCoverArt + ) { + if (coverArtistContribsByRef?.length > 0) { + return true; + } else if (coverArtistContribsByRef) { + return false; + } else if (hasCoverArt === false) { + return false; + } else if (Track.findAlbum(track, albumData)?.hasTrackArt) { + return true; + } else { + return false; + } + } + [inspect.custom]() { const base = Thing.prototype[inspect.custom].apply(this); |