diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/content/dependencies/generateMusicVideo.js | 22 | ||||
| -rw-r--r-- | src/content/dependencies/generateSingleArtworkColumn.js | 2 | ||||
| -rw-r--r-- | src/content/dependencies/generateTrackArtworkColumn.js | 2 | ||||
| -rw-r--r-- | src/data/things/music-video.js | 15 | ||||
| -rw-r--r-- | src/strings-default.yaml | 6 |
5 files changed, 29 insertions, 18 deletions
diff --git a/src/content/dependencies/generateMusicVideo.js b/src/content/dependencies/generateMusicVideo.js index a61cd5b7..7f0108af 100644 --- a/src/content/dependencies/generateMusicVideo.js +++ b/src/content/dependencies/generateMusicVideo.js @@ -1,5 +1,5 @@ export default { - relations: (relation, musicVideo) => ({ + relations: (relation, musicVideo, thing) => ({ image: relation('image', { path: musicVideo.path, @@ -7,6 +7,9 @@ export default { dimensions: musicVideo.coverArtDimensions, }), + datetimestamp: + relation('generateAbsoluteDatetimestamp', musicVideo.date, thing.date), + artistCredit: relation('generateArtistCredit', musicVideo.artistContribs, []), @@ -14,7 +17,7 @@ export default { relation('generateArtistCredit', musicVideo.contributorContribs, []), }), - data: (musicVideo) => ({ + data: (musicVideo, _track) => ({ label: musicVideo.label, @@ -46,16 +49,25 @@ export default { [ language.encapsulate(capsule, 'by', workingCapsule => { - const additionalStringOptions = {}; + const workingOptions = {}; if (data.label) { workingCapsule += '.customLabel'; - additionalStringOptions.label = data.label; + workingOptions.label = data.label; + } + + const {datetimestamp} = relations; + + datetimestamp.setSlot('style', 'year-difference'); + + if (!html.isBlank(datetimestamp)) { + workingCapsule += '.withDate'; + workingOptions.date = datetimestamp; } return relations.artistCredit.slots({ normalStringKey: workingCapsule, - additionalStringOptions, + additionalStringOptions: workingOptions, showAnnotation: true, showChronology: true, diff --git a/src/content/dependencies/generateSingleArtworkColumn.js b/src/content/dependencies/generateSingleArtworkColumn.js index 52537186..32c448ad 100644 --- a/src/content/dependencies/generateSingleArtworkColumn.js +++ b/src/content/dependencies/generateSingleArtworkColumn.js @@ -5,7 +5,7 @@ export default { trackMusicVideos: track.musicVideos.map(musicVideo => - relation('generateMusicVideo', musicVideo)), + relation('generateMusicVideo', musicVideo, track)), }), generate: (relations, {html}) => diff --git a/src/content/dependencies/generateTrackArtworkColumn.js b/src/content/dependencies/generateTrackArtworkColumn.js index dde37376..feaed604 100644 --- a/src/content/dependencies/generateTrackArtworkColumn.js +++ b/src/content/dependencies/generateTrackArtworkColumn.js @@ -13,7 +13,7 @@ export default { trackMusicVideos: track.musicVideos.map(musicVideo => - relation('generateMusicVideo', musicVideo)), + relation('generateMusicVideo', musicVideo, track)), }), generate: (relations, {html}) => diff --git a/src/data/things/music-video.js b/src/data/things/music-video.js index 267349e8..6c1e3ba6 100644 --- a/src/data/things/music-video.js +++ b/src/data/things/music-video.js @@ -5,7 +5,7 @@ import {input, V} from '#composite'; import find from '#find'; import Thing from '#thing'; import {isDate, isStringNonEmpty, isURL} from '#validators'; -import {parseContributors} from '#yaml'; +import {parseContributors, parseDate} from '#yaml'; import {exposeConstant, exposeUpdateValueOrContinue} from '#composite/control-flow'; @@ -72,21 +72,14 @@ export class MusicVideo extends Thing { fields: { 'Label': {property: 'label'}, 'Directory': {property: 'unqualifiedDirectory'}, - 'Date': {property: 'date'}, + 'Date': {property: 'date', transform: parseDate}, 'URL': {property: 'url'}, 'Cover Art File Extension': {property: 'coverArtFileExtension'}, 'Cover Art Dimensions': {property: 'coverArtDimensions'}, - 'Artists': { - property: 'artistContribs', - transform: parseContributors, - }, - - 'Contributors': { - property: 'contributorContribs', - transform: parseContributors, - }, + 'Artists': {property: 'artistContribs', transform: parseContributors}, + 'Contributors': {property: 'contributorContribs', transform: parseContributors}, }, }; diff --git a/src/strings-default.yaml b/src/strings-default.yaml index 6cdb9727..565330e0 100644 --- a/src/strings-default.yaml +++ b/src/strings-default.yaml @@ -997,6 +997,12 @@ misc: by: "Music video by {ARTISTS}" by.customLabel: "{LABEL} by {ARTISTS}" + by.withDate: >- + Music video ({DATE}) by {ARTISTS} + + by.customLabel.withDate: >- + {LABEL} ({DATE}) by {ARTISTS} + contributors: "Contributors: {ARTISTS}" # coverGrid: |