diff --git a/src/modules/misc/urldecode.js b/src/modules/misc/urldecode.js new file mode 100644 index 0000000..039fd29 --- /dev/null +++ b/src/modules/misc/urldecode.js @@ -0,0 +1,29 @@ +const Command = require("#lib/command.js"); + +const urldecode = new Command("urldecode"); +urldecode.category = "misc"; +urldecode.helpText = "Get url information"; +urldecode.usage = ""; +urldecode.callback = async function (msg, _, [urlString]) { + const url = new URL(urlString); + + const info = [ + ["scheme", url.protocol], + ["username", url.username], + ["password", url.password], + ["host", url.host], + ["path", url.pathname], + ["hash", url.hash], + ]; + + return `\`\`\`py +${info.filter(kv => kv[1].length > 0).map(([k, v]) => `${k} = ${v}`).join("\n")} + +${JSON.stringify( + url.searchParams, + (_, v) => v instanceof URLSearchParams ? Object.fromEntries(v.entries()) : v, + "\t" +)} +\`\`\``; +}; +hf.registerCommand(urldecode);