« get me outta code hell

content: getContentEntryTotals - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateAlbumCommentaryPage.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-01-01 15:13:51 -0400
committer(quasar) nebula <qznebula@protonmail.com>2026-01-01 15:16:33 -0400
commit07059614fb0e5b64950b21abdd46b99deb481dfd (patch)
treed46473073ebfccff8fd10eb98c57309a7e776688 /src/content/dependencies/generateAlbumCommentaryPage.js
parent22c69347998f1ca076f9131567903cd983cb5960 (diff)
content: getContentEntryTotals
Diffstat (limited to 'src/content/dependencies/generateAlbumCommentaryPage.js')
-rw-r--r--src/content/dependencies/generateAlbumCommentaryPage.js52
1 files changed, 15 insertions, 37 deletions
diff --git a/src/content/dependencies/generateAlbumCommentaryPage.js b/src/content/dependencies/generateAlbumCommentaryPage.js
index febaba19..ffa70dcf 100644
--- a/src/content/dependencies/generateAlbumCommentaryPage.js
+++ b/src/content/dependencies/generateAlbumCommentaryPage.js
@@ -1,6 +1,4 @@
-import multilingualWordCount from 'word-count';
-
-import {accumulateSum, empty, stitchArrays} from '#sugar';
+import {empty, stitchArrays} from '#sugar';
 
 export default {
   query(album) {
@@ -39,10 +37,11 @@ export default {
     relations.albumNavAccent =
       relation('generateAlbumNavAccent', album, null);
 
-    relations.bodiesForWordCount =
-      [album.commentary, ...album.tracks.map(t => t.commentary)]
-        .flat()
-        .map(entry => relation('transformContent', entry.body));
+    relations.totals =
+      relation('getContentEntryTotals',
+        ([album.commentary,
+          ...album.tracks.map(t => t.commentary)])
+          .flat());
 
     if (!empty(album.commentary)) {
       relations.albumCommentaryHeading =
@@ -100,19 +99,6 @@ export default {
     data.color = album.color;
     data.date = album.date;
 
-    data.entryCount =
-      query.thingsWithCommentary
-        .flatMap(({commentary}) => commentary)
-        .length;
-
-    data.wordCount =
-      query.thingsWithCommentary
-        .flatMap(({commentary}) => commentary)
-        .map(({body}) => body)
-        .join(' ')
-        .split(' ')
-        .length;
-
     data.trackCommentaryTrackDates =
       query.tracksWithCommentary
         .map(track => track.dateFirstReleased);
@@ -151,7 +137,7 @@ export default {
 
             [
               data.date &&
-              data.entryCount >= 1 &&
+              relations.totals.entryCount >= 1 &&
                 language.$('releaseInfo.albumReleased', {
                   date:
                     html.tag('b',
@@ -161,27 +147,19 @@ export default {
               language.encapsulate(pageCapsule, 'infoLine', workingCapsule => {
                 const workingOptions = {};
 
-                if (data.entryCount >= 1) {
-                  const wordCount =
-                    accumulateSum(
-                      relations.bodiesForWordCount.flatMap(body =>
-                        multilingualWordCount(
-                          html.resolve(
-                            body.slot('mode', 'multiline'),
-                            {normalize: 'plain'}))));
-
-                  const {entryCount} = data;
-
+                if (relations.totals.entryCount >= 1) {
                   workingOptions.words =
                     html.tag('b',
-                      language.formatWordCount(wordCount, {unit: true}));
+                      language.formatWordCount(
+                        relations.totals.wordCount,
+                        {unit: true}));
 
                   workingOptions.entries =
                     html.tag('b',
-                      language.countCommentaryEntries(entryCount, {unit: true}));
-                }
-
-                if (data.entryCount === 0) {
+                      language.countCommentaryEntries(
+                        relations.totals.entryCount,
+                        {unit: true}));
+                } else {
                   workingCapsule += '.withoutCommentary';
                 }