Compare commits

..

No commits in common. 'main' and '440558b15cf9d33bb90da6378ae18482fb8b82eb' have entirely different histories.

@ -0,0 +1,20 @@
name: Node.js package
on:
push:
branches:
- main
jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

2
.gitignore vendored

@ -1,5 +1,5 @@
node_modules/ node_modules/
package-lock.json package-lock.json
tests/ test/
pas fait/ pas fait/
.vscode/ .vscode/

@ -6,7 +6,7 @@ A powerfull module that allow you to generate awesome images.
# Bugs and glitches # Bugs and glitches
Feel free to report all bugs and glitches by creating an issue in the <a href="https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation/issues">issue section.</a> Feel free to report all bugs and glitches by creating an issue in the <a href="https://github.com/Mr-KayJayDee/discord-image-generation/issues">issue section.</a>
A correct and understandable issue contains : A correct and understandable issue contains :
- Steps to reproduce - Steps to reproduce
@ -18,10 +18,10 @@ Please join [this](https://discord.gg/5ZSGFYtnqw) community server to follow all
# Links: # Links:
### Support Server Community ### Support Server Community
<a href="https://discord.gg/5ZSGFYtnqw"><img src="https://discord.com/api/guilds/833309512412299276/widget.png" alt="Coding support server"/></a> <a href="https://discord.gg/5ZSGFYtnqw"><img src="https://discord.com/api/guilds/833309512412299276/widget.png" alt="Amandine support server"/></a>
### Xinko Discord Bot Support Server ### Amandine Discord Bot Support Server
<a href="https://discord.gg/Uqd2sQP"><img src="https://discord.com/api/guilds/527836578912010251/widget.png" alt="Xinko support server"/></a> <a href="https://discord.gg/Uqd2sQP"><img src="https://discord.com/api/guilds/527836578912010251/widget.png" alt="Amandine support server"/></a>
# Download # Download
@ -41,123 +41,96 @@ const DIG = require("discord-image-generation");
Then you have to request your image and send it as an attachement. Then you have to request your image and send it as an attachement.
## Discord.js v13 ## Discord.js v12
```js ```js
// Import the discord.js library. // Import the discord.js library.
const Discord = require("discord.js"); const Discord = require("discord.js")
// Create a new discord.js client. // Create a new discord.js client.
const bot = new Discord.Client(); const bot = new Discord.Client()
const DIG = require("discord-image-generation"); const DIG = require("discord-image-generation");
> You can also destructure to avoid repeating DIG.
// Listen to the ready event // Listen to the ready event
bot.on("ready", () => { bot.on("ready", () => {
console.log("Bot is online"); console.log("ok");
}); })
// Listen to the message event // Listen to the message event
bot.on("messageCreate", async (message) => { bot.on("message", async (message) => {
// Send the image in a simple message // Send the image in a simple message
if (message.content === "*delete") { if (message.content === "*delete") {
// Get the avatarUrl of the user // Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({ let avatar = message.author.displayAvatarURL({ dynamic: false, format: 'png' });
dynamic: false,
format: 'png'
});
// Make the image // Make the image
let img = await new DIG.Delete().getImage(avatar); let img = await new DIG.Delete().getImage(avatar)
// Add the image as an attachement // Add the image as an attachement
let attach = new Discord.MessageAttachment(img, "delete.png"); let attach = new Discord.MessageAttachment(img, "delete.png");;
message.channel.send({ message.channel.send(attach)
files: [attach]
});
} }
// Send the message with the image attached to an embed // Send the message with the image attached to an embed
if (message.content === "*blur") { if (message.content === "*blur") {
// Get the avatarUrl of the user // Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({ let avatar = message.author.displayAvatarURL({ dynamic: false, format: 'png' });
dynamic: false,
format: 'png'
});
// Make the image // Make the image
let img = await new DIG.Blur().getImage(avatar); let img = await new DIG.Blur().getImage(avatar)
// Add the image as an attachement // Add the image as an attachement
let embed = new Discord.MessageEmbed() let embed = new Discord.MessageEmbed()
.setTitle("Blur") .setTitle("Blur")
.setImage("attachment://delete.png"); .setImage("attachment://delete.png")
let attach = new Discord.MessageAttachment(img, "blur.png"); let attach = new Discord.MessageAttachment(img, "blur.png");;
message.channel.send({ message.channel.send({ embed: embed, files: [attach])
embeds: [embed],
files: [attach]
});
} }
}); })
// Log in to the bot // Log in to the bot
bot.login("super_secret_token"); bot.login("super_secret_token")
``` ```
## Discord.js v14 ## Discord.js v13
```js ```js
// Import the required elements from the discord.js library. // Import the discord.js library.
const { Client, GatewayIntentBits, AttachmentBuilder, EmbedBuilder } = require("discord.js"); const Discord = require("discord.js")
// Create a new discord.js client. // Create a new discord.js client.
const bot = new Client({ const bot = new Discord.Client()
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
const DIG = require("discord-image-generation"); const DIG = require("discord-image-generation");
> You can also destructure to avoid repeating DIG.
// Listen to the ready event // Listen to the ready event
bot.on("ready", () => { bot.on("ready", () => {
console.log("Bot is online"); console.log("ok");
}); })
// Listen to the message event // Listen to the message event
bot.on("messageCreate", async (message) => { bot.on("messageCreate", async (message) => {
// Send the image in a simple message // Send the image in a simple message
if (message.content === "*delete") { if (message.content === "*delete") {
// Get the avatarUrl of the user // Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({ let avatar = message.author.displayAvatarURL({ dynamic: false, format: 'png' });
forceStatic: true,
extension: 'png'
});
// Make the image // Make the image
let img = await new DIG.Delete().getImage(avatar); let img = await new DIG.Delete().getImage(avatar)
// Add the image as an attachement // Add the image as an attachement
let attach = new AttachmentBuilder(img).setName("delete.png"); let attach = new Discord.MessageAttachment(img, "delete.png");;
message.channel.send({ message.channel.send({ files: [attach] })
files: [attach]
});
} }
// Send the message with the image attached to an embed // Send the message with the image attached to an embed
if (message.content === "*blur") { if (message.content === "*blur") {
// Get the avatarUrl of the user // Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({ let avatar = message.author.displayAvatarURL({ dynamic: false, format: 'png' });
forceStatic: true,
extension: 'png'
});
// Make the image // Make the image
let img = await new DIG.Blur().getImage(avatar); let img = await new DIG.Blur().getImage(avatar)
// Add the image as an attachement // Add the image as an attachement
let embed = new EmbedBuilder() let embed = new Discord.MessageEmbed()
.setTitle("Blur") .setTitle("Blur")
.setImage("attachment://blur.png"); .setImage("attachment://delete.png")
let attach = new AttachmentBuilder(img).setName("blur.png"); let attach = new Discord.MessageAttachment(img, "blur.png");;
message.channel.send({ message.channel.send({ embeds: [embed], files: [attach])
embeds: [embed],
files: [attach]
});
} }
}); })
// Log in to the bot // Log in to the bot
bot.login("super_secret_token"); bot.login("super_secret_token")
``` ```
# Available images # Available images
@ -188,7 +161,7 @@ bot.login("super_secret_token");
## Gifs ## Gifs
- ``new DIG.Blink().getImage(delay (in ms), `<Avatar>`, `<Avatar2>`.....);`` - ``new DIG.Blink().getImage(`<Avatar>`, `<Avatar2>`.....);``
> You can add as many images as you want > You can add as many images as you want
@ -225,19 +198,10 @@ bot.login("super_secret_token");
![Bobross](https://imgur.com/lATDohK.png) ![Bobross](https://imgur.com/lATDohK.png)
- ``new DIG.Clown().getImage(`<Avatar>`);``
![Clown](https://imgur.com/qXUAAkb.png)
- ``new DIG.ConfusedStonk().getImage(`<Avatar>`);`` - ``new DIG.ConfusedStonk().getImage(`<Avatar>`);``
![ConfusedStonk](https://imgur.com/b4UB3BE.png) ![ConfusedStonk](https://imgur.com/b4UB3BE.png)
- ``new DIG.Deepfry().getImage(`<Avatar>`);``
![Deepfry](https://imgur.com/q2ADecK.png)
- ``new DIG.Delete().getImage(`<Avatar>`);`` - ``new DIG.Delete().getImage(`<Avatar>`);``
![Delete](https://imgur.com/6V1IYJp.png) ![Delete](https://imgur.com/6V1IYJp.png)
@ -258,10 +222,6 @@ bot.login("super_secret_token");
![Facepalm](https://imgur.com/cdPC3P1.png) ![Facepalm](https://imgur.com/cdPC3P1.png)
- ``new DIG.Hearbreaking().getImage(`<Avatar>`);``
![Hearbreaking](https://imgur.com/P6USTJ3.png)
- ``new DIG.Hitler().getImage(`<Avatar>`);`` - ``new DIG.Hitler().getImage(`<Avatar>`);``
![Hitler](https://imgur.com/wK9puxH.png) ![Hitler](https://imgur.com/wK9puxH.png)
@ -284,10 +244,6 @@ bot.login("super_secret_token");
> Limited to 300char > Limited to 300char
- ``new DIG.Mikkelsen().getImage(`<Avatar>`);``
![Mikkelsen](https://imgur.com/4p71VGS.png)
(Thanks to sιмση εcεяε#5765) (Thanks to sιмση εcεяε#5765)
- ``new DIG.Mms().getImage(`<Avatar>`);`` - ``new DIG.Mms().getImage(`<Avatar>`);``
@ -309,10 +265,6 @@ bot.login("super_secret_token");
![RIP](https://imgur.com/qhyZKfz.png) ![RIP](https://imgur.com/qhyZKfz.png)
- ``new DIG.Snyder().getImage(`<Avatar>`);``
![Snyder](https://imgur.com/0dFnTcP.png)
- ``new DIG.Spank().getImage(`<Avatar>`, `<Avatar2>`);`` - ``new DIG.Spank().getImage(`<Avatar>`, `<Avatar2>`);``
![Spank](https://imgur.com/25gq0es.png) ![Spank](https://imgur.com/25gq0es.png)
@ -352,37 +304,10 @@ bot.login("super_secret_token");
![Color](https://imgur.com/40tMwfe.png) ![Color](https://imgur.com/40tMwfe.png)
- ``new DIG.Denoise().getImage(`<Avatar>`, `<Level>`);``
> Level should be a number
- ``new DIG.Mirror().getImage(`<Avatar>`, `<Level>`);``
![Mirror](https://imgur.com/oaxbVAC.png)
# Changelog # Changelog
## v1.4.24 ## v1.4.8
- Re added typings - Typings added, thanks to https://github.com/Lioness100
## v1.4.23
- Fixed import issue
- Added Denoise()
- Added Mirror()
## v1.4.22
- Fixed some bugs
## v1.4.21
- Added discord.js V14 usage example
- Removed discord.js V12 usage example
## v1.4.20
- Some fixes
- Added Clown() (thanks to Retrojection#1937)
- Added Deepfry() (thanks to Retrojection#1937)
- Added Heartbreaking() (thanks to Retrojection#1937)
- Added Mikkelsen() (thanks to Retrojection#1937)
- Added Snyder() (thanks to Retrojection#1937)
## v1.4.7 ## v1.4.7
- Improved Blink() generation, now supports adding an insane amount of images ^^ - Improved Blink() generation, now supports adding an insane amount of images ^^

@ -1,11 +1,11 @@
{ {
"name": "discord-image-generation", "name": "discord-image-generation",
"version": "1.4.25", "version": "1.4.12",
"description": "discord-image-generation is a powerful module that allow you to generate awesome images.", "description": "discord-image-generation is a powerfull module that allow you to generate awesome images.",
"main": "src/index.js", "main": "src/index.js",
"types": "typings/index.d.ts", "types": "typings/index.d.ts",
"scripts": { "scripts": {
"test": "node tests/test.js" "test": "node src/index.js"
}, },
"author": { "author": {
"name": "Mr¤KayJayDee", "name": "Mr¤KayJayDee",
@ -14,12 +14,12 @@
"license": "MIT", "license": "MIT",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation" "url": "https://github.com/Mr-KayJayDee/discord-image-generation.git"
}, },
"bugs": { "bugs": {
"url": "https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation/issues" "url": "https://github.com/Mr-KayJayDee/discord-image-generation/issues"
}, },
"homepage": "https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation/src/branch/main/README.md", "homepage": "https://github.com/Mr-KayJayDee/discord-image-generation#readme",
"keywords": [ "keywords": [
"discord", "discord",
"images", "images",
@ -33,14 +33,8 @@
"drawing" "drawing"
], ],
"dependencies": { "dependencies": {
"canvas": "^2.10.1", "canvas": "^2.6.1",
"discord.js": "^14.7.1",
"gifencoder": "^2.0.1", "gifencoder": "^2.0.1",
"jimp": "^0.16.0" "jimp": "^0.16.1"
},
"overrides": {
"jimp": {
"jpeg-js": "^0.4.4"
}
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 979 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 KiB

@ -1,12 +1,19 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Blur { module.exports = class Blur {
/**
* Blur
* @param {image} image
* @param {level} level
*/
async getImage(image, level) { async getImage(image, level) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image); image = await jimp.read(image);
image.blur(isNaN(level) ? 5 : parseInt(level)); image.blur(isNaN(level) ? 5 : parseInt(level));
return await image.getBufferAsync(`image/png`); let raw;
image.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,11 +1,12 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Gay { module.exports = class Gay {
/**
* Gay
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
let bg = await Canvas.loadImage(`${__dirname}/../../assets/gay.png`); let bg = await Canvas.loadImage(`${__dirname}/../../assets/gay.png`);
let img = await Canvas.loadImage(image); let img = await Canvas.loadImage(image);
const canvas = Canvas.createCanvas(480, 480); const canvas = Canvas.createCanvas(480, 480);

@ -1,12 +1,18 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Geryscale { module.exports = class Geryscale {
/**
* Greyscale
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image); image = await jimp.read(image);
image.greyscale(); image.greyscale();
return await image.getBufferAsync(`image/png`); let raw;
image.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,12 +1,18 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Invert { module.exports = class Invert {
/**
* Invert
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image); image = await jimp.read(image);
image.invert(); image.invert();
return await image.getBufferAsync(`image/png`); let raw;
image.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,12 +1,18 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Sepia { module.exports = class Sepia {
/**
* Sepia
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image); image = await jimp.read(image);
image.sepia(); image.sepia();
return await image.getBufferAsync(`image/png`); let raw;
image.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,5 +1,3 @@
const https = require(`https`);
module.exports = { module.exports = {
/** /**
* Crate a responsive on the text * Crate a responsive on the text
@ -49,38 +47,5 @@ module.exports = {
} }
return resolve(lines); return resolve(lines);
}); });
},
async validateURL(url) {
if (!url) return null;
if (Buffer.isBuffer(url)) {
return url;
}
try {
// if url is not https
if (!url.startsWith(`https`)) {
return console.error(`The url must be https`);
return null;
}
return new Promise((resolve, reject) => {
https.get(url, (response) => {
if (response.statusCode !== 200) {
return console.error(`Invalid status code ${response.statusCode}`);
return;
}
const type = response.headers['content-type'];
if (!type.startsWith('image/')) {
return console.error(`Invalid content type ${type}`);
return;
}
const chunks = [];
response.on('data', (chunk) => chunks.push(chunk));
response.on('end', () => resolve(Buffer.concat(chunks)));
});
});
} catch (error) {
return console.error(error);
return null;
}
} }
}; };

@ -1,20 +1,15 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const GIFEncoder = require(`gifencoder`); const GIFEncoder = require(`gifencoder`);
const { validateURL } = require(`../functions`);
module.exports = class Blink { module.exports = class Blink {
async getImage(delay, ...images) {
if (!images || images.length < 2) return console.error(`You must provide at least two images.`);
if (isNaN(delay)) return console.error(`You must provide a valid delay.`); async getImage( ...images) {
for (const image of images) { if (!images || images.length < 2) throw new Error(`You must provide at least two images.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
}
const GIF = new GIFEncoder(480, 480); const GIF = new GIFEncoder(480, 480);
GIF.start(); GIF.start();
GIF.setRepeat(0); GIF.setRepeat(0);
GIF.setDelay(delay); GIF.setDelay(1000);
GIF.setTransparent(); GIF.setTransparent();
const canvas = Canvas.createCanvas(480, 480); const canvas = Canvas.createCanvas(480, 480);

@ -1,13 +1,16 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const GIFEncoder = require(`gifencoder`); const GIFEncoder = require(`gifencoder`);
const { validateURL } = require(`../functions`);
module.exports = class Triggered { module.exports = class Triggered {
/**
* Triggered
* @param {image} image
* @param {number} timeout
*/
async getImage(image, timeout = 15) { async getImage(image, timeout = 15) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
if (isNaN(timeout)) return console.error(`The timeout argument must be a number.`);
const base = await Canvas.loadImage(`${__dirname}/../../assets/triggered.png`); const base = await Canvas.loadImage(`${__dirname}/../../assets/triggered.png`);
const img = await Canvas.loadImage(image); const img = await Canvas.loadImage(image);
const GIF = new GIFEncoder(256, 310); const GIF = new GIFEncoder(256, 310);

@ -1,14 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Ad { module.exports = class Ad {
/**
* Ad
* @param {image} image1
*/
async getImage(image1) { async getImage(image1) {
if (!image1) return console.error(`You must provide an image as an argument`); if (!image1) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image1); const canvas = Canvas.createCanvas(550, 474);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); const ctx = canvas.getContext(`2d`);
const image1Buffer = await Jimp.read(image1); image1 = await Canvas.loadImage(image1);
image1Buffer.resize(230, 230); const background = await Canvas.loadImage(`${__dirname}/../../assets/ad.png`);
const background = await Jimp.read(`${__dirname}/../../assets/ad.png`); ctx.drawImage(image1, 150, 75, 230, 230);
background.composite(image1Buffer, 150, 75); ctx.drawImage(background, 0, 0, 550, 474);
return background.getBufferAsync(Jimp.MIME_PNG); return canvas.toBuffer();
} }
}; };

@ -1,14 +1,20 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Affect { module.exports = class Affect {
/**
* Affect
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
let base = await jimp.read(`${__dirname}/../../assets/affect.png`); let base = await jimp.read(`${__dirname}/../../assets/affect.png`);
let img = await jimp.read(image); let img = await jimp.read(image);
img.resize(200, 157); img.resize(200, 157);
base.composite(img, 180, 383); base.composite(img, 180, 383);
return await base.getBufferAsync(`image/png`); let raw;
base.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,13 +1,14 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Batslap { module.exports = class Batslap {
/**
* Batslap
* @param {image} image1
* @param {image} image2
*/
async getImage(image1, image2) { async getImage(image1, image2) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`);
if (!image2) return console.error(`You must provide an image as a second argument.`);
let isValid2 = await validateURL(image1);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`);
let base = await jimp.read(`${__dirname}/../../assets/batslap.png`); let base = await jimp.read(`${__dirname}/../../assets/batslap.png`);
image1 = await jimp.read(image1); image1 = await jimp.read(image1);
image2 = await jimp.read(image2); image2 = await jimp.read(image2);
@ -18,6 +19,10 @@ module.exports = class Batslap {
image2.resize(200, 200); image2.resize(200, 200);
base.composite(image2, 580, 260); base.composite(image2, 580, 260);
base.composite(image1, 350, 70); base.composite(image1, 350, 70);
return await base.getBufferAsync(`image/png`); let raw;
base.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,16 +1,22 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Beautiful { module.exports = class Beautiful {
/**
* Beautiful
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
let base = await jimp.read(`${__dirname}/../../assets/beautiful.png`); let base = await jimp.read(`${__dirname}/../../assets/beautiful.png`);
base.resize(376, 400); base.resize(376, 400);
let img = await jimp.read(image); let img = await jimp.read(image);
img.resize(84, 95); img.resize(84, 95);
base.composite(img, 258, 28); base.composite(img, 258, 28);
base.composite(img, 258, 229); base.composite(img, 258, 229);
return await base.getBufferAsync(`image/png`); let raw;
base.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,13 +1,14 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Bed { module.exports = class Bed {
/**
* Bed
* @param {image} image1
* @param {image} image2
*/
async getImage(image1, image2) { async getImage(image1, image2) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`);
if (!image2) return console.error(`You must provide an image as a second argument.`);
let isValid2 = await validateURL(image2);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`);
let bg = await jimp.read(`${__dirname}/../../assets/bed.png`); let bg = await jimp.read(`${__dirname}/../../assets/bed.png`);
image1 = await jimp.read(image1); image1 = await jimp.read(image1);
image2 = await jimp.read(image2); image2 = await jimp.read(image2);
@ -20,6 +21,10 @@ module.exports = class Bed {
bg.composite(image1, 25, 300); bg.composite(image1, 25, 300);
bg.composite(image3, 53, 450); bg.composite(image3, 53, 450);
bg.composite(image2, 53, 575); bg.composite(image2, 53, 575);
return await bg.getBufferAsync(`image/png`); let raw;
bg.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,16 +1,20 @@
const Jimp = require('jimp'); const { createCanvas, loadImage } = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Bobross { module.exports = class Bobross {
/**
* Bobross
* @param {image} image1
*/
async getImage(image1) { async getImage(image1) {
if (!image1) return console.error(`You must provide an image as an argument`); if (!image1) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image1); const base = await loadImage(`${__dirname}/../../assets/bobross.png`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); const canvas = createCanvas(base.width, base.height);
const base = await Jimp.read(`${__dirname}/../../assets/bobross.png`); const ctx = canvas.getContext(`2d`);
const image1Buffer = await Jimp.read(image1); image1 = await loadImage(image1);
image1Buffer.resize(440, 440); ctx.fillStyle = `white`;
const compositeImage = new Jimp(base.getWidth(), base.getHeight(), 0xFFFFFFFF); ctx.fillRect(0, 0, base.width, base.height);
compositeImage.composite(image1Buffer, 15, 20); ctx.drawImage(image1, 15, 20, 440, 440);
compositeImage.composite(base, 0, 0); ctx.drawImage(base, 0, 0);
return compositeImage.getBufferAsync(Jimp.MIME_PNG); return canvas.toBuffer();
} }
}; };

@ -1,28 +0,0 @@
const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Clown {
async getImage(image) {
function drawImage(ctx, image, x, y, w, h, degrees) {
ctx.save();
ctx.translate(x + w / 2, y + h / 2);
ctx.rotate(degrees * Math.PI / 180.0);
ctx.translate(-x - w / 2, -y - h / 2);
ctx.drawImage(image, x, y, w, h);
ctx.restore();
}
if (!image) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(610, 343);
const ctx = canvas.getContext(`2d`);
image = await Canvas.loadImage(image);
const background = await Canvas.loadImage(`${__dirname}/../../assets/clown.png`);
ctx.fillRect(0, 0, 610, 343);
drawImage(ctx, image, 15, 55, 145, 130, -5);
ctx.drawImage(background, 0, 0, 610, 343);
return canvas.toBuffer();
}
}

@ -1,16 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class ConfusedStonk { module.exports = class ConfusedStonk {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * ConfusedStonk
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
const image1 = await Jimp.read(image); async getImage(image1) {
const background = await Jimp.read(`${__dirname}/../../assets/confusedStonk.png`); if (!image1) throw new Error(`You must provide an image as an argument`);
image1.resize(400, 400); const canvas = Canvas.createCanvas(1994, 1296);
const compositeImage = new Jimp(background.getWidth(), background.getHeight(), 0xFFFFFFFF); const ctx = canvas.getContext(`2d`);
compositeImage.composite(image1, 190, 70); image1 = await Canvas.loadImage(image1);
compositeImage.composite(background, 0, 0); const background = await Canvas.loadImage(`${__dirname}/../../assets/confusedStonk.png`);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG); ctx.drawImage(image1, 190, 70, 400, 400);
ctx.drawImage(background, 0, 0, 1994, 1296);
return canvas.toBuffer();
} }
}; };

@ -1,16 +0,0 @@
const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Deepfry {
async getImage(image) {
if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image);
image.quality(2)
image.contrast(1);
image.pixelate(2);
image.posterize(10);
return await image.getBufferAsync(`image/png`);
}
};

@ -1,14 +1,20 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Delete { module.exports = class Delete {
/**
* Delete
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); let bg = await jimp.read(`${__dirname}/../../assets/delete.png`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const background = await jimp.read(`${__dirname}/../../assets/delete.png`);
image = await jimp.read(image); image = await jimp.read(image);
image.resize(195, 195); image.resize(195, 195);
background.composite(image, 120, 135); bg.composite(image, 120, 135);
return await background.getBufferAsync(`image/png`); let raw;
bg.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,16 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class DiscordBlack { module.exports = class DiscordBlack {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * Bobross
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
const background = await Jimp.read(`${__dirname}/../../assets/discordblack.png`); async getImage(image1) {
const image1 = await Jimp.read(image); if (!image1) throw new Error(`You must provide an image as an argument`);
image1.resize(background.getWidth(), background.getHeight()); const canvas = Canvas.createCanvas(610, 610);
const compositeImage = new Jimp(background.getWidth(), background.getHeight(), 0xFFFFFFFF); const ctx = canvas.getContext(`2d`);
compositeImage.composite(image1, 0, 0); image1 = await Canvas.loadImage(image1);
compositeImage.composite(background, 0, 0); const background = await Canvas.loadImage(`${__dirname}/../../assets/discordblack.png`);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG); ctx.drawImage(image1, 0, 0, 610, 610);
ctx.drawImage(background, 0, 0, 610, 610);
return canvas.toBuffer();
} }
}; };

@ -1,16 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class DiscordBlue { module.exports = class DiscordBlue {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * Bobross
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
const background = await Jimp.read(`${__dirname}/../../assets/discordblue.png`); async getImage(image1) {
const image1 = await Jimp.read(image); if (!image1) throw new Error(`You must provide an image as an argument`);
image1.resize(background.getWidth(), background.getHeight()); const canvas = Canvas.createCanvas(610, 610);
const compositeImage = new Jimp(background.getWidth(), background.getHeight(), 0xFFFFFFFF); const ctx = canvas.getContext(`2d`);
compositeImage.composite(image1, 0, 0); image1 = await Canvas.loadImage(image1);
compositeImage.composite(background, 0, 0); const background = await Canvas.loadImage(`${__dirname}/../../assets/discordblue.png`);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG); ctx.drawImage(image1, 0, 0, 610, 610);
ctx.drawImage(background, 0, 0, 610, 610);
return canvas.toBuffer();
} }
}; };

@ -1,13 +1,14 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class DoubleStonk { module.exports = class DoubleStonk {
/**
* DoubleStonk
* @param {image} image1
* @param {image} image2
*/
async getImage(image1, image2) { async getImage(image1, image2) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`);
if (!image2) return console.error(`You must provide an image as a second argument.`);
let isValid2 = await validateURL(image2);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`);
let base = await jimp.read(`${__dirname}/../../assets/doubleStonk.png`); let base = await jimp.read(`${__dirname}/../../assets/doubleStonk.png`);
image1 = await jimp.read(image1); image1 = await jimp.read(image1);
image2 = await jimp.read(image2); image2 = await jimp.read(image2);
@ -18,6 +19,10 @@ module.exports = class DoubleStonk {
image2.resize(140, 140); image2.resize(140, 140);
base.composite(image2, 60, 20); base.composite(image2, 60, 20);
base.composite(image1, 0, 30); base.composite(image1, 0, 30);
return await base.getBufferAsync(`image/png`); let raw;
base.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,16 +1,20 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Facepalm { module.exports = class Facepalm {
/**
* Facepalm
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as an argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); let canvas = Canvas.createCanvas(632, 357);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); let ctx = canvas.getContext(`2d`);
const layer = await Jimp.read(`${__dirname}/../../assets/facepalm.png`); ctx.fillStyle = `black`;
const avatar = await Jimp.read(image); ctx.fillRect(0, 0, 632, 357);
const compositeImage = new Jimp(layer.getWidth(), layer.getHeight(), 0xFFFFFFFF); let avatar = await Canvas.loadImage(image);
avatar.resize(235, 235); ctx.drawImage(avatar, 199, 112, 235, 235);
compositeImage.composite(avatar, 199, 112); let layer = await Canvas.loadImage(`${__dirname}/../../assets/facepalm.png`);
compositeImage.composite(layer, 0, 0); ctx.drawImage(layer, 0, 0, 632, 357);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG); return canvas.toBuffer();
} }
}; };

@ -1,17 +0,0 @@
const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Heartbreaking {
async getImage(image) {
if (!image) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(610, 797);
const ctx = canvas.getContext(`2d`);
image = await Canvas.loadImage(image);
const background = await Canvas.loadImage(`${__dirname}/../../assets/heartbreaking.png`);
ctx.drawImage(image, 0, 150, 610, 610);
ctx.drawImage(background, 0, 0, 610, 797);
return canvas.toBuffer();
}
};

@ -1,14 +1,20 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Hitler { module.exports = class Hitler {
/**
* Hitler
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
let bg = await jimp.read(`${__dirname}/../../assets/hitler.png`); let bg = await jimp.read(`${__dirname}/../../assets/hitler.png`);
let img = await jimp.read(image); let img = await jimp.read(image);
img.resize(140, 140); img.resize(140, 140);
bg.composite(img, 46, 43); bg.composite(img, 46, 43);
return await bg.getBufferAsync(`image/png`); let raw;
bg.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,17 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Jail { module.exports = class Jail {
/**
* Jail
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); let bg = await Canvas.loadImage(`${__dirname}/../../assets/jail.png`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); let img = await Canvas.loadImage(image);
let bg = await Jimp.read(`${__dirname}/../../assets/jail.png`); const canvas = Canvas.createCanvas(400, 400);
let img = await Jimp.read(image); const ctx = canvas.getContext(`2d`);
const compositeImage = new Jimp(400, 400, 0xFFFFFFFF); ctx.drawImage(img, 0, 0, 400, 400);
img.resize(400, 400); ctx.drawImage(bg, 0, 0, 400, 400);
bg.resize(400, 400); return canvas.toBuffer();
compositeImage.composite(img, 0, 0);
compositeImage.composite(bg, 0, 0);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG);
} }
}; };

@ -1,17 +1,18 @@
const Jimp = require('jimp'); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Karaba { module.exports = class Mms {
/**
* MMS
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as an argument`); if (!image) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image); let bg = await Canvas.loadImage(`${__dirname}/../../assets/karaba.png`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); let img = await Canvas.loadImage(image);
let bg = await Jimp.read(`${__dirname}/../../assets/karaba.png`); const canvas = Canvas.createCanvas(bg.width, bg.height);
let img = await Jimp.read(image); const ctx = canvas.getContext(`2d`);
const compositeImage = new Jimp(bg.getWidth(), bg.getHeight(), 0xFFFFFFFF); ctx.drawImage(img, 130, 44, 130, 130);
img.resize(130, 130); ctx.drawImage(bg, 0, 0, bg.width, bg.height);
bg.resize(bg.getWidth(), bg.getHeight()); return canvas.toBuffer();
compositeImage.composite(img, 130, 44);
compositeImage.composite(bg, 0, 0);
return await compositeImage.getBufferAsync(Jimp.MIME_PNG);
} }
}; };

@ -1,13 +1,14 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Kiss { module.exports = class Kiss {
/**
* Kiss
* @param {image} image1
* @param {image} image2
*/
async getImage(image1, image2) { async getImage(image1, image2) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`);
if (!image2) return console.error(`You must provide an image as a second argument.`);
let isValid2 = await validateURL(image2);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`);
let base = await jimp.read(`${__dirname}/../../assets/kiss.png`); let base = await jimp.read(`${__dirname}/../../assets/kiss.png`);
image1 = await jimp.read(image1); image1 = await jimp.read(image1);
image2 = await jimp.read(image2); image2 = await jimp.read(image2);
@ -18,6 +19,10 @@ module.exports = class Kiss {
image2.resize(200, 200); image2.resize(200, 200);
base.composite(image1, 150, 25); base.composite(image1, 150, 25);
base.composite(image2, 350, 25); base.composite(image2, 350, 25);
return await base.getBufferAsync(`image/png`); let raw;
base.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -5,8 +5,10 @@ const path = require(`path`);
const { wrapText } = require(`../functions`); const { wrapText } = require(`../functions`);
module.exports = class LisaPresentation { module.exports = class LisaPresentation {
async getImage(text) { async getImage(text) {
if (!text || text.length > 300) return console.error(`You must provide a text of 300 characters or less.`); if (!text || text.length > 300) throw new Error(`You must provide a text of 300 characters or less.`);
const base = await loadImage(path.join(`${__dirname}/../../assets/lisa-presentation.png`)); const base = await loadImage(path.join(`${__dirname}/../../assets/lisa-presentation.png`));
const canvas = createCanvas(base.width, base.height); const canvas = createCanvas(base.width, base.height);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
@ -25,6 +27,8 @@ module.exports = class LisaPresentation {
const height = topMost + ((fontSize + 20) * i); const height = topMost + ((fontSize + 20) * i);
ctx.fillText(lines[i], base.width / 2, height); ctx.fillText(lines[i], base.width / 2, height);
} }
return canvas.toBuffer(); return canvas.toBuffer();
} }
}; };

@ -1,17 +0,0 @@
const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Mikkelsen {
async getImage(image) {
if (!image) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(610, 955);
const ctx = canvas.getContext(`2d`);
image = await Canvas.loadImage(image);
const background = await Canvas.loadImage(`${__dirname}/../../assets/mikkelsen.png`);
ctx.drawImage(image, 20, 460, 580, 580);
ctx.drawImage(background, 0, 0, 610, 955);
return canvas.toBuffer();
}
};

@ -1,17 +1,18 @@
const Jimp = require(`jimp`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Mms { module.exports = class Mms {
/**
* MMS
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); let bg = await Canvas.loadImage(`${__dirname}/../../assets/mms.png`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); let img = await Canvas.loadImage(image);
const bg = await Jimp.read(`${__dirname}/../../assets/mms.png`); const canvas = Canvas.createCanvas(400, 400);
const img = await Jimp.read(image); const ctx = canvas.getContext(`2d`);
const canvas = new Jimp(400, 400); ctx.drawImage(img, 60, 10, 270, 270);
bg.resize(400, 400); ctx.drawImage(bg, 0, 0, 400, 400);
img.resize(270, 270); return canvas.toBuffer();
canvas.composite(img, 60, 10);
canvas.composite(bg, 0, 0);
return canvas.getBufferAsync(Jimp.MIME_PNG);
} }
}; };

@ -1,17 +1,18 @@
const Jimp = require(`jimp`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class NotStonk { module.exports = class NotStonk {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * NotStonk
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
const canvas = new Jimp(960, 576); async getImage(image1) {
const img1 = await Jimp.read(image); if (!image1) throw new Error(`You must provide an image as an argument`);
const background = await Jimp.read(`${__dirname}/../../assets/notStonk.png`); const canvas = Canvas.createCanvas(960, 576);
img1.resize(190, 190); const ctx = canvas.getContext(`2d`);
background.resize(960, 576); image1 = await Canvas.loadImage(image1);
canvas.composite(img1, 140, 5); const background = await Canvas.loadImage(`${__dirname}/../../assets/notStonk.png`);
canvas.composite(background, 0, 0); ctx.drawImage(image1, 140, 5, 190, 190);
return canvas.getBufferAsync(Jimp.MIME_PNG); ctx.drawImage(background, 0, 0, 960, 576);
return canvas.toBuffer();
} }
}; };

@ -2,21 +2,24 @@ const Canvas = require(`canvas`);
const { const {
applyText applyText
} = require(`../functions`); } = require(`../functions`);
const { validateURL } = require(`../functions`);
module.exports = class Podium { module.exports = class Podium {
/**
* Podium
* @param {image} image1
* @param {image} image2
* @param {image} image3
* @param {string} name1
* @param {string} name2
* @param {string} name3
*/
async getImage(image1, image2, image3, name1, name2, name3) { async getImage(image1, image2, image3, name1, name2, name3) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`); if (!image3) throw new Error(`You must provide an image as a third argument.`);
if (!image2) return console.error(`You must provide an image as a second argument.`); if (!name1) throw new Error(`You must provide a text as a fourth argument.`);
let isValid2 = await validateURL(image2); if (!name2) throw new Error(`You must provide a text as a fifth argument.`);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`); if (!name3) throw new Error(`You must provide a text as a sixth argument.`);
if (!image3) return console.error(`You must provide an image as a third argument.`);
let isValid3 = await validateURL(image3);
if (!isValid3) return console.error(`You must provide a valid image URL or buffer.`);
if (!name1) return console.error(`You must provide a text as a fourth argument.`);
if (!name2) return console.error(`You must provide a text as a fifth argument.`);
if (!name3) return console.error(`You must provide a text as a sixth argument.`);
const canvas = Canvas.createCanvas(1173, 686); const canvas = Canvas.createCanvas(1173, 686);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
image1 = await Canvas.loadImage(image1); image1 = await Canvas.loadImage(image1);

@ -1,15 +1,18 @@
const Jimp = require(`jimp`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Poutine { module.exports = class Poutine {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * Ad
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
const canvas = new Jimp(600, 539); async getImage(image1) {
const img1 = await Jimp.read(image); if (!image1) throw new Error(`You must provide an image as an argument`);
const background = await Jimp.read(`${__dirname}/../../assets/poutine.png`); const canvas = Canvas.createCanvas(600, 539);
canvas.composite(img1, 350, 20); const ctx = canvas.getContext(`2d`);
canvas.composite(background, 0, 0); image1 = await Canvas.loadImage(image1);
return canvas.getBufferAsync(Jimp.MIME_PNG); const background = await Canvas.loadImage(`${__dirname}/../../assets/poutine.png`);
ctx.drawImage(image1, 350, 20, 135, 135);
ctx.drawImage(background, 0, 0, 600, 539);
return canvas.toBuffer();
} }
}; };

@ -1,10 +1,13 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Rip { module.exports = class Rip {
/**
* Rip
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(720, 405); const canvas = Canvas.createCanvas(720, 405);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
const background = await Canvas.loadImage(`${__dirname}/../../assets/rip.png`); const background = await Canvas.loadImage(`${__dirname}/../../assets/rip.png`);

@ -1,28 +0,0 @@
const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Snyder {
async getImage(image) {
function drawImage(ctx, image, x, y, w, h, degrees) {
ctx.save();
ctx.translate(x + w / 2, y + h / 2);
ctx.rotate(degrees * Math.PI / 180.0);
ctx.translate(-x - w / 2, -y - h / 2);
ctx.drawImage(image, x, y, w, h);
ctx.restore();
}
if (!image) throw new Error(`You must provide an image as an argument`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(610, 343);
const ctx = canvas.getContext(`2d`);
image = await Canvas.loadImage(image);
const background = await Canvas.loadImage(`${__dirname}/../../assets/snyder.png`);
ctx.fillRect(0, 0, 610, 343);
drawImage(ctx, image, 62, 70, 300, 300, -6);
ctx.drawImage(background, 0, 0, 610, 343);
return canvas.toBuffer();
}
};

@ -1,13 +1,14 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Spank { module.exports = class Spank {
/**
*
* @param {image} image1
* @param {image} image2
*/
async getImage(image1, image2) { async getImage(image1, image2) {
if (!image1) return console.error(`You must provide an image as a first argument.`); if (!image1) throw new Error(`You must provide an image as a first argument.`);
let isValid1 = await validateURL(image1); if (!image2) throw new Error(`You must provide an image as a second argument.`);
if (!isValid1) return console.error(`You must provide a valid image URL or buffer.`);
if (!image2) return console.error(`You must provide an image as a second argument.`);
let isValid2 = await validateURL(image2);
if (!isValid2) return console.error(`You must provide a valid image URL or buffer.`);
let bg = await jimp.read(`${__dirname}/../../assets/spank.png`); let bg = await jimp.read(`${__dirname}/../../assets/spank.png`);
image1 = await jimp.read(image1); image1 = await jimp.read(image1);
image2 = await jimp.read(image2); image2 = await jimp.read(image2);
@ -20,6 +21,10 @@ module.exports = class Spank {
image2.resize(120, 120); image2.resize(120, 120);
bg.composite(image2, 350, 220); bg.composite(image2, 350, 220);
bg.composite(image1, 225, 5); bg.composite(image1, 225, 5);
return await bg.getBufferAsync(`image/png`); let raw;
bg.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,15 +1,17 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Stonk { module.exports = class Stonk {
async getImage(image) { /**
if (!image) return console.error(`You must provide an image as an argument`); * Stonk
let isValid = await validateURL(image); * @param {image} image1
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); */
async getImage(image1) {
if (!image1) throw new Error(`You must provide an image as an argument`);
const canvas = Canvas.createCanvas(900, 539); const canvas = Canvas.createCanvas(900, 539);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
image = await Canvas.loadImage(image); image1 = await Canvas.loadImage(image1);
const background = await Canvas.loadImage(`${__dirname}/../../assets/stonk.png`); const background = await Canvas.loadImage(`${__dirname}/../../assets/stonk.png`);
ctx.drawImage(image, 70, 40, 240, 240); ctx.drawImage(image1, 70, 40, 240, 240);
ctx.drawImage(background, 0, 0, 900, 539); ctx.drawImage(background, 0, 0, 900, 539);
return canvas.toBuffer(); return canvas.toBuffer();
} }

@ -1,10 +1,12 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Tatoo { module.exports = class Tatoo {
/**
* Tatoo
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(750, 1089); const canvas = Canvas.createCanvas(750, 1089);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
const avatar = await Canvas.loadImage(image); const avatar = await Canvas.loadImage(image);

@ -1,10 +1,12 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
const { validateURL } = require(`../functions`);
module.exports = class Thomas { module.exports = class Thomas {
/**
* Thomas
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
const canvas = Canvas.createCanvas(841, 1058); const canvas = Canvas.createCanvas(841, 1058);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);
const avatar = await Canvas.loadImage(image); const avatar = await Canvas.loadImage(image);

@ -1,15 +1,21 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Trash { module.exports = class Trash {
/**
* Trash
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
let bg = await jimp.read(`${__dirname}/../../assets/trash.png`); let bg = await jimp.read(`${__dirname}/../../assets/trash.png`);
image = await jimp.read(image); image = await jimp.read(image);
image.resize(309, 309); image.resize(309, 309);
image.blur(5); image.blur(5);
bg.composite(image, 309, 0); bg.composite(image, 309, 0);
return await bg.getBufferAsync(`image/png`); let raw;
bg.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -2,14 +2,16 @@ const Canvas = require(`canvas`);
const { const {
applyText applyText
} = require(`../functions`); } = require(`../functions`);
const { validateURL } = require(`../functions`);
module.exports = class Wanted { module.exports = class Wanted {
/**
* Wanted
* @param {image} image
*/
async getImage(image, currency = `$`) { async getImage(image, currency = `$`) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image); if (typeof currency != `string`) throw new Error(`You must provide a string for the currency.`);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`); if (currency.length > 1) throw new Error(`You must provide only one character for the currency.`);
if (typeof currency != `string`) return console.error(`You must provide a string for the currency.`);
if (currency.length > 1) return console.error(`You must provide only one character for the currency.`);
var price = Math.floor(Math.random() * 188708) + 329889; var price = Math.floor(Math.random() * 188708) + 329889;
const canvas = Canvas.createCanvas(257, 383); const canvas = Canvas.createCanvas(257, 383);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);

@ -1,13 +1,19 @@
const jimp = require(`jimp`); const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Circle { module.exports = class Circle {
/**
* Circle
* @param {image} image
*/
async getImage(image) { async getImage(image) {
if (!image) return console.error(`You must provide an image as a first argument.`); if (!image) throw new Error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image); image = await jimp.read(image);
image.resize(480, 480); image.resize(480, 480);
image.circle(); image.circle();
return await image.getBufferAsync(`image/png`); let raw;
image.getBuffer(`image/png`, (err, buffer) => {
raw = buffer;
});
return raw;
} }
}; };

@ -1,6 +1,10 @@
const Canvas = require(`canvas`); const Canvas = require(`canvas`);
module.exports = class Color { module.exports = class Color {
/**
* Color
* @param {string} color
*/
async getImage(color = `#FFFFFF`) { async getImage(color = `#FFFFFF`) {
const canvas = Canvas.createCanvas(2048, 2048); const canvas = Canvas.createCanvas(2048, 2048);
const ctx = canvas.getContext(`2d`); const ctx = canvas.getContext(`2d`);

@ -1,16 +0,0 @@
const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Denoise {
async getImage(image, level = 1) {
if (!image) return console.error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
if (isNaN(level)) level = 1;
if (level > 10) level = 10;
if (level < 1) level = 1;
image = await jimp.read(image);
// apply gaussBlur
image.gaussian(level);
return await image.getBufferAsync(`image/png`);
}
};

@ -1,12 +0,0 @@
const jimp = require(`jimp`);
const { validateURL } = require(`../functions`);
module.exports = class Mirror {
async getImage(image, horizontal = true, vertical = false) {
if (!image) return console.error(`You must provide an image as a first argument.`);
let isValid = await validateURL(image);
if (!isValid) return console.error(`You must provide a valid image URL or buffer.`);
image = await jimp.read(image);
image.flip(horizontal, vertical);
return await image.getBufferAsync(`image/png`);
}
};

97
typings/index.d.ts vendored

@ -10,62 +10,22 @@ export class Blur extends ImageGenerator {
getImage(avatar: string, level?: number): Promise<Buffer>; getImage(avatar: string, level?: number): Promise<Buffer>;
} }
export class Gay extends DefaultImageGenerator { }
export class Greyscale extends DefaultImageGenerator { }
export class Invert extends DefaultImageGenerator { }
export class Sepia extends DefaultImageGenerator { }
export class Blink extends ImageGenerator { export class Blink extends ImageGenerator {
getImage(delay: number, ...avatar: any[]): Promise<Buffer>; getImage(avatar: string, avatar2: string, ...avatars: string[]): Promise<Buffer>;
} }
export class Triggered extends DefaultImageGenerator { }
export class Ad extends DefaultImageGenerator { }
export class Affect extends DefaultImageGenerator { }
export class Batslap extends ImageGenerator { export class Batslap extends ImageGenerator {
getImage(avatar: string, avatar2: string): Promise<Buffer>; getImage(avatar: string, avatar2: string): Promise<Buffer>;
} }
export class Beautiful extends DefaultImageGenerator { }
export class Bed extends ImageGenerator { export class Bed extends ImageGenerator {
getImage(avatar: string, avatar2: string): Promise<Buffer>; getImage(avatar: string, avatar2: string): Promise<Buffer>;
} }
export class Bobross extends DefaultImageGenerator { }
export class Clown extends DefaultImageGenerator { }
export class ConfusedStonk extends DefaultImageGenerator { }
export class Deepfry extends DefaultImageGenerator { }
export class Delete extends DefaultImageGenerator { }
export class DiscordBlack extends DefaultImageGenerator { }
export class DiscordBlue extends DefaultImageGenerator { }
export class DoubleStonk extends ImageGenerator { export class DoubleStonk extends ImageGenerator {
getImage(avatar: string, avatar2: string): Promise<Buffer>; getImage(avatar: string, avatar2: string): Promise<Buffer>;
} }
export class Facepalm extends DefaultImageGenerator { }
export class Heartbreaking extends DefaultImageGenerator { }
export class Hitler extends DefaultImageGenerator { }
export class Jail extends DefaultImageGenerator { }
export class Karaba extends DefaultImageGenerator { }
export class Kiss extends ImageGenerator { export class Kiss extends ImageGenerator {
getImage(avatar: string, avatar2: string): Promise<Buffer>; getImage(avatar: string, avatar2: string): Promise<Buffer>;
} }
@ -74,12 +34,6 @@ export class LisaPresentation extends ImageGenerator {
getImage(text: string): Promise<Buffer>; getImage(text: string): Promise<Buffer>;
} }
export class Mikkelsen extends DefaultImageGenerator { }
export class Mms extends DefaultImageGenerator { }
export class NotStonk extends DefaultImageGenerator { }
export class Podium extends ImageGenerator { export class Podium extends ImageGenerator {
getImage( getImage(
avatar: string, avatar: string,
@ -91,38 +45,41 @@ export class Podium extends ImageGenerator {
): Promise<Buffer>; ): Promise<Buffer>;
} }
export class Poutine extends DefaultImageGenerator { }
export class Rip extends DefaultImageGenerator { }
export class Snyder extends DefaultImageGenerator { }
export class Spank extends ImageGenerator { export class Spank extends ImageGenerator {
getImage(avatar: string, avatar2: string): Promise<Buffer>; getImage(avatar: string, avatar2: string): Promise<Buffer>;
} }
export class Stonk extends DefaultImageGenerator { }
export class Tatoo extends DefaultImageGenerator { }
export class Thomas extends DefaultImageGenerator { }
export class Trash extends DefaultImageGenerator { }
export class Wanted extends ImageGenerator { export class Wanted extends ImageGenerator {
getImage(avatar: string, currency: string): Promise<Buffer>; getImage(avatar: string, currency: string): Promise<Buffer>;
} }
export class Circle extends DefaultImageGenerator { }
export class Color extends ImageGenerator { export class Color extends ImageGenerator {
getImage(color: string): Promise<Buffer>; getImage(color: string): Promise<Buffer>;
} }
export class Denoise extends ImageGenerator { export class Gay extends DefaultImageGenerator {}
getImage(avatar: string, level?: number): Promise<Buffer>; export class Greyscale extends DefaultImageGenerator {}
} export class Invert extends DefaultImageGenerator {}
export class Sepia extends DefaultImageGenerator {}
export class Mirror extends ImageGenerator { export class Triggered extends DefaultImageGenerator {}
getImage(avatar: string, horizontal?: boolean, vertical?: boolean): Promise<Buffer>; export class Ad extends DefaultImageGenerator {}
} export class Affect extends DefaultImageGenerator {}
export class Beautiful extends DefaultImageGenerator {}
export class Bobross extends DefaultImageGenerator {}
export class ConfusedStonk extends DefaultImageGenerator {}
export class Delete extends DefaultImageGenerator {}
export class DiscordBlack extends DefaultImageGenerator {}
export class DiscordBlue extends DefaultImageGenerator {}
export class Facepalm extends DefaultImageGenerator {}
export class Hitler extends DefaultImageGenerator {}
export class Jail extends DefaultImageGenerator {}
export class Karaba extends DefaultImageGenerator {}
export class Mms extends DefaultImageGenerator {}
export class NotStonk extends DefaultImageGenerator {}
export class Poutine extends DefaultImageGenerator {}
export class Rip extends DefaultImageGenerator {}
export class Stonk extends DefaultImageGenerator {}
export class Tatoo extends DefaultImageGenerator {}
export class Thomas extends DefaultImageGenerator {}
export class Trash extends DefaultImageGenerator {}
export class Circle extends DefaultImageGenerator {}

Loading…
Cancel
Save