diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-06-02 10:55:38 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-06-12 17:26:54 -0300 |
commit | 5f16db8fc0f2b28f2014c439fb299ab34e7d4b1d (patch) | |
tree | 8b16a92879f67b76b65b49f72f5f6ef61643349d /src/util | |
parent | 69479b5bff9b88eab7e4b3e7fe972d7ee773dc36 (diff) |
content, page, util: general contributions usage cleanup
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/wiki-data.js | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/util/wiki-data.js b/src/util/wiki-data.js index f8ab3ef3..c0cb5418 100644 --- a/src/util/wiki-data.js +++ b/src/util/wiki-data.js @@ -1,6 +1,6 @@ // Utility functions for interacting with wiki data. -import {accumulateSum, empty} from './sugar.js'; +import {accumulateSum, empty, unique} from './sugar.js'; import {sortByDate} from './sort.js'; // This is a duplicate binding of filterMultipleArrays that's included purely @@ -138,11 +138,20 @@ export function getAllTracks(albumData) { } export function getArtistNumContributions(artist) { - return ( - (artist.tracksAsAny?.length ?? 0) + - (artist.albumsAsCoverArtist?.length ?? 0) + - (artist.flashesAsContributor?.length ?? 0) - ); + return accumulateSum( + [ + unique( + ([ + artist.trackArtistContributions, + artist.trackContributorContributions, + artist.trackCoverArtistContributions, + ]).flat() + .map(({thing}) => thing)), + + artist.albumCoverArtistContributions, + artist.flashContributorContributions, + ], + ({length}) => length); } export function getFlashCover(flash, {to}) { |