diff --git a/src/modules/misc.js b/src/modules/misc.js index ef9760f..68f4e75 100644 --- a/src/modules/misc.js +++ b/src/modules/misc.js @@ -552,23 +552,25 @@ search.helpText = "Search, powered by LibreX"; search.addAlias("g"); search.addAlias("google"); search.addAlias("ddg"); -search.callback = async function (msg, line) { +search.callback = async function (msg, line, {results = 2}, [query]) { if (!librex) return "LibreX instance not defined."; - if (!line || line == "") return "Search query required."; + if (!query || query == "") return "Search query required."; - const query = encodeURIComponent(line); + const encodedQuery = encodeURIComponent(line); if (line.startsWith("!")) { - const url = `https://api.duckduckgo.com/?q=${query}&format=json`; + const url = `https://api.duckduckgo.com/?q=${encodedQuery}&format=json`; const res = await fetch(url); if (res.url != url) return res.url; } - const res = await fetch(`${librex}/api.php?q=${query}&p=0&t=0`); - const results = await res.json().then((arr) => arr.splice(0, 5)); + const res = await fetch(`${librex}/api.php?q=${encodedQuery}&p=0&t=0`); + const searchResults = await res + .json() + .then((arr) => arr.splice(0, Number(results))); let out = `__**Results for \`${safeString(line)}\`**__\n`; - for (const result of results) { + for (const result of searchResults) { if (result.special_response) { out += "> " + result.special_response.response.split("\n").join("\n> "); out += `\n<${result.special_response.source}>`;