« 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
diff options
context:
space:
mode:
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 = [];