From d746ff26c3e7517c8aaff7615ae4da06fa2d01c0 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 19 Nov 2024 15:56:14 -0400 Subject: data, checks: find.{album,track}WithArtwork --- src/data/checks.js | 4 ++-- src/data/composite/wiki-properties/referencedArtworkList.js | 4 ++-- src/data/things/album.js | 8 ++++++++ src/data/things/track.js | 13 +++++++++++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/data/checks.js b/src/data/checks.js index a9e8208f..8f9f0305 100644 --- a/src/data/checks.js +++ b/src/data/checks.js @@ -291,8 +291,8 @@ export function filterReferenceErrors(wikiData, { case '_artwork': { const mixed = find.mixed({ - album: find.album, - track: find.track, + album: find.albumWithArtwork, + track: find.trackWithArtwork, }); const data = diff --git a/src/data/composite/wiki-properties/referencedArtworkList.js b/src/data/composite/wiki-properties/referencedArtworkList.js index 74790443..a242af2c 100644 --- a/src/data/composite/wiki-properties/referencedArtworkList.js +++ b/src/data/composite/wiki-properties/referencedArtworkList.js @@ -32,8 +32,8 @@ export default templateCompositeFrom({ compute: (continuation) => continuation({ ['#find']: find.mixed({ - track: find.track, - album: find.album, + track: find.trackWithArtwork, + album: find.albumWithArtwork, }), }), }, diff --git a/src/data/things/album.js b/src/data/things/album.js index 35cf1f3e..3f3f195a 100644 --- a/src/data/things/album.js +++ b/src/data/things/album.js @@ -337,6 +337,14 @@ export class Album extends Thing { referenceTypes: ['album', 'album-commentary', 'album-gallery'], bindTo: 'albumData', }, + + albumWithArtwork: { + referenceTypes: ['album'], + bindTo: 'albumData', + + include: album => + album.hasCoverArt, + }, }; static [Thing.yamlDocumentSpec] = { diff --git a/src/data/things/track.js b/src/data/things/track.js index 0ac6aabd..408f18fb 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -628,6 +628,19 @@ export class Track extends Thing { ? [] : [track.name]), }, + + trackWithArtwork: { + referenceTypes: ['track'], + bindTo: 'trackData', + + include: track => + track.hasUniqueCoverArt, + + getMatchableNames: track => + (track.alwaysReferenceByDirectory + ? [] + : [track.name]), + }, }; // Track YAML loading is handled in album.js. -- cgit 1.3.0-6-gf8a5