From 9dbc0792c8988e97b1b93b83b27b1aa62dfc1875 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 12 May 2022 19:04:35 -0300 Subject: new Additional Files data field --- src/data/yaml.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/data/yaml.js') diff --git a/src/data/yaml.js b/src/data/yaml.js index 21b56d4..e921276 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -190,6 +190,8 @@ export const processAlbumDocument = makeProcessDocument(Album, { 'Default Track Cover Art Date': value => new Date(value), 'Banner Dimensions': parseDimensions, + + 'Additional Files': parseAdditionalFiles, }, propertyFieldMapping: { @@ -229,6 +231,8 @@ export const processAlbumDocument = makeProcessDocument(Album, { groupsByRef: 'Groups', artTagsByRef: 'Art Tags', commentary: 'Commentary', + + additionalFiles: 'Additional Files', } }); @@ -254,6 +258,8 @@ export const processTrackDocument = makeProcessDocument(Track, { 'Artists': parseContributors, 'Contributors': parseContributors, 'Cover Artists': parseContributors, + + 'Additional Files': parseAdditionalFiles, }, propertyFieldMapping: { @@ -277,7 +283,9 @@ export const processTrackDocument = makeProcessDocument(Track, { originalReleaseTrackByRef: 'Originally Released As', commentary: 'Commentary', - lyrics: 'Lyrics' + lyrics: 'Lyrics', + + additionalFiles: 'Additional Files', }, ignoredFields: ['Sampled Tracks'] @@ -465,6 +473,20 @@ export function getDurationInSeconds(string) { } } +export function parseAdditionalFiles(array) { + if (!array) return null; + if (!Array.isArray(array)) { + // Error will be caught when validating against whatever this value is + return array; + } + + return array.map(item => ({ + title: item['Title'], + description: item['Description'] ?? null, + files: item['Files'] + })); +} + export function parseCommentary(text) { if (text) { const lines = String(text).split('\n'); -- cgit 1.3.0-6-gf8a5