Compare commits

...

2 commits

View file

@ -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 ${index}/${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);