chomens-bot-js/commands/draw.js

42 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-11-27 02:35:28 -05:00
const { resize } = require('../util/image')
const axios = require('axios')
const sharp = require('sharp')
2022-10-15 08:53:48 -04:00
module.exports = {
name: 'draw',
description: 'Draws an image',
alias: [],
trusted: 0,
usage: '<image url (JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF)>',
execute: async function (bot, username, sender, prefix, args, config, hash, ownerhash, selector) {
let image
try {
2022-11-27 02:35:28 -05:00
const url = args.join(' ')
2022-10-15 08:53:48 -04:00
image = await axios.get('https://http-proxy.nongsonchome.repl.co', {
params: {
2022-11-27 02:35:28 -05:00
uri: url
},
2022-11-27 02:35:28 -05:00
responseType: 'arraybuffer'
})
2022-10-15 08:53:48 -04:00
2022-11-27 02:35:28 -05:00
const loaded = sharp(image.data)
2022-10-15 08:53:48 -04:00
const metadata = await loaded
2022-11-27 02:35:28 -05:00
.metadata()
2022-10-15 08:53:48 -04:00
2022-11-27 02:35:28 -05:00
const { width, height } = resize(metadata.width, metadata.height)
2022-10-15 08:53:48 -04:00
2022-11-27 02:35:28 -05:00
const { data, info } = await loaded
.resize({ fit: 'fill', kernel: 'nearest', width, height })
.raw()
.toBuffer({ resolveWithObject: true })
2022-10-15 08:53:48 -04:00
2022-11-27 02:35:28 -05:00
bot.draw(data, info)
} catch (_err) {
2022-12-26 01:58:08 -05:00
const e = _err.toString() === 'Error: Input buffer contains unsupported image format' ? image.data.toString() : _err
bot.tellraw(selector, { text: e, color: 'red' })
}
2022-11-27 02:35:28 -05:00
}
}