diff options
| -rw-r--r-- | src/common-util/wiki-data.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/common-util/wiki-data.js b/src/common-util/wiki-data.js index 14ae8e96..7130b589 100644 --- a/src/common-util/wiki-data.js +++ b/src/common-util/wiki-data.js @@ -211,15 +211,23 @@ export function getAllTracks(albumData) { export function getArtistNumContributions(artist) { return accumulateSum( [ + // Track artist and contributor contributions, to the same track, + // only count for one. unique( - ([ - artist.trackArtistContributions, - artist.trackContributorContributions, - artist.trackCoverArtistContributions, - ]).flat() - .map(({thing}) => thing)), - - artist.albumCoverArtistContributions, + artist.musicContributions + .map(({thing: track}) => track)), + + // Music video artist and contributor contributions, to the same + // music video, only count for one. + unique( + artist.musicVideoContributions + .map(({thing: musicVideo}) => musicVideo)), + + // Contributions to multiple artworks belonging to the same thing count + // as just as many individual contributions. This includes multiple + // artworks for one track, cover and banner for one album, etc. + artist.artworkContributions, + artist.flashContributorContributions, ], ({length}) => length); |