« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/checks.js4
-rw-r--r--src/data/things/album.js29
-rw-r--r--src/data/things/track.js27
3 files changed, 60 insertions, 0 deletions
diff --git a/src/data/checks.js b/src/data/checks.js
index 4dc1e1d0..da7b228c 100644
--- a/src/data/checks.js
+++ b/src/data/checks.js
@@ -183,6 +183,8 @@ export function filterReferenceErrors(wikiData, {
       bannerArtistContribs: '_contrib',
       groups: 'group',
       artTags: '_artTag',
+      referencedTrackArtworks: 'track',
+      referencedAlbumArtworks: 'album',
       commentary: '_commentary',
     }],
 
@@ -219,6 +221,8 @@ export function filterReferenceErrors(wikiData, {
       referencedTracks: '_trackNotRerelease',
       sampledTracks: '_trackNotRerelease',
       artTags: '_artTag',
+      referencedTrackArtworks: 'track',
+      referencedAlbumArtworks: 'album',
       originalReleaseTrack: '_trackNotRerelease',
       commentary: '_commentary',
     }],
diff --git a/src/data/things/album.js b/src/data/things/album.js
index e17304d0..539f4fb1 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -217,6 +217,32 @@ export class Album extends Thing {
       }),
     ],
 
+    referencedTrackArtworks: [
+      exitWithoutContribs({
+        contribs: 'coverArtistContribs',
+        value: input.value([]),
+      }),
+
+      referenceList({
+        class: input.value(Track),
+        find: input.value(find.track),
+        data: 'trackData',
+      }),
+    ],
+
+    referencedAlbumArtworks: [
+      exitWithoutContribs({
+        contribs: 'coverArtistContribs',
+        value: input.value([]),
+      }),
+
+      referenceList({
+        class: input.value(Album),
+        find: input.value(find.album),
+        data: 'albumData',
+      }),
+    ],
+
     // Update only
 
     artistData: wikiData({
@@ -384,6 +410,9 @@ export class Album extends Thing {
         transform: parseAdditionalFiles,
       },
 
+      'Referenced Track Artworks': {property: 'referencedTrackArtworks'},
+      'Referenced Album Artworks': {property: 'referencedAlbumArtworks'},
+
       'Franchises': {ignore: true},
 
       'Artists': {
diff --git a/src/data/things/track.js b/src/data/things/track.js
index e3526f1c..586e5f4c 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -319,6 +319,30 @@ export class Track extends Thing {
       }),
     ],
 
+    referencedTrackArtworks: [
+      exitWithoutUniqueCoverArt({
+        value: input.value([]),
+      }),
+
+      referenceList({
+        class: input.value(Track),
+        find: input.value(find.track),
+        data: 'trackData',
+      }),
+    ],
+
+    referencedAlbumArtworks: [
+      exitWithoutUniqueCoverArt({
+        value: input.value([]),
+      }),
+
+      referenceList({
+        class: input.value(Album),
+        find: input.value(find.album),
+        data: 'albumData',
+      }),
+    ],
+
     // Update only
 
     albumData: wikiData({
@@ -482,6 +506,9 @@ export class Track extends Thing {
       'Referenced Tracks': {property: 'referencedTracks'},
       'Sampled Tracks': {property: 'sampledTracks'},
 
+      'Referenced Track Artworks': {property: 'referencedTrackArtworks'},
+      'Referenced Album Artworks': {property: 'referencedAlbumArtworks'},
+
       'Franchises': {ignore: true},
       'Inherit Franchises': {ignore: true},