From 234747721fec14e69fc75d6c0134ad4a5ae7736e Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 1 Jun 2021 15:32:03 -0300 Subject: basic module-ify album pages Other pages are commented out for now. Also, this doesn't include the source .txt processing functions yet, 8ut that'll pro8a8ly end up in the page/ files too. --- src/util/wiki-data.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/util/wiki-data.js') diff --git a/src/util/wiki-data.js b/src/util/wiki-data.js index e76722b..13b8609 100644 --- a/src/util/wiki-data.js +++ b/src/util/wiki-data.js @@ -89,6 +89,15 @@ export function sortByArtDate(data) { // Specific data utilities +export function getAlbumCover(album, {to}) { + return to('media.albumCover', album.directory); +} + +export function getAlbumListTag(album) { + // TODO: This is hard-coded! No. 8ad. + return (album.directory === 'unreleased-tracks' ? 'ul' : 'ol'); +} + // This gets all the track o8jects defined in every al8um, and sorts them 8y // date released. Generally, albumData will pro8a8ly already 8e sorted 8efore // you pass it to this function, 8ut individual tracks can have their own @@ -124,3 +133,25 @@ export function getArtistCommentary(artist, {justEverythingMan}) { .replace(/<\/?b>/g, '') .includes('' + artist.name + ':'))); } + +export function getFlashCover(flash, {to}) { + return to('media.flashArt', flash.directory); +} + +export function getFlashLink(flash) { + return `https://homestuck.com/story/${flash.page}`; +} + +export function getTotalDuration(tracks) { + return tracks.reduce((duration, track) => duration + track.duration, 0); +} + +export function getTrackCover(track, {to}) { + // Some al8ums don't have any track art at all, and in those, every track + // just inherits the al8um's own cover art. + if (track.coverArtists === null) { + return getAlbumCover(track.album, {to}); + } else { + return to('media.trackCover', track.album.directory, track.directory); + } +} -- cgit 1.3.0-6-gf8a5