« get me outta code hell

data: Artwork.dimensions - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-10 13:53:22 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:43 -0300
commitadfdef1310578fb990a302b8004590c3fcec1d53 (patch)
tree5bdaf93c39487fbccd4e5591c0a4e8e828df91fd /src/data/things
parent37d8572baa3e77e28a0f4df320fcbfa44b751cb8 (diff)
data: Artwork.dimensions
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/album.js3
-rw-r--r--src/data/things/artwork.js24
-rw-r--r--src/data/things/track.js1
3 files changed, 28 insertions, 0 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index e0d9884f..7c85366a 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -500,6 +500,7 @@ export class Album extends Thing {
         property: 'coverArtworks',
         transform:
           parseArtwork({
+            dimensionsFromThingProperty: 'coverArtDimensions',
             fileExtensionFromThingProperty: 'coverArtFileExtension',
             dateFromThingProperty: 'coverArtDate',
             artistContribsFromThingProperty: 'coverArtistContribs',
@@ -512,6 +513,7 @@ export class Album extends Thing {
         transform:
           parseArtwork({
             single: true,
+            dimensionsFromThingProperty: 'bannerDimensions',
             fileExtensionFromThingProperty: 'bannerFileExtension',
             dateFromThingProperty: 'date',
             artistContribsFromThingProperty: 'bannerArtistContribs',
@@ -524,6 +526,7 @@ export class Album extends Thing {
         transform:
           parseArtwork({
             single: true,
+            dimensionsFromThingProperty: null,
             fileExtensionFromThingProperty: 'wallpaperFileExtension',
             dateFromThingProperty: 'date',
             artistContribsFromThingProperty: 'wallpaperArtistContribs',
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js
index fabbf625..93f238f2 100644
--- a/src/data/things/artwork.js
+++ b/src/data/things/artwork.js
@@ -9,6 +9,7 @@ import {
   isContentString,
   isContributionList,
   isDate,
+  isDimensions,
   isFileExtension,
   optional,
   validateArrayItems,
@@ -112,6 +113,29 @@ export class Artwork extends Thing {
       }),
     ],
 
+    dimensionsFromThingProperty: simpleString(),
+
+    dimensions: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isDimensions),
+      }),
+
+      withPropertyFromObject({
+        object: 'thing',
+        property: 'dimensionsFromThingProperty',
+      }).outputs({
+        ['#value']: '#dimensionsFromThing',
+      }),
+
+      exposeDependencyOrContinue({
+        dependency: '#dimensionsFromThing',
+      }),
+
+      exposeConstant({
+        value: input.value(null),
+      }),
+    ],
+
     artistContribsFromThingProperty: simpleString(),
     artistContribsArtistProperty: simpleString(),
 
diff --git a/src/data/things/track.js b/src/data/things/track.js
index c2ba503b..4f5d7a59 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -528,6 +528,7 @@ export class Track extends Thing {
         property: 'trackArtworks',
         transform:
           parseArtwork({
+            dimensionsFromThingProperty: 'coverArtDimensions',
             fileExtensionFromThingProperty: 'coverArtFileExtension',
             dateFromThingProperty: 'coverArtDate',
             artistContribsFromThingProperty: 'coverArtistContribs',