« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/generateCoverArtworkOriginDetails.js41
-rw-r--r--src/strings-default.yaml14
2 files changed, 46 insertions, 9 deletions
diff --git a/src/content/dependencies/generateCoverArtworkOriginDetails.js b/src/content/dependencies/generateCoverArtworkOriginDetails.js
index 3eb7c664..896dd122 100644
--- a/src/content/dependencies/generateCoverArtworkOriginDetails.js
+++ b/src/content/dependencies/generateCoverArtworkOriginDetails.js
@@ -58,6 +58,11 @@ export default {
         {class: 'origin-details'},
 
         (() => {
+          relations.datetimestamp?.setSlots({
+            style: 'year',
+            tooltip: true,
+          });
+
           const artworkBy =
             language.encapsulate(capsule, 'artworkBy', workingCapsule => {
               const workingOptions = {};
@@ -69,11 +74,7 @@ export default {
 
               if (relations.datetimestamp) {
                 workingCapsule += '.withYear';
-                workingOptions.year =
-                  relations.datetimestamp.slots({
-                    style: 'year',
-                    tooltip: true,
-                  });
+                workingOptions.year = relations.datetimestamp;
               }
 
               return relations.credit.slots({
@@ -111,15 +112,38 @@ export default {
                 workingOptions.label = data.label;
               }
 
+              if (html.isBlank(artworkBy) && relations.datetimestamp) {
+                workingCapsule += '.withYear';
+                workingOptions.year = relations.datetimestamp;
+              }
+
               return language.$(workingCapsule, workingOptions);
             });
 
           const label =
             html.isBlank(artworkBy) &&
             html.isBlank(source) &&
-            language.$(capsule, 'customLabelAlone', {
-              [language.onlyIfOptions]: ['label'],
-              label: data.label,
+            language.encapsulate(capsule, 'customLabel', workingCapsule => {
+              const workingOptions = {
+                [language.onlyIfOptions]: ['label'],
+                label: data.label,
+              };
+
+              if (relations.datetimestamp) {
+                workingCapsule += '.withYear';
+                workingOptions.year = relations.datetimestamp;
+              }
+
+              return language.$(workingCapsule, workingOptions);
+            });
+
+          const year =
+            html.isBlank(artworkBy) &&
+            html.isBlank(source) &&
+            html.isBlank(label) &&
+            language.$(capsule, 'year', {
+              [language.onlyIfOptions]: ['year'],
+              year: relations.datetimestamp,
             });
 
           return [
@@ -127,6 +151,7 @@ export default {
             trackArtFromAlbum,
             source,
             label,
+            year,
           ];
         })())),
 };
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index fe40e767..ef885e00 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -931,9 +931,21 @@ misc:
     source.customLabel: >-
       {LABEL} via {SOURCE}
 
-    customLabelAlone: >-
+    source.withYear: >-
+      Via {SOURCE} ({YEAR})
+
+    source.customLabel.withYear: >-
+      {LABEL} ({YEAR}) via {SOURCE}
+
+    customLabel: >-
       {LABEL}
 
+    customLabel.withYear: >-
+      {LABEL} ({YEAR})
+
+    year: >-
+      Released {YEAR}
+
     trackArtFromAlbum: "Album cover for {ALBUM}"
 
     sameTagsAsMainArtwork: "Same tags as main artwork"