« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/util/wiki-data.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/wiki-data.js')
-rw-r--r--src/util/wiki-data.js31
1 files changed, 31 insertions, 0 deletions
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('<i>' + artist.name + ':</i>')));
 }
+
+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);
+    }
+}