diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-03-31 16:03:21 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-04-10 16:02:36 -0300 |
commit | 28ecf1b7ad8a39783a0dd65f84dbffe05f1de44b (patch) | |
tree | 87d2138cb2f9cf4c4bcfe28bb9d077ba8b21cff9 /src | |
parent | e8964d7a9f9dc787d4d84c0554d22149bb2daa0c (diff) |
data: Track.hasUniqueCoverArt: detect contribs on trackArtwork
Diffstat (limited to 'src')
-rw-r--r-- | src/data/composite/things/track/withHasUniqueCoverArt.js | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/src/data/composite/things/track/withHasUniqueCoverArt.js b/src/data/composite/things/track/withHasUniqueCoverArt.js index f7e65f25..2ea845f6 100644 --- a/src/data/composite/things/track/withHasUniqueCoverArt.js +++ b/src/data/composite/things/track/withHasUniqueCoverArt.js @@ -9,6 +9,8 @@ import {input, templateCompositeFrom} from '#composite'; import {empty} from '#sugar'; +import {raiseOutputWithoutDependency} from '#composite/control-flow'; +import {withPropertyFromObject} from '#composite/data'; import {withResolvedContribs} from '#composite/wiki-data'; import withPropertyFromAlbum from './withPropertyFromAlbum.js'; @@ -55,9 +57,39 @@ export default templateCompositeFrom({ compute: (continuation, { ['#album.trackCoverArtistContribs']: contribsFromAlbum, }) => - continuation.raiseOutput({ + (empty(contribsFromAlbum) + ? continuation() + : continuation.raiseOutput({ + ['#hasUniqueCoverArt']: + !empty(contribsFromAlbum), + })), + }, + + withPropertyFromObject({ + object: 'trackArtwork', + property: input.value('artistContribs'), + internal: input.value(true), + }), + + raiseOutputWithoutDependency({ + dependency: '#trackArtwork.artistContribs', + mode: input.value('empty'), + output: input.value({'#hasUniqueCoverArt': false}), + }), + + withResolvedContribs({ + from: '#trackArtwork.artistContribs', + date: input.value(null), + }), + + { + dependencies: ['#resolvedContribs'], + compute: (continuation, { + ['#resolvedContribs']: contribsFromArtwork, + }) => + continuation({ ['#hasUniqueCoverArt']: - !empty(contribsFromAlbum), + !empty(contribsFromArtwork), }), }, ], |