diff options
author | Minteck <contact@minteck.org> | 2022-02-13 16:31:02 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-13 16:31:02 +0100 |
commit | 06ea49feb4000e7e76e5960c310a73c0432ea183 (patch) | |
tree | 576692e010ae25252a4805136c592d833e8ccc9e /modules/findpony.js | |
parent | 327119b4d1c2248b8a075cad3cd05ab92560e75d (diff) | |
download | ponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.tar.gz ponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.tar.bz2 ponyfind-06ea49feb4000e7e76e5960c310a73c0432ea183.zip |
Fix: implements #11
Diffstat (limited to 'modules/findpony.js')
-rw-r--r-- | modules/findpony.js | 36 |
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 |