From e2cdee25fa4d7464f8429a951fe368b96ee48834 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 2 Aug 2023 18:04:17 -0300 Subject: content: generate{Album,Track}?SocialEmbed --- .../dependencies/generateTrackSocialEmbed.js | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/content/dependencies/generateTrackSocialEmbed.js (limited to 'src/content/dependencies/generateTrackSocialEmbed.js') diff --git a/src/content/dependencies/generateTrackSocialEmbed.js b/src/content/dependencies/generateTrackSocialEmbed.js new file mode 100644 index 00000000..0337fc46 --- /dev/null +++ b/src/content/dependencies/generateTrackSocialEmbed.js @@ -0,0 +1,86 @@ +export default { + contentDependencies: [ + 'generateSocialEmbed', + 'generateTrackSocialEmbedDescription', + ], + + extraDependencies: ['absoluteTo', 'language', 'urls'], + + relations(relation, track) { + return { + socialEmbed: + relation('generateSocialEmbed'), + + description: + relation('generateTrackSocialEmbedDescription', track), + }; + }, + + data(track) { + const {album} = track; + const data = {}; + + data.trackName = track.name; + data.albumName = album.name; + + data.trackDirectory = track.directory; + data.albumDirectory = album.directory; + + if (track.hasUniqueCoverArt) { + data.imageSource = 'track'; + data.coverArtFileExtension = track.coverArtFileExtension; + } else if (album.hasCoverArt) { + data.imageSource = 'album'; + data.coverArtFileExtension = album.coverArtFileExtension; + } else { + data.imageSource = 'none'; + } + + return data; + }, + + generate(data, relations, {absoluteTo, language, urls}) { + return relations.socialEmbed.slots({ + title: + language.$('trackPage.socialEmbed.title', { + track: data.trackName, + }), + + headingContent: + language.$('trackPage.socialEmbed.heading', { + album: data.albumName, + }), + + headingLink: + absoluteTo('localized.album', data.albumDirectory), + + imagePath: + (data.imageSource === 'album' + ? '/' + + urls + .from('shared.root') + .to('media.albumCover', data.albumDirectory, data.coverArtFileExtension) + : data.imageSource === 'track' + ? '/' + + urls + .from('shared.root') + .to('media.trackCover', data.albumDirectory, data.trackDirectory, data.coverArtFileExtension) + : null), + }); + }, +}; + +/* + socialEmbed: { + heading: language.$('trackPage.socialEmbed.heading', { + album: track.album.name, + }), + headingLink: absoluteTo('localized.album', album.directory), + title: language.$('trackPage.socialEmbed.title', { + track: track.name, + }), + description: getSocialEmbedDescription({getArtistString, language}), + image: '/' + getTrackCover(track, {to: urls.from('shared.root').to}), + color: track.color, + }, +*/ -- cgit 1.3.0-6-gf8a5