diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-01-17 18:54:29 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-01-17 18:54:29 -0400 |
| commit | 85fa29d1cef35f7b3ba977b35dc913d39d3268be (patch) | |
| tree | e788954c6a87f512a3571311c54f944d5f444f11 /src/content | |
| parent | 28319f6e7302be38db45e85767b156fe4496e13f (diff) | |
content, data: generateMusicVideo: same day as album/single/track
Diffstat (limited to 'src/content')
| -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'], |