diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-05-21 14:14:19 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-05-21 14:14:19 -0300 |
commit | 37122b700c27435a8d8487f0d474a5c52f685e59 (patch) | |
tree | 920002fa293a8a65410a2c0151ca4188ec60212b /src/data | |
parent | 85e62b20170c566c5a22479f5dfaccc2817f4afe (diff) |
data, content: Track: "Referencing Sources"
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/checks.js | 2 | ||||
-rw-r--r-- | src/data/things/album.js | 3 | ||||
-rw-r--r-- | src/data/things/content.js | 2 | ||||
-rw-r--r-- | src/data/things/track.js | 11 | ||||
-rw-r--r-- | src/data/yaml.js | 6 |
5 files changed, 24 insertions, 0 deletions
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', [ |