« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/common-util/wiki-data.js24
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);