From 1322f423ffcb76ce532ce584b138d648d6b0df95 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 7 Feb 2021 11:05:50 -0400 Subject: don't duplic8 contrib&artist trax on artist pages! if an artist is both an artist and contributor for a track, that track would show up twice on the artist page, and with the exact same line, due to the way the artist track list is constructed. this started happening because we combine the "as contributor" and "as artist" arrays for a given artist, which can have overlap! so now we throw a unique() utility function on top and it works like its supposed to. --- upd8-util.js | 2 ++ upd8.js | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/upd8-util.js b/upd8-util.js index a266efb..b18c052 100644 --- a/upd8-util.js +++ b/upd8-util.js @@ -304,3 +304,5 @@ module.exports.curry = f => x => (...args) => f(x, ...args); module.exports.mapInPlace = (array, fn) => array.splice(0, array.length, ...array.map(fn)); module.exports.filterEmptyLines = string => string.split('\n').filter(line => line.trim()).join('\n'); + +module.exports.unique = arr => Array.from(new Set(arr)); diff --git a/upd8.js b/upd8.js index 11c8ad0..130f606 100755 --- a/upd8.js +++ b/upd8.js @@ -114,7 +114,8 @@ const { queue, s, splitArray, - th + th, + unique } = require('./upd8-util'); const C = require('./common/common'); @@ -2311,18 +2312,18 @@ async function writeArtistPage(artist) { note = '' } = artist; - const artThingsAll = C.sortByDate(Array.from(new Set([...artist.tracks.asCoverArtist, ...artist.albums.asCoverArtist, ...artist.albums.asWallpaperArtist]))); + const artThingsAll = C.sortByDate(unique([...artist.tracks.asCoverArtist, ...artist.albums.asCoverArtist, ...artist.albums.asWallpaperArtist])); const artThingsGallery = C.sortByDate([...artist.albums.asCoverArtist, ...artist.tracks.asCoverArtist]); - const commentaryThings = C.sortByDate([...artist.tracks.asCommentator, ...artist.albums.asCommentator]); + const commentaryThings = C.sortByDate([...artist.albums.asCommentator, ...artist.tracks.asCommentator]); let flashes; if (wikiInfo.features.flashesAndGames) { flashes = artist.flashes.asContributor; } - const unreleasedTracks = [...artist.tracks.asArtist, ...artist.tracks.asContributor] + const unreleasedTracks = unique([...artist.tracks.asArtist, ...artist.tracks.asContributor]) .filter(track => track.album.directory === C.UNRELEASED_TRACKS_DIRECTORY); - const releasedTracks = [...artist.tracks.asArtist, ...artist.tracks.asContributor] + const releasedTracks = unique([...artist.tracks.asArtist, ...artist.tracks.asContributor]) .filter(track => track.album.directory !== C.UNRELEASED_TRACKS_DIRECTORY); const generateTrackList = tracks => albumChunkedList(tracks, (track, i) => { -- cgit 1.3.0-6-gf8a5