« get me outta code hell

search: add groups, flashes - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGio <sethg@ipi.org>2024-03-26 21:18:31 -0500
committer(quasar) nebula <qznebula@protonmail.com>2024-05-31 12:11:45 -0300
commit7f3a6ae47b3e9f7204e3e314d746f1b16661cbf4 (patch)
tree4d63e2cc81c8ab24f7d7055c874a9e6ff29b753c /src
parent1a5cb05b2743907c3924a4b0ed90067c284036ce (diff)
search: add groups, flashes
Diffstat (limited to 'src')
-rw-r--r--src/search.js25
-rw-r--r--src/util/searchSchema.js10
2 files changed, 35 insertions, 0 deletions
diff --git a/src/search.js b/src/search.js
index b83bb0e0..2f7718fd 100644
--- a/src/search.js
+++ b/src/search.js
@@ -86,6 +86,31 @@ async function populateSearchIndexes(indexes, wikiData) {
     })
   );
 
+  // Groups
+  readCollectionIntoIndex(
+    wikiData.groupData,
+    indexes.groups,
+    group => ({
+      names: group.name,
+      description: group.description,
+      // category: group.category
+    })
+  );
+
+  // Flashes
+  readCollectionIntoIndex(
+    wikiData.flashData,
+    indexes.flashes,
+    flash => ({
+      name: flash.name,
+      tracks: flash.featuredTracks.map(track => track.name),
+      contributors: [
+        flash.contributorContribs.map(contrib => contrib.artist.name),
+        ...flash.contributorContribs.map(contrib => contrib.artist.aliasNames)
+      ].flat()
+    })
+  );
+}
 
 async function exportIndexesToJson(indexes) {
   const searchData = {};
diff --git a/src/util/searchSchema.js b/src/util/searchSchema.js
index a4604dd4..ce0e7a84 100644
--- a/src/util/searchSchema.js
+++ b/src/util/searchSchema.js
@@ -16,6 +16,16 @@ export function makeSearchIndexes(FlexSearch) {
       id: "reference",
       index: ["names"],
     }),
+
+    groups: new FlexSearch.Document({
+      id: "reference",
+      index: ["name", "description", "category"],
+    }),
+
+    flashes: new FlexSearch.Document({
+      id: "reference",
+      index: ["name", "tracks", "contributors"],
+    }),
   };
 
   return indexes;