« 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/track.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/track.js')
-rw-r--r--src/data/things/track.js22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 4a30433c..ae7be170 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -14,9 +14,11 @@ import {
   parseArtwork,
   parseCommentary,
   parseContributors,
+  parseCreditingSources,
   parseDate,
   parseDimensions,
   parseDuration,
+  parseLyrics,
 } from '#yaml';
 
 import {withPropertyFromObject} from '#composite/data';
@@ -46,7 +48,6 @@ import {
   directory,
   duration,
   flag,
-  lyrics,
   name,
   referenceList,
   referencedArtworkList,
@@ -89,7 +90,9 @@ export class Track extends Thing {
     ArtTag,
     Artwork,
     CommentaryEntry,
+    CreditingSourcesEntry,
     Flash,
+    LyricsEntry,
     TrackSection,
     WikiInfo,
   }) => ({
@@ -223,12 +226,18 @@ export class Track extends Thing {
     }),
 
     creditSources: thingList({
-      class: input.value(CommentaryEntry),
+      class: input.value(CreditingSourcesEntry),
     }),
 
     lyrics: [
+      // TODO: Inherited lyrics are literally the same objects, so of course
+      // their .thing properties aren't going to point back to this one, and
+      // certainly couldn't be recontextualized...
       inheritFromMainRelease(),
-      lyrics(),
+
+      thingList({
+        class: input.value(LyricsEntry),
+      }),
     ],
 
     additionalFiles: additionalFiles(),
@@ -488,7 +497,10 @@ export class Track extends Thing {
 
       'Always Reference By Directory': {property: 'alwaysReferenceByDirectory'},
 
-      'Lyrics': {property: 'lyrics'},
+      'Lyrics': {
+        property: 'lyrics',
+        transform: parseLyrics,
+      },
 
       'Commentary': {
         property: 'commentary',
@@ -497,7 +509,7 @@ export class Track extends Thing {
 
       'Credit Sources': {
         property: 'creditSources',
-        transform: parseCommentary,
+        transform: parseCreditingSources,
       },
 
       'Additional Files': {