« get me outta code hell

content: listGroupsBy{Albums,Tracks,Duration} - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/listing-spec.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-07-07 12:53:22 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-07-07 12:53:22 -0300
commita04652960a6d62ed74e1f9bd1a6157909d329bdf (patch)
treef2b57a5ff490d7ad4b7a876d6b4fb97f696939af /src/listing-spec.js
parent82440b6c53b8c627f801d57b26bfefb7dbcb7eee (diff)
content: listGroupsBy{Albums,Tracks,Duration}
Diffstat (limited to 'src/listing-spec.js')
-rw-r--r--src/listing-spec.js50
1 files changed, 3 insertions, 47 deletions
diff --git a/src/listing-spec.js b/src/listing-spec.js
index 06b2088..5e03cc1 100644
--- a/src/listing-spec.js
+++ b/src/listing-spec.js
@@ -103,66 +103,22 @@ listingSpec.push({
 listingSpec.push({
   directory: 'groups/by-albums',
   stringsKey: 'listGroups.byAlbums',
+  contentFunction: 'listGroupsByAlbums',
   featureFlag: 'enableGroupUI',
-
-  data: ({wikiData: {groupData}}) =>
-    groupData
-      .map(group => ({
-        group,
-        albums: group.albums.length
-      }))
-      .sort((a, b) => b.albums - a.albums),
-
-  row: ({group, albums}, {language, link}) =>
-    language.$('listingPage.listGroups.byAlbums.item', {
-      group: link.groupInfo(group),
-      albums: language.countAlbums(albums, {unit: true}),
-    }),
 });
 
 listingSpec.push({
   directory: 'groups/by-tracks',
   stringsKey: 'listGroups.byTracks',
+  contentFunction: 'listGroupsByTracks',
   featureFlag: 'enableGroupUI',
-
-  data: ({wikiData: {groupData}}) =>
-    groupData
-      .map((group) => ({
-        group,
-        tracks: accumulateSum(
-          group.albums,
-          ({tracks}) => tracks.length),
-      }))
-      .sort((a, b) => b.tracks - a.tracks),
-
-  row: ({group, tracks}, {language, link}) =>
-    language.$('listingPage.listGroups.byTracks.item', {
-      group: link.groupInfo(group),
-      tracks: language.countTracks(tracks, {unit: true}),
-    }),
 });
 
 listingSpec.push({
   directory: 'groups/by-duration',
   stringsKey: 'listGroups.byDuration',
+  contentFunction: 'listGroupsByDuration',
   featureFlag: 'enableGroupUI',
-
-  data: ({wikiData: {groupData}}) =>
-    groupData
-      .map(group => ({
-        group,
-        duration: getTotalDuration(
-          group.albums.flatMap(album => album.tracks),
-          {originalReleasesOnly: true}),
-      }))
-      .filter(({duration}) => duration > 0)
-      .sort((a, b) => b.duration - a.duration),
-
-  row: ({group, duration}, {language, link}) =>
-    language.$('listingPage.listGroups.byDuration.item', {
-      group: link.groupInfo(group),
-      duration: language.formatDuration(duration),
-    }),
 });
 
 listingSpec.push({