diff --git a/README.md b/README.md index eac9de4e..51c94af9 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ in the appropriate channel's topic to use it. ## Commands -Total: 497 +Total: 498 ### Utility: @@ -764,6 +764,7 @@ Total: 497 * **portal-send:** Send a message to a portal channel. * **prune:** Deletes up to 99 messages from the current channel. * **rename-all:** Renames every member of the server. (Owner-Only) +* **screenshot:** Takes a screenshot of any webpage. * **smilebasic:** Responds with a ZIP file for a SmileBASIC project. * **strawpoll:** Generates a Strawpoll with the options you provide. @@ -876,6 +877,8 @@ here. * axis-cult (Prayer Data) - [AZLyrics](https://www.azlyrics.com/) * lyrics (Lyrics Data) +- [AzuraApple](https://github.com/AzuraApple) + * screenshot (Concept) - [Bethesda](https://bethesda.net/en/dashboard) * dislike ([Image, Original "Fallout" Game](https://fallout.bethesda.net/en/)) * like ([Image, Original "Fallout" Game](https://fallout.bethesda.net/en/)) @@ -1498,6 +1501,8 @@ here. * ai-vase (API) - [This Waifu Does Not Exist](https://www.thiswaifudoesnotexist.net/) * ai-waifu (API) +- [Thum.io](https://www.thum.io/) + * screenshot (API) - [Tim's Printables](https://www.timvandevall.com/) * wanted ([Image](https://www.pinterest.com/pin/365002744774849370/)) - [TrueAchievements](https://www.trueachievements.com/) diff --git a/commands/other/screenshot.js b/commands/other/screenshot.js new file mode 100644 index 00000000..ef4fa50e --- /dev/null +++ b/commands/other/screenshot.js @@ -0,0 +1,45 @@ +const Command = require('../../structures/Command'); +const request = require('node-superfetch'); + +module.exports = class ScreenshotCommand extends Command { + constructor(client) { + super(client, { + name: 'screenshot', + aliases: ['capture', 'ss'], + group: 'other', + memberName: 'screenshot', + description: 'Takes a screenshot of any webpage.', + clientPermissions: ['ATTACH_FILES'], + credit: [ + { + name: 'Thum.io', + url: 'https://www.thum.io/', + reason: 'API' + }, + { + name: 'AzuraApple', + url: 'https://github.com/AzuraApple', + reason: 'Concept' + } + ], + args: [ + { + key: 'url', + prompt: 'What webpage do you want to take a screenshot of?', + type: 'string', + parse: url => encodeURIComponent(url) + } + ] + }); + } + + async run(msg, { url }) { + try { + const { body } = await request.get(`https://image.thum.io/get/width/1920/crop/675/noanimate/${url}`); + return msg.say({ files: [{ attachment: body, name: 'screenshot.png' }] }); + } catch (err) { + if (err.status === 404) return msg.say('Could not find any results. Invalid URL?'); + return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } + } +}; diff --git a/package.json b/package.json index ccd48063..746774f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "116.35.0", + "version": "116.36.0", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {