« get me outta code hell

data: apply contribution dates when resolving - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/album.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2024-03-07 12:19:19 -0400
committer(quasar) nebula <qznebula@protonmail.com>2024-06-12 17:26:40 -0300
commit55df0a77ab929592cce98d36db71315c6c534aa2 (patch)
treed1175659856c72e6e92d517d2337e88c7997473c /src/data/things/album.js
parent72f5aafcbb4de53eadef3cd7603856b37ac9cc49 (diff)
data: apply contribution dates when resolving
Diffstat (limited to 'src/data/things/album.js')
-rw-r--r--src/data/things/album.js44
1 files changed, 39 insertions, 5 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 6b37bc96..b0a46af1 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -136,11 +136,45 @@ export class Album extends Thing {
       find: input.value(find.unqualifiedTrackSection),
     }),
 
-    artistContribs: contributionList(),
-    coverArtistContribs: contributionList(),
-    trackCoverArtistContribs: contributionList(),
-    wallpaperArtistContribs: contributionList(),
-    bannerArtistContribs: contributionList(),
+    artistContribs: contributionList({
+      date: 'date',
+    }),
+
+    coverArtistContribs: [
+      withCoverArtDate({
+        fallback: input.value(true),
+      }),
+
+      contributionList({
+        date: '#coverArtDate',
+      }),
+    ],
+
+    trackCoverArtistContribs: contributionList({
+      // May be null, indicating cover art was added for tracks on the date
+      // each track specifies, or else the track's own release date.
+      date: 'trackArtDate',
+    }),
+
+    wallpaperArtistContribs: [
+      withCoverArtDate({
+        fallback: input.value(true),
+      }),
+
+      contributionList({
+        date: '#coverArtDate',
+      }),
+    ],
+
+    bannerArtistContribs: [
+      withCoverArtDate({
+        fallback: input.value(true),
+      }),
+
+      contributionList({
+        date: '#coverArtDate',
+      }),
+    ],
 
     groups: referenceList({
       class: input.value(Group),