diff options
Diffstat (limited to 'src/content/dependencies')
| -rw-r--r-- | src/content/dependencies/generateMusicVideo.js | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/content/dependencies/generateMusicVideo.js b/src/content/dependencies/generateMusicVideo.js index b3171716..628c1a17 100644 --- a/src/content/dependencies/generateMusicVideo.js +++ b/src/content/dependencies/generateMusicVideo.js @@ -14,12 +14,34 @@ export default { relation('generateArtistCredit', musicVideo.contributorContribs, []), }), - data: (musicVideo, _track) => ({ + data: (musicVideo, track) => ({ label: musicVideo.label, url: musicVideo.url, + + sameDay: + (() => { + if (!musicVideo.dateIsSpecified) return null; + + const compare = (a, b) => + a.toDateString() === b.toDateString(); + + if (compare(musicVideo.date, track.album.date)) { + if (track.album.style === 'single') { + return 'single'; + } else { + return 'album'; + } + } + + if (compare(musicVideo.date, track.date)) { + return 'track'; + } + + return null; + })(), }), generate: (data, relations, {language, html}) => @@ -41,7 +63,7 @@ export default { link: data.url, }), - html.tag('p', {class: 'music-video-credits'}, + html.tag('p', {class: 'music-video-info'}, {[html.joinChildren]: html.tag('br')}, [ @@ -50,6 +72,17 @@ export default { relations.releaseLine), + language.encapsulate(capsule, 'date', capsule => [ + data.sameDay == 'album' && + language.$(capsule, 'sameDayAsAlbum'), + + data.sameDay == 'single' && + language.$(capsule, 'sameDayAsTrack'), + + data.sameDay === 'track' && + language.$(capsule, 'sameDayAsTrack'), + ]), + language.encapsulate(capsule, 'contributorsLine', capsule => language.$(capsule, { [language.onlyIfOptions]: ['credit'], |