From a446ecc747e7919f6dee4bc3b073e7edb6156a91 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 6 Apr 2025 17:40:51 -0300 Subject: data: make referencedArtworkList work again Using new find specs {track,album}PrimaryArtwork. It's still mixedFind, and it still does not support matching artworks besides the primary one. --- src/data/things/track.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/data/things/track.js') diff --git a/src/data/things/track.js b/src/data/things/track.js index 1cc169be..6645008c 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -347,11 +347,10 @@ export class Track extends Thing { reverse: soupyReverse(), // used for referencedArtworkList (mixedFind) - albumData: wikiData({ - class: input.value(Album), + artworkData: wikiData({ + class: input.value(Artwork), }), - // used for referencedArtworkList (mixedFind) // used for withAlwaysReferenceByDirectory (for some reason) trackData: wikiData({ class: input.value(Track), @@ -641,6 +640,31 @@ export class Track extends Thing { ? [] : [track.name]), }, + + trackPrimaryArtwork: { + [Thing.findThisThingOnly]: false, + + referenceTypes: [ + 'track', + 'track-referencing-artworks', + 'track-referenced-artworks', + ], + + bindTo: 'artworkData', + + include: (artwork, {Artwork, Track}) => + artwork instanceof Artwork && + artwork.thing instanceof Track && + artwork === artwork.thing.trackArtworks[0], + + getMatchableNames: ({thing: track}) => + (track.alwaysReferenceByDirectory + ? [] + : [track.name]), + + getMatchableDirectories: ({thing: track}) => + [track.directory], + }, }; static [Thing.reverseSpecs] = { -- cgit 1.3.0-6-gf8a5