From 37122b700c27435a8d8487f0d474a5c52f685e59 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 21 May 2025 14:14:19 -0300 Subject: data, content: Track: "Referencing Sources" --- src/data/checks.js | 2 ++ src/data/things/album.js | 3 +++ src/data/things/content.js | 2 ++ src/data/things/track.js | 11 +++++++++++ src/data/yaml.js | 6 ++++++ 5 files changed, 24 insertions(+) (limited to 'src/data') diff --git a/src/data/checks.js b/src/data/checks.js index 582b4eb4..c86d895d 100644 --- a/src/data/checks.js +++ b/src/data/checks.js @@ -236,6 +236,7 @@ export function filterReferenceErrors(wikiData, { mainReleaseTrack: '_trackMainReleasesOnly', commentary: '_content', creditingSources: '_content', + referencingSources: '_content', lyrics: '_content', }], @@ -612,6 +613,7 @@ export function reportContentTextErrors(wikiData, { additionalFiles: additionalFileShape, commentary: commentaryShape, creditingSources: commentaryShape, + referencingSources: commentaryShape, lyrics: lyricsShape, midiProjectFiles: additionalFileShape, sheetMusicFiles: additionalFileShape, diff --git a/src/data/things/album.js b/src/data/things/album.js index dc31bb10..b1aad9fc 100644 --- a/src/data/things/album.js +++ b/src/data/things/album.js @@ -696,6 +696,7 @@ export class Album extends Thing { const artworkData = []; const commentaryData = []; const creditingSourceData = []; + const referencingSourceData = []; const lyricsData = []; for (const {header: album, entries} of results) { @@ -745,6 +746,7 @@ export class Album extends Thing { artworkData.push(...entry.trackArtworks); commentaryData.push(...entry.commentary); creditingSourceData.push(...entry.creditingSources); + referencingSourceData.push(...entry.referencingSources); // TODO: As exposed, Track.lyrics tries to inherit from the main // release, which is impossible before the data's been linked. @@ -780,6 +782,7 @@ export class Album extends Thing { artworkData, commentaryData, creditingSourceData, + referencingSourceData, lyricsData, }; }, diff --git a/src/data/things/content.js b/src/data/things/content.js index cf8fa1f4..fbc2e417 100644 --- a/src/data/things/content.js +++ b/src/data/things/content.js @@ -188,3 +188,5 @@ export class LyricsEntry extends ContentEntry { } export class CreditingSourcesEntry extends ContentEntry {} + +export class ReferencingSourcesEntry extends ContentEntry {} diff --git a/src/data/things/track.js b/src/data/things/track.js index 5da1e00a..ba21cda1 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -15,6 +15,7 @@ import { parseCommentary, parseContributors, parseCreditingSources, + parseReferencingSources, parseDate, parseDimensions, parseDuration, @@ -93,6 +94,7 @@ export class Track extends Thing { CreditingSourcesEntry, Flash, LyricsEntry, + ReferencingSourcesEntry, TrackSection, WikiInfo, }) => ({ @@ -231,6 +233,10 @@ export class Track extends Thing { class: input.value(CreditingSourcesEntry), }), + referencingSources: thingList({ + class: input.value(ReferencingSourcesEntry), + }), + 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 @@ -522,6 +528,11 @@ export class Track extends Thing { transform: parseCreditingSources, }, + 'Referencing Sources': { + property: 'referencingSources', + transform: parseReferencingSources, + }, + 'Additional Files': { property: 'additionalFiles', transform: parseAdditionalFiles, diff --git a/src/data/yaml.js b/src/data/yaml.js index 2dd1f7e8..e8d24353 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -930,6 +930,10 @@ export function parseCreditingSources(value, {subdoc, CreditingSourcesEntry}) { return parseContentEntries(CreditingSourcesEntry, value, {subdoc}); } +export function parseReferencingSources(value, {subdoc, ReferencingSourcesEntry}) { + return parseContentEntries(ReferencingSourcesEntry, value, {subdoc}); +} + export function parseLyrics(value, {subdoc, LyricsEntry}) { if ( typeof value === 'string' && @@ -1638,6 +1642,8 @@ export function linkWikiDataArrays(wikiData, {bindFind, bindReverse}) { ['lyricsData', [/* find */]], + ['referencingSourceData', [/* find */]], + ['seriesData', [/* find */]], ['trackData', [ -- cgit 1.3.0-6-gf8a5