« get me outta code hell

data: CommentaryEntry - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/album.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-14 20:59:17 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-14 21:35:13 -0300
commit7342b35d0da518fa5559dadc3239fd574a105432 (patch)
treea17ec409c03b6ab1a01c2f4cc2ec8ef2f8f85d4b /src/data/things/album.js
parent6d811c36d2b9795ad58fd0bf11f6033d93863fed (diff)
data: CommentaryEntry
Fully integrated, all in one commit! Wow!
Diffstat (limited to 'src/data/things/album.js')
-rw-r--r--src/data/things/album.js35
1 files changed, 30 insertions, 5 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 4c85ddfa..2f5e1093 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -16,6 +16,7 @@ import {
   parseAdditionalNames,
   parseAnnotatedReferences,
   parseArtwork,
+  parseCommentary,
   parseContributors,
   parseDate,
   parseDimensions,
@@ -32,7 +33,6 @@ import {exitWithoutContribs, withDirectory, withCoverArtDate}
 import {
   additionalFiles,
   additionalNameList,
-  commentary,
   color,
   commentatorArtists,
   constitutibleArtwork,
@@ -69,6 +69,7 @@ export class Album extends Thing {
   static [Thing.getPropertyDescriptors] = ({
     ArtTag,
     Artwork,
+    CommentaryEntry,
     Group,
     Track,
     TrackSection,
@@ -204,8 +205,14 @@ export class Album extends Thing {
     isListedOnHomepage: flag(true),
     isListedInGalleries: flag(true),
 
-    commentary: commentary(),
-    creditSources: commentary(),
+    commentary: thingList({
+      class: input.value(CommentaryEntry),
+    }),
+
+    creditSources: thingList({
+      class: input.value(CommentaryEntry),
+    }),
+
     additionalFiles: additionalFiles(),
 
     trackSections: thingList({
@@ -596,8 +603,15 @@ export class Album extends Thing {
         transform: parseDimensions,
       },
 
-      'Commentary': {property: 'commentary'},
-      'Credit Sources': {property: 'creditSources'},
+      'Commentary': {
+        property: 'commentary',
+        transform: parseCommentary,
+      },
+
+      'Credit Sources': {
+        property: 'creditSources',
+        transform: parseCommentary,
+      },
 
       'Additional Files': {
         property: 'additionalFiles',
@@ -668,7 +682,10 @@ export class Album extends Thing {
       const albumData = [];
       const trackSectionData = [];
       const trackData = [];
+
       const artworkData = [];
+      const commentaryData = [];
+      const creditingSourceData = [];
 
       for (const {header: album, entries} of results) {
         const trackSections = [];
@@ -715,6 +732,8 @@ export class Album extends Thing {
           entry.album = album;
 
           artworkData.push(...entry.trackArtworks);
+          commentaryData.push(...entry.commentary);
+          creditingSourceData.push(...entry.creditSources);
         }
 
         closeCurrentTrackSection();
@@ -731,6 +750,9 @@ export class Album extends Thing {
           artworkData.push(album.wallpaperArtwork);
         }
 
+        commentaryData.push(...album.commentary);
+        creditingSourceData.push(...album.creditSources);
+
         album.trackSections = trackSections;
       }
 
@@ -738,7 +760,10 @@ export class Album extends Thing {
         albumData,
         trackSectionData,
         trackData,
+
         artworkData,
+        commentaryData,
+        creditingSourceData,
       };
     },