diff options
Diffstat (limited to 'src/data/yaml.js')
| -rw-r--r-- | src/data/yaml.js | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js index ba627b29..15d7b0ba 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -762,25 +762,44 @@ export function parseURLs(entries) { } export function parseExcludingURLs(value) { - if (typeof value !== 'string') { - return value; + if (typeof value === 'boolean') { + switch (value) { + case true: return 'generic'; + case false: return false; + // False is for nullifying an inherited reason for exclusion. + } } - switch (value) { - case 'paid bonus tracks': return 'paid bonus track'; + if (typeof value === 'string') { + switch (value) { + case 'paid bonus tracks': return 'paid bonus track'; + default: return value; + } } return value; } -export function parseAdditionalFiles(entries, {subdoc, AdditionalFile}) { +export function parseAdditionalFilesEntries(thingClass, entries, {subdoc}) { return parseArrayEntries(entries, item => { if (typeof item !== 'object') return item; - return subdoc(AdditionalFile, item, {bindInto: 'thing'}); + return subdoc(thingClass, item, {bindInto: 'thing'}); }); } +export function parseAdditionalFiles(entries, {subdoc, MiscellaneousAdditionalFile}) { + return parseAdditionalFilesEntries(MiscellaneousAdditionalFile, entries, {subdoc}); +} + +export function parseMidiProjectFiles(entries, {subdoc, MidiProjectFile}) { + return parseAdditionalFilesEntries(MidiProjectFile, entries, {subdoc}); +} + +export function parseSheetMusicFiles(entries, {subdoc, SheetMusicFile}) { + return parseAdditionalFilesEntries(SheetMusicFile, entries, {subdoc}); +} + export function parseAdditionalNames(entries, {subdoc, AdditionalName}) { return parseArrayEntries(entries, item => { if (typeof item === 'object') { @@ -1866,12 +1885,18 @@ export function linkWikiDataArrays(wikiData, {bindFind, bindReverse}) { ['lyricsData', [/* find */]], + ['midiProjectFileData', [/* find */]], + + ['miscellaneousAdditionalFileData', [/* find */]], + ['musicVideoData', [/* find */]], ['referencingSourceData', [/* find */]], ['seriesData', [/* find */]], + ['sheetMusicFileData', [/* find */]], + ['trackData', [ 'artworkData', 'wikiInfo', |