From c251b89310f48592ea2cc5ccf98ae4ae9c4c6184 Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Wed, 13 Dec 2017 18:21:20 +0000 Subject: [PATCH] iFunny command --- assets/images/ifunny.png | Bin 0 -> 6641 bytes commands/image-edit/ifunny.js | 42 ++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 assets/images/ifunny.png create mode 100644 commands/image-edit/ifunny.js diff --git a/assets/images/ifunny.png b/assets/images/ifunny.png new file mode 100644 index 0000000000000000000000000000000000000000..28db310b24a0e83287badfd897460a5dfab8e011 GIT binary patch literal 6641 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 z msg.author.displayAvatarURL({ format: 'png', size: 512 }) + } + ] + }); + } + + async run(msg, { image }) { + try { + const { body } = await snekfetch.get(image); + const data = await loadImage(body); + const canvas = createCanvas(data.width, data.height); + const ctx = canvas.getContext('2d'); + ctx.fillStyle = '#181619'; + ctx.fillRect(0, canvas.height - data.height, canvas.width, data.height); + ctx.drawImage(data, canvas.width - data.width, canvas.height - data.height); + return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'ifunny.png' }] }); + } catch (err) { + return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } + } +}; diff --git a/package.json b/package.json index ef922e04..10ee9a35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "57.1.0", + "version": "57.2.0", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {