« 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/things.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things.js')
-rw-r--r--src/data/things.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/data/things.js b/src/data/things.js
index c93b885..16970af 100644
--- a/src/data/things.js
+++ b/src/data/things.js
@@ -448,6 +448,9 @@ Album.propertyDescriptors = {
         }
     },
 
+    coverArtFileExtension: Thing.common.fileExtension('jpg'),
+    trackCoverArtFileExtension: Thing.common.fileExtension('jpg'),
+
     wallpaperStyle: Thing.common.simpleString(),
     wallpaperFileExtension: Thing.common.fileExtension('jpg'),
 
@@ -605,6 +608,20 @@ Track.propertyDescriptors = {
         }
     },
 
+    coverArtFileExtension: {
+        flags: {update: true, expose: true},
+
+        update: {validate: isFileExtension},
+
+        expose: {
+            dependencies: ['albumData'],
+            transform: (coverArtFileExtension, { albumData, [Track.instance]: track }) => (
+                coverArtFileExtension ??
+                Track.findAlbum(track, albumData)?.trackCoverArtFileExtension ??
+                true)
+        }
+    },
+
     // Previously known as: (track).aka
     originalReleaseTrackByRef: Thing.common.singleReference(Track),
 
@@ -779,6 +796,9 @@ Artist.propertyDescriptors = {
     urls: Thing.common.urls(),
     contextNotes: Thing.common.simpleString(),
 
+    hasAvatar: Thing.common.flag(false),
+    avatarFileExtension: Thing.common.fileExtension('jpg'),
+
     aliasNames: {
         flags: {update: true, expose: true},
         update: {