From 27d366fd2de98d816ef0698a1a6d5b4d59b388ca Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Thu, 5 May 2022 19:36:59 -0300
Subject: support albums and tracks without release dates
---
src/page/artist.js | 56 +++++++++++++++++++++---------------------------------
1 file changed, 22 insertions(+), 34 deletions(-)
(limited to 'src/page/artist.js')
diff --git a/src/page/artist.js b/src/page/artist.js
index 38ca76d..146b75a 100644
--- a/src/page/artist.js
+++ b/src/page/artist.js
@@ -8,10 +8,6 @@ import fixWS from 'fix-whitespace';
import * as html from '../util/html.js';
-import {
- UNRELEASED_TRACKS_DIRECTORY
-} from '../util/magic-constants.js';
-
import {
bindOpts,
unique
@@ -82,9 +78,6 @@ export function write(artist, {wikiData}) {
...artist.tracksAsContributor ?? []
]));
- const unreleasedTracks = allTracks.filter(track => track.album.directory === UNRELEASED_TRACKS_DIRECTORY);
- const releasedTracks = allTracks.filter(track => track.album.directory !== UNRELEASED_TRACKS_DIRECTORY);
-
const chunkTracks = tracks => (
chunkByProperties(tracks.map(track => ({
track,
@@ -107,10 +100,8 @@ export function write(artist, {wikiData}) {
duration: getTotalDuration(chunk),
})));
- const unreleasedTrackListChunks = chunkTracks(unreleasedTracks);
- const releasedTrackListChunks = chunkTracks(releasedTracks);
-
- const totalReleasedDuration = getTotalDuration(releasedTracks);
+ const trackListChunks = chunkTracks(allTracks);
+ const totalDuration = getTotalDuration(allTracks);
const countGroups = things => {
const usedGroups = things.flatMap(thing => thing.groups || thing.album?.groups || []);
@@ -123,7 +114,7 @@ export function write(artist, {wikiData}) {
.sort((a, b) => b.contributions - a.contributions);
};
- const musicGroups = countGroups(releasedTracks);
+ const musicGroups = countGroups(allTracks);
const artGroups = countGroups(artThingsAll);
let flashes, flashListChunks;
@@ -176,11 +167,20 @@ export function write(artist, {wikiData}) {
}) => fixWS`
${chunks.map(({date, album, chunk, duration}) => fixWS`
- - ${strings('artistPage.creditList.album.withDate.withDuration', {
- album: link.album(album),
- date: strings.count.date(date),
- duration: strings.count.duration(duration, {approximate: true})
- })}
+ - ${
+ (date && duration) ? strings('artistPage.creditList.album.withDate.withDuration', {
+ album: link.album(album),
+ date: strings.count.date(date),
+ duration: strings.count.duration(duration, {approximate: true})
+ }) : date ? strings('artistPage.creditList.album.withDate', {
+ album: link.album(album),
+ date: strings.count.date(date)
+ }) : duration ? strings('artistPage.creditList.album.withDuration', {
+ album: link.album(album),
+ duration: strings.count.duration(duration, {approximate: true})
+ }) : strings('artistPage.creditList.album', {
+ album: link.album(album)
+ })}
${(chunk
.map(({track, ...props}) => ({
@@ -256,10 +256,7 @@ export function write(artist, {wikiData}) {
tracks: {
asArtist: artist.tracksAsArtist.map(serializeArtistsAndContrib('artistContribs')),
asContributor: artist.tracksAsContributor.map(serializeArtistsAndContrib('contributorContribs')),
- chunked: {
- released: serializeTrackListChunks(releasedTrackListChunks),
- unreleased: serializeTrackListChunks(unreleasedTrackListChunks)
- }
+ chunked: serializeTrackListChunks(trackListChunks)
}
};
}
@@ -312,22 +309,17 @@ export function write(artist, {wikiData}) {
})}
`}
${strings('misc.jumpTo.withLinks', {
links: strings.list.unit([
- [
- [...releasedTracks, ...unreleasedTracks].length && `${strings('artistPage.trackList.title')}`,
- unreleasedTracks.length && `(${strings('artistPage.unreleasedTrackList.title')})`
- ].filter(Boolean).join(' '),
+ allTracks.length && `${strings('artistPage.trackList.title')}`,
artThingsAll.length && `${strings('artistPage.artList.title')}`,
wikiInfo.enableFlashesAndGames && flashes.length && `${strings('artistPage.flashList.title')}`,
commentaryThings.length && `${strings('artistPage.commentaryList.title')}`
].filter(Boolean))
})}
- ${(releasedTracks.length || unreleasedTracks.length) && fixWS`
+ ${allTracks.length && fixWS`
${strings('artistPage.trackList.title')}
- `}
- ${releasedTracks.length && fixWS`
${strings('artistPage.contributedDurationLine', {
artist: artist.name,
- duration: strings.count.duration(totalReleasedDuration, {approximate: true, unit: true})
+ duration: strings.count.duration(totalDuration, {approximate: true, unit: true})
})}
${strings('artistPage.musicGroupsLine', {
groups: strings.list.unit(musicGroups
@@ -336,11 +328,7 @@ export function write(artist, {wikiData}) {
contributions: strings.count.contributions(contributions)
})))
})}
- ${generateTrackList(releasedTrackListChunks)}
- `}
- ${unreleasedTracks.length && fixWS`
- ${strings('artistPage.unreleasedTrackList.title')}
- ${generateTrackList(unreleasedTrackListChunks)}
+ ${generateTrackList(trackListChunks)}
`}
${artThingsAll.length && fixWS`
${strings('artistPage.artList.title')}
--
cgit 1.3.0-6-gf8a5