misc: readd search, using librex
This commit is contained in:
parent
90b9a869e4
commit
97cb96d93c
1 changed files with 40 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
const Command = require("../lib/command.js");
|
const Command = require("../lib/command.js");
|
||||||
const CATEGORY = "misc";
|
const CATEGORY = "misc";
|
||||||
|
|
||||||
|
const {librex} = require("../../config.json");
|
||||||
const {
|
const {
|
||||||
hastebin,
|
hastebin,
|
||||||
safeString,
|
safeString,
|
||||||
|
@ -179,7 +180,9 @@ gimg.callback = async function (msg, line) {
|
||||||
url: image.url,
|
url: image.url,
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
text: `Image ${Number(index) + 1}/${images.length}. Rerun to get a different image.`,
|
text: `Image ${Number(index) + 1}/${
|
||||||
|
images.length
|
||||||
|
}. Rerun to get a different image.`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -542,3 +545,39 @@ generate.callback = async function (msg, line) {
|
||||||
return out;
|
return out;
|
||||||
};
|
};
|
||||||
hf.registerCommand(generate);
|
hf.registerCommand(generate);
|
||||||
|
|
||||||
|
const search = new Command("search");
|
||||||
|
search.category = CATEGORY;
|
||||||
|
search.helpText = "Search, powered by LibreX";
|
||||||
|
search.addAlias("g");
|
||||||
|
search.addAlias("google");
|
||||||
|
search.addAlias("ddg");
|
||||||
|
search.callback = async function (msg, line) {
|
||||||
|
if (!librex) return "LibreX instance not defined.";
|
||||||
|
|
||||||
|
const query = encodeURIComponent(line);
|
||||||
|
|
||||||
|
if (line.startsWith("!")) {
|
||||||
|
const url = `https://api.duckduckgo.com/?q=${query}&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().splice(0, 5);
|
||||||
|
|
||||||
|
let out = `__Results for \`${safeString(line)}\`__\n`;
|
||||||
|
for (const result of results) {
|
||||||
|
if (result.special_response) {
|
||||||
|
out += "> " + result.special_response.response.split("\n").join("\n> ");
|
||||||
|
out += `\n<${result.special_response.source}>`;
|
||||||
|
} else {
|
||||||
|
out += `**${result.title}** - <${result.url}>`;
|
||||||
|
out += `\n> ${result.description}`;
|
||||||
|
}
|
||||||
|
out += "\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return out.trim();
|
||||||
|
};
|
||||||
|
hf.registerCommand(search);
|
||||||
|
|
Loading…
Reference in a new issue