« get me outta code hell

data, content: Artwork.path - 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-02 18:41:13 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:38 -0300
commitb99aaacf875b826bc196d992412a0bf246bd4f9b (patch)
treeb5cbba7297a128cb82d3d0cbac14a8fdb756dd29 /src/data/things
parent58fba5a7a859c5398e0e58f31d7e8e5a649db63b (diff)
data, content: Artwork.path
Lots of cleanup for generateCoverArtwork now that it's in charge
of its own image (again, apparently)

Still broken for anything besides tracks
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/album.js8
-rw-r--r--src/data/things/artwork.js7
-rw-r--r--src/data/things/track.js11
3 files changed, 26 insertions, 0 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 36069afb..606bc194 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -671,6 +671,14 @@ export class Album extends Thing {
       sortAlbumsTracksChronologically(trackData);
     },
   });
+
+  getOwnArtworkPath(_artwork) {
+    return [
+      'media.albumCover',
+      this.directory,
+      this.coverArtFileExtension,
+    ];
+  }
 }
 
 export class TrackSection extends Thing {
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js
index 24850057..bf5753b8 100644
--- a/src/data/things/artwork.js
+++ b/src/data/things/artwork.js
@@ -135,4 +135,11 @@ export class Artwork extends Thing {
       'Tags': {property: 'artTags'},
     },
   };
+
+  get path() {
+    if (!this.thing) return null;
+    if (!this.thing.getOwnArtworkPath) return null;
+
+    return this.thing.getOwnArtworkPath(this);
+  }
 }
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 7188178a..f514f7bb 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -724,6 +724,17 @@ export class Track extends Thing {
   // Track YAML loading is handled in album.js.
   static [Thing.getYamlLoadingSpec] = null;
 
+  getOwnArtworkPath(_artwork) {
+    if (!this.album) return null;
+
+    return [
+      'media.trackCover',
+      this.album.directory,
+      this.directory,
+      this.coverArtFileExtension,
+    ];
+  }
+
   [inspect.custom](depth) {
     const parts = [];