diff --git a/commands/message/utils/screenshot.js b/commands/message/utils/screenshot.js index d9d073a..5e6f9e5 100644 --- a/commands/message/utils/screenshot.js +++ b/commands/message/utils/screenshot.js @@ -5,6 +5,9 @@ const { createEmbed } = require("#utils/embed"); const { acknowledge } = require("#utils/interactions"); const { editOrReply } = require("#utils/message"); +// TODO: make this a constant, or add a URL util +const urlr = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/g + module.exports = { label: "url", name: "screenshot", @@ -14,14 +17,25 @@ module.exports = { description_short: 'Screenshot websites.', examples: ['ss google.com'], category: 'utils', - usage: 'screenshot ', + usage: 'screenshot ', slashCommand: "screenshot" }, permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments], run: async (context, args) => { await acknowledge(context); - if (!args.url) return editOrReply(context, createEmbed("warning", context, "No url supplied.")) + if(context.message.messageReference) { + let msg = await context.message.channel.fetchMessage(context.message.messageReference.messageId); + if(msg.content && msg.content.length && args.url.length == 0) args.url = msg.content + } + + if (!args.url) return editOrReply(context, createEmbed("warning", context, "No link provided.")) + + + let urls = args.url.match(urlr) + if(!urls) return editOrReply(context, createEmbed("warning", context, "No link found.")) + + args.url = urls[0]; await editOrReply(context, createEmbed("loading", context, `Creating website screenshot...`))