|
|
@ -7,10 +7,13 @@ const Char = require('../../models/char'); |
|
|
|
const {Pagination} = require("../../util/pagination"); |
|
|
|
const {Pagination} = require("../../util/pagination"); |
|
|
|
|
|
|
|
|
|
|
|
module.exports = async (message, client, search, threshold=-10000, type='top') => { |
|
|
|
module.exports = async (message, client, search, threshold=-10000, type='top') => { |
|
|
|
|
|
|
|
let da = []; |
|
|
|
const me = async (char) => { |
|
|
|
const me = async (char) => { |
|
|
|
|
|
|
|
if (da.includes(client.misc.cache.chars.get(char))) {return 0;} |
|
|
|
let cch = char.anime ? char : await Char.findOne({id: client.misc.cache.chars.get(char)}); |
|
|
|
let cch = char.anime ? char : await Char.findOne({id: client.misc.cache.chars.get(char)}); |
|
|
|
let ani = await Ani.findOne({id: cch.anime}); |
|
|
|
let ani = await Ani.findOne({id: cch.anime}); |
|
|
|
let forceAni = false; if (!ani) {forceAni = true;} |
|
|
|
let forceAni = false; if (!ani) {forceAni = true;} |
|
|
|
|
|
|
|
da.push(cch.id); |
|
|
|
return {embed: new Discord.MessageEmbed() |
|
|
|
return {embed: new Discord.MessageEmbed() |
|
|
|
.setTitle(cch.name) |
|
|
|
.setTitle(cch.name) |
|
|
|
.setAuthor('Character Search', message.author.avatarURL()) |
|
|
|
.setAuthor('Character Search', message.author.avatarURL()) |
|
|
@ -27,11 +30,15 @@ module.exports = async (message, client, search, threshold=-10000, type='top') = |
|
|
|
if (attF) {return await me(attF);} |
|
|
|
if (attF) {return await me(attF);} |
|
|
|
|
|
|
|
|
|
|
|
const res = fz.go(search, Array.from(client.misc.cache.chars.keys()), {threshold: threshold, limit: 10}).sort((a,b)=>a.score-b.score).map(k => k.target); |
|
|
|
const res = fz.go(search, Array.from(client.misc.cache.chars.keys()), {threshold: threshold, limit: 10}).sort((a,b)=>a.score-b.score).map(k => k.target); |
|
|
|
|
|
|
|
|
|
|
|
if (res.length === 0) {return 0;} |
|
|
|
if (res.length === 0) {return 0;} |
|
|
|
else if (res.length > 1) { |
|
|
|
else if (res.length > 1) { |
|
|
|
let tp = []; |
|
|
|
let tp = []; |
|
|
|
await res.forEach(ca => tp.push(me(ca))); |
|
|
|
for (let i = 0; i < res.length; i++) { |
|
|
|
|
|
|
|
const tres = await me(res[i]); |
|
|
|
|
|
|
|
if (tres !== 0) {tp.push(tres);} |
|
|
|
|
|
|
|
} |
|
|
|
tp = await Promise.all(tp); |
|
|
|
tp = await Promise.all(tp); |
|
|
|
return new Pagination(message.channel, tp.map(k => k.embed), message, client, true); |
|
|
|
return tp.length > 1 ? new Pagination(message.channel, tp.map(k => k.embed), message, client, true) : tp[0]; |
|
|
|
} else {return await me(res[0]);} |
|
|
|
} else {return await me(res[0]);} |
|
|
|
} |
|
|
|
} |