« get me outta code hell

content: listArtistsBy{CommentaryEntries,Name} + syntax changes - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/listAlbumsByDuration.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-07-03 23:12:03 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-07-03 23:12:03 -0300
commit5408d6660b22b9ddee8c4a297c89fca92ae2d505 (patch)
treefe0bbb257fb1e478806a500d5ef8166085f8bbf7 /src/content/dependencies/listAlbumsByDuration.js
parent4e3cb1d34c8bd68032b736ee3f6cfe0aeb495ee4 (diff)
content: listArtistsBy{CommentaryEntries,Name} + syntax changes
Diffstat (limited to 'src/content/dependencies/listAlbumsByDuration.js')
-rw-r--r--src/content/dependencies/listAlbumsByDuration.js20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/content/dependencies/listAlbumsByDuration.js b/src/content/dependencies/listAlbumsByDuration.js
index e922ebc..650a5d1 100644
--- a/src/content/dependencies/listAlbumsByDuration.js
+++ b/src/content/dependencies/listAlbumsByDuration.js
@@ -1,5 +1,5 @@
 import {stitchArrays} from '../../util/sugar.js';
-import {getTotalDuration} from '../../util/wiki-data.js';
+import {filterByCount, getTotalDuration, sortByCount} from '../../util/wiki-data.js';
 
 export default {
   contentDependencies: ['generateListingPage', 'linkAlbum'],
@@ -10,17 +10,13 @@ export default {
   },
 
   query({albumData}, spec) {
-    const albumToDuration =
-      new Map(albumData.map(album => [album, getTotalDuration(album.tracks)]));
+    const albums = albumData.slice();
+    const durations = albums.map(album => getTotalDuration(album.tracks));
 
-    return {
-      spec,
+    filterByCount(albums, durations);
+    sortByCount(albums, durations, {greatestFirst: true});
 
-      albums:
-        albumData
-          .filter(album => albumToDuration.get(album) > 0)
-          .sort((a, b) => albumToDuration.get(b) - albumToDuration.get(a)),
-    };
+    return {spec, albums, durations};
   },
 
   relations(relation, query) {
@@ -35,9 +31,7 @@ export default {
 
   data(query) {
     return {
-      durations:
-        query.albums
-          .map(album => getTotalDuration(album.tracks)),
+      durations: query.durations,
     };
   },