« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies')
-rw-r--r--src/content/dependencies/generateMusicVideo.js22
-rw-r--r--src/content/dependencies/generateSingleArtworkColumn.js2
-rw-r--r--src/content/dependencies/generateTrackArtworkColumn.js2
3 files changed, 19 insertions, 7 deletions
diff --git a/src/content/dependencies/generateMusicVideo.js b/src/content/dependencies/generateMusicVideo.js
index a61cd5b7..7f0108af 100644
--- a/src/content/dependencies/generateMusicVideo.js
+++ b/src/content/dependencies/generateMusicVideo.js
@@ -1,5 +1,5 @@
 export default {
-  relations: (relation, musicVideo) => ({
+  relations: (relation, musicVideo, thing) => ({
     image:
       relation('image', {
         path: musicVideo.path,
@@ -7,6 +7,9 @@ export default {
         dimensions: musicVideo.coverArtDimensions,
       }),
 
+    datetimestamp:
+      relation('generateAbsoluteDatetimestamp', musicVideo.date, thing.date),
+
     artistCredit:
       relation('generateArtistCredit', musicVideo.artistContribs, []),
 
@@ -14,7 +17,7 @@ export default {
       relation('generateArtistCredit', musicVideo.contributorContribs, []),
   }),
 
-  data: (musicVideo) => ({
+  data: (musicVideo, _track) => ({
     label:
       musicVideo.label,
 
@@ -46,16 +49,25 @@ export default {
 
           [
             language.encapsulate(capsule, 'by', workingCapsule => {
-              const additionalStringOptions = {};
+              const workingOptions = {};
 
               if (data.label) {
                 workingCapsule += '.customLabel';
-                additionalStringOptions.label = data.label;
+                workingOptions.label = data.label;
+              }
+
+              const {datetimestamp} = relations;
+
+              datetimestamp.setSlot('style', 'year-difference');
+
+              if (!html.isBlank(datetimestamp)) {
+                workingCapsule += '.withDate';
+                workingOptions.date = datetimestamp;
               }
 
               return relations.artistCredit.slots({
                 normalStringKey: workingCapsule,
-                additionalStringOptions,
+                additionalStringOptions: workingOptions,
 
                 showAnnotation: true,
                 showChronology: true,
diff --git a/src/content/dependencies/generateSingleArtworkColumn.js b/src/content/dependencies/generateSingleArtworkColumn.js
index 52537186..32c448ad 100644
--- a/src/content/dependencies/generateSingleArtworkColumn.js
+++ b/src/content/dependencies/generateSingleArtworkColumn.js
@@ -5,7 +5,7 @@ export default {
 
     trackMusicVideos:
       track.musicVideos.map(musicVideo =>
-        relation('generateMusicVideo', musicVideo)),
+        relation('generateMusicVideo', musicVideo, track)),
   }),
 
   generate: (relations, {html}) =>
diff --git a/src/content/dependencies/generateTrackArtworkColumn.js b/src/content/dependencies/generateTrackArtworkColumn.js
index dde37376..feaed604 100644
--- a/src/content/dependencies/generateTrackArtworkColumn.js
+++ b/src/content/dependencies/generateTrackArtworkColumn.js
@@ -13,7 +13,7 @@ export default {
 
     trackMusicVideos:
       track.musicVideos.map(musicVideo =>
-        relation('generateMusicVideo', musicVideo)),
+        relation('generateMusicVideo', musicVideo, track)),
   }),
 
   generate: (relations, {html}) =>