diff options
author | Minteck <contact@minteck.org> | 2022-02-13 16:16:18 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-13 16:16:18 +0100 |
commit | 327119b4d1c2248b8a075cad3cd05ab92560e75d (patch) | |
tree | ce143399e74c120f7311e75490efd0defd9b58d8 /update/ponies/dict.js | |
parent | ede8d0750f3f16e3ba5c3c3f716c98d267512b09 (diff) | |
download | ponyfind-327119b4d1c2248b8a075cad3cd05ab92560e75d.tar.gz ponyfind-327119b4d1c2248b8a075cad3cd05ab92560e75d.tar.bz2 ponyfind-327119b4d1c2248b8a075cad3cd05ab92560e75d.zip |
Feature: implements #8, voids #9
Diffstat (limited to 'update/ponies/dict.js')
-rw-r--r-- | update/ponies/dict.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/update/ponies/dict.js b/update/ponies/dict.js new file mode 100644 index 0000000..88ec568 --- /dev/null +++ b/update/ponies/dict.js @@ -0,0 +1,41 @@ +const fs = require('fs'); + +console.log("Optimizing search engine..."); + +let search = { + entries: null, + associations: [] +} + +global.knownAssociations = []; + +for (let page of JSON.parse(fs.readFileSync("./data/pages.json").toString())) { + if (!knownAssociations.includes(page.name.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim())) { + knownAssociations.push(page.name.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim()); + search.associations.push({ + title: page.name.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim(), + endpoint: page.name + }); + } + + if (typeof JSON.parse(fs.readFileSync("./data/data.json").toString())[page.name] !== "undefined") { + for (let nick of JSON.parse(fs.readFileSync("./data/data.json").toString())[page.name].names) { + if (!knownAssociations.includes(nick.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim())) { + knownAssociations.push(nick.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim()); + search.associations.push({ + title: nick.toLowerCase().replace(/[^a-z]/gm, " ").replace(/\s\s+/g, " ").trim(), + endpoint: page.name + }); + } + } + } +} + +search.entries = []; +for (let association of search.associations) { + search.entries.push(association.title); +} +search.entries = [...new Set(search.entries)]; +fs.writeFileSync("./data/search.json", JSON.stringify(search, null, 4)); + +console.log(JSON.parse(fs.readFileSync("./data/pages.json").toString()).length + " known characters");
\ No newline at end of file |