diff options
Diffstat (limited to 'src/data/yaml.js')
-rw-r--r-- | src/data/yaml.js | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js index 21b56d43..e9212764 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'); |