aboutsummaryrefslogtreecommitdiff
path: root/modules/findpony.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-02-13 16:31:02 +0100
committerMinteck <contact@minteck.org>2022-02-13 16:31:02 +0100
commit06ea49feb4000e7e76e5960c310a73c0432ea183 (patch)
tree576692e010ae25252a4805136c592d833e8ccc9e /modules/findpony.js
parent327119b4d1c2248b8a075cad3cd05ab92560e75d (diff)
downloadponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.tar.gz
ponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.tar.bz2
ponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.zip
Fix: implements #11
Diffstat (limited to 'modules/findpony.js')
-rw-r--r--modules/findpony.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/findpony.js b/modules/findpony.js
new file mode 100644
index 0000000..9159cc6
--- /dev/null
+++ b/modules/findpony.js
@@ -0,0 +1,36 @@
+const Fuse = require('fuse.js');
+const assocs = require('../data/search.json').associations;
+const list = Object.keys(require('../data/data.json'));
+
+const db = [];
+for (let item of list) {
+ let data = require('../data/data.json')[item];
+ data.name = item;
+ db.push(data);
+}
+
+module.exports = (query) => {
+ const fuse = new Fuse(db, {
+ keys: [ 'name', 'residence', 'occupation', 'kind', 'extract', 'names' ]
+ })
+
+ let results = [];
+ for (let item of fuse.search(query)) {
+ results.push({
+ name: item.item.name,
+ value: item.item.name
+ });
+ }
+
+ let first = []
+
+ findex = 0;
+ for (let result of results) {
+ if (!first.includes(result) && findex < 15) {
+ first[findex] = result
+ findex++
+ }
+ }
+
+ return first;
+} \ No newline at end of file