From 10fcffd6b66d52ba10d6d6f4566301923725a4ad Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 20 Oct 2020 19:42:51 +0200 Subject: [PATCH] Version 1.4.0 --- .eslintrc.js | 22 +++++++ README.md | 15 ++++- package.json | 2 +- src/assets/discordblack.png | Bin 0 -> 89673 bytes src/assets/discordblue.png | Bin 0 -> 12141 bytes src/index.js | 24 ++++---- src/module/filters/blur.js | 6 +- src/module/filters/gay.js | 4 +- src/module/filters/greyscale.js | 6 +- src/module/filters/invert.js | 6 +- src/module/filters/sepia.js | 6 +- src/module/functions.js | 12 ++-- src/module/gif/blink.js | 16 +++-- src/module/gif/triggered.js | 12 ++-- src/module/montage/ad.js | 4 +- src/module/montage/affect.js | 8 +-- src/module/montage/batslap.js | 10 ++-- src/module/montage/beautiful.js | 8 +-- src/module/montage/bed.js | 4 +- src/module/montage/bobross.js | 32 +++++----- src/module/montage/confusedStonk.js | 4 +- src/module/montage/delete.js | 4 +- src/module/montage/discordBlack.js | 18 ++++++ src/module/montage/discordBlue.js | 18 ++++++ src/module/montage/doubleStonk.js | 10 ++-- src/module/montage/facepalm.js | 10 ++-- src/module/montage/hitler.js | 4 +- src/module/montage/jail.js | 4 +- src/module/montage/kiss.js | 4 +- src/module/montage/lisaPresentation.js | 80 ++++++++----------------- src/module/montage/mms.js | 4 +- src/module/montage/notStonk.js | 6 +- src/module/montage/podium.js | 22 +++---- src/module/montage/poutine.js | 4 +- src/module/montage/rip.js | 4 +- src/module/montage/spank.js | 4 +- src/module/montage/stonk.js | 4 +- src/module/montage/tatoo.js | 4 +- src/module/montage/thomas.js | 4 +- src/module/montage/trash.js | 4 +- src/module/montage/wanted.js | 20 +++---- src/module/utils/circle.js | 4 +- src/module/utils/color.js | 4 +- 43 files changed, 238 insertions(+), 203 deletions(-) create mode 100644 .eslintrc.js create mode 100644 src/assets/discordblack.png create mode 100644 src/assets/discordblue.png create mode 100644 src/module/montage/discordBlack.js create mode 100644 src/module/montage/discordBlue.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..262a4c8 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,22 @@ +module.exports = { + "rules": { + "no-console": `off`, + "indent": [`error`, 4], + "semi": [`error`, `always`], + "quotes": [`error`, `backtick`], + "keyword-spacing": [ + `error`, + { + "before": true, "after": true + } + ], + }, + "extends": `eslint:recommended`, + "env": { + "es6": true, + "node": true, + }, + "parserOptions": { + "ecmaVersion": 2020 + }, +}; diff --git a/README.md b/README.md index 7d07fad..38e10a9 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ bot.login("super_secret_token") ## Gifs -- ``new DIG.Blink().getImage(``, ``, )`` +- ``new DIG.Blink().getImage(``, ``, ``);`` ![Blink](https://imgur.com/JjUXmRU.gif) @@ -137,6 +137,14 @@ bot.login("super_secret_token") ![Delete](https://imgur.com/6V1IYJp.png) +- ``new DIG.DiscordBlack().getImage(``)`` + +![DiscordBlack](https://imgur.com/dTX3wta.png) + +- ``new DIG.DiscordBlue().getImage(``)`` + +![DiscordBlue](https://imgur.com/q1bRGrx.png) + - ``new DIG.DoubleStonk().getImage(``)`` ![DoubleStonk](https://imgur.com/HbuuUC6.png) @@ -225,6 +233,11 @@ bot.login("super_secret_token") # Changelog +## v1.4.0 +- Added DiscordBlack() and DiscordBlue() +- Added ESLint and fixed all problems +- Use of the function file in LisaPresentation() instead of an in file function + ## v1.3.9 - Edited links in README - Bumped jimp from 0.14.0 to 0.16.1 diff --git a/package.json b/package.json index 052b485..55c2f7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "discord-image-generation", - "version": "1.3.9", + "version": "1.4.0", "description": "discord-image-generation is a powerfull module that allow you to generate awesome images.", "main": "src/index.js", "scripts": { diff --git a/src/assets/discordblack.png b/src/assets/discordblack.png new file mode 100644 index 0000000000000000000000000000000000000000..ee035f9cd4fc1ac6cdd7d1e725f68719ae536891 GIT binary patch literal 89673 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�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 sK02}v{&(4s)8K!%%>P%%Mf>t9qmvBAOHXW literal 0 HcmV?d00001 diff --git a/src/assets/discordblue.png b/src/assets/discordblue.png new file mode 100644 index 0000000000000000000000000000000000000000..e2214f6b438f3a4e39b8f4ccec1b04cfc446a4ba GIT binary patch literal 12141 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 WTjx^-L%{d*&}l !f.includes(".") +for (let type of readdirSync(join(__dirname, `module`)).filter( + f => !f.includes(`.`) )) { - readdirSync(join(__dirname, "module", type)) - .filter(file => file !== "index.js" && file.endsWith(".js")) - .map(File => { - const Name = File.split(".")[0]; - exports[ - Name.charAt(0).toUpperCase() + Name.slice(1) - ] = require(`${__dirname}/module/${type}/${File}`); - }); + readdirSync(join(__dirname, `module`, type)) + .filter(file => file !== `index.js` && file.endsWith(`.js`)) + .map(File => { + const Name = File.split(`.`)[0]; + exports[ + Name.charAt(0).toUpperCase() + Name.slice(1) + ] = require(`${__dirname}/module/${type}/${File}`); + }); } diff --git a/src/module/filters/blur.js b/src/module/filters/blur.js index 0b7e075..2b48590 100644 --- a/src/module/filters/blur.js +++ b/src/module/filters/blur.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Blur { /** @@ -9,7 +9,7 @@ module.exports = class Blur { async getImage(image, level) { if (!image) throw new Error(`You must provide an image.`); image = await jimp.read(image); - image.resize(480, 480) + image.resize(480, 480); image.blur(isNaN(level) ? 5 : parseInt(level)); let raw; image.getBuffer(`image/png`, (err, buffer) => { @@ -17,4 +17,4 @@ module.exports = class Blur { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/filters/gay.js b/src/module/filters/gay.js index bae12d5..b7c3419 100644 --- a/src/module/filters/gay.js +++ b/src/module/filters/gay.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Gay { /** @@ -15,4 +15,4 @@ module.exports = class Gay { ctx.drawImage(bg, 0, 0, 480, 480); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/filters/greyscale.js b/src/module/filters/greyscale.js index ffa7c7c..cbcb6df 100644 --- a/src/module/filters/greyscale.js +++ b/src/module/filters/greyscale.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Geryscale { /** @@ -8,7 +8,7 @@ module.exports = class Geryscale { async getImage(image) { if (!image) throw new Error(`You must provide an image.`); image = await jimp.read(image); - image.resize(480, 480) + image.resize(480, 480); image.greyscale(); let raw; image.getBuffer(`image/png`, (err, buffer) => { @@ -16,4 +16,4 @@ module.exports = class Geryscale { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/filters/invert.js b/src/module/filters/invert.js index 645611e..26fae2e 100644 --- a/src/module/filters/invert.js +++ b/src/module/filters/invert.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Invert { /** @@ -8,7 +8,7 @@ module.exports = class Invert { async getImage(image) { if (!image) throw new Error(`You must provide an image.`); image = await jimp.read(image); - image.resize(480, 480) + image.resize(480, 480); image.invert(); let raw; image.getBuffer(`image/png`, (err, buffer) => { @@ -16,4 +16,4 @@ module.exports = class Invert { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/filters/sepia.js b/src/module/filters/sepia.js index 94a1d81..7876450 100644 --- a/src/module/filters/sepia.js +++ b/src/module/filters/sepia.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Sepia { /** @@ -8,7 +8,7 @@ module.exports = class Sepia { async getImage(image) { if (!image) throw new Error(`You must provide an image.`); image = await jimp.read(image); - image.resize(480, 480) + image.resize(480, 480); image.sepia(); let raw; image.getBuffer(`image/png`, (err, buffer) => { @@ -16,4 +16,4 @@ module.exports = class Sepia { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/functions.js b/src/module/functions.js index 15ffac5..7e77ceb 100644 --- a/src/module/functions.js +++ b/src/module/functions.js @@ -9,7 +9,7 @@ module.exports = { * @param {string} font the font */ applyText(canvas, text, defaultFontSize, width, font){ - const ctx = canvas.getContext("2d"); + const ctx = canvas.getContext(`2d`); do { ctx.font = `${(defaultFontSize -= 1)}px ${font}`; } while (ctx.measureText(text).width > width); @@ -19,10 +19,10 @@ module.exports = { wrapText(ctx, text, maxWidth) { return new Promise(resolve => { if (ctx.measureText(text).width < maxWidth) return resolve([text]); - if (ctx.measureText('W').width > maxWidth) return resolve(null); - const words = text.split(' '); + if (ctx.measureText(`W`).width > maxWidth) return resolve(null); + const words = text.split(` `); const lines = []; - let line = ''; + let line = ``; while (words.length > 0) { let split = false; while (ctx.measureText(words[0]).width >= maxWidth) { @@ -41,11 +41,11 @@ module.exports = { } else { lines.push(line.trim()); - line = ''; + line = ``; } if (words.length === 0) lines.push(line.trim()); } return resolve(lines); }); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/gif/blink.js b/src/module/gif/blink.js index 22ba398..720fcdb 100644 --- a/src/module/gif/blink.js +++ b/src/module/gif/blink.js @@ -8,30 +8,28 @@ module.exports = class Blink { * @param {image} image1 * @param {image} image2 * @param {number} timeout - * @param {number} height For later - * @param {number} width For later */ - async getImage(image1, image2, timeout = 1000, height, width) { + async getImage(image1, image2, timeout = 1000) { if (!image1) throw new Error(`You must provide an image as a first argument.`); if (!image2) throw new Error(`You must provide an image as a second argument.`); - if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`) + if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`); const img = await Canvas.loadImage(image1); const base = await Canvas.loadImage(image2); - const GIF = new GIFEncoder(480, 480) + const GIF = new GIFEncoder(480, 480); GIF.start(); GIF.setRepeat(0); GIF.setDelay(timeout); GIF.setTransparent(); const canvas = Canvas.createCanvas(480, 480); - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext(`2d`); ctx.clearRect(0, 0, 480, 480); ctx.drawImage(img, 0, 0, 480, 480); GIF.addFrame(ctx); - const ctx2 = canvas.getContext('2d'); + const ctx2 = canvas.getContext(`2d`); ctx2.clearRect(0, 0, 480, 480); ctx2.drawImage(base, 0, 0, 480, 480); - GIF.addFrame(ctx2) + GIF.addFrame(ctx2); GIF.finish(); return GIF.out.getData(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/gif/triggered.js b/src/module/gif/triggered.js index 737342f..82db5b7 100644 --- a/src/module/gif/triggered.js +++ b/src/module/gif/triggered.js @@ -10,26 +10,26 @@ module.exports = class Triggered { */ async getImage(image, timeout = 15) { if (!image) throw new Error(`You must provide an image.`); - if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`) + if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`); const base = await Canvas.loadImage(`${__dirname}/../../assets/triggered.png`); const img = await Canvas.loadImage(image); - const GIF = new GIFEncoder(256, 310) + const GIF = new GIFEncoder(256, 310); GIF.start(); GIF.setRepeat(0); GIF.setDelay(timeout); const canvas = Canvas.createCanvas(256, 310); - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext(`2d`); const BR = 20; const LR = 10; for (var i = 0; i < 9; i++) { ctx.clearRect(0, 0, 256, 310); ctx.drawImage(img, Math.floor(Math.random() * BR) - BR, Math.floor(Math.random() * BR) - BR, 256 + BR, 310 - 54 + BR); - ctx.fillStyle = '#FF000033'; + ctx.fillStyle = `#FF000033`; ctx.fillRect(0, 0, 256, 310); ctx.drawImage(base, Math.floor(Math.random() * LR) - LR, 310 - 54 + Math.floor(Math.random() * LR) - LR, 256 + LR, 54 + LR); GIF.addFrame(ctx); - }; + } GIF.finish(); return GIF.out.getData(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/ad.js b/src/module/montage/ad.js index a113ccc..939cd3c 100644 --- a/src/module/montage/ad.js +++ b/src/module/montage/ad.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Ad { /** @@ -15,4 +15,4 @@ module.exports = class Ad { ctx.drawImage(background, 0, 0, 550, 474); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/affect.js b/src/module/montage/affect.js index 187cb26..f9b6b5f 100644 --- a/src/module/montage/affect.js +++ b/src/module/montage/affect.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Affect { /** @@ -6,15 +6,15 @@ module.exports = class Affect { * @param {image} image */ async getImage(image) { - if (!image) throw new Error("You must provide an image."); + if (!image) throw new Error(`You must provide an image.`); let base = await jimp.read(`${__dirname}/../../assets/affect.png`); let img = await jimp.read(image); img.resize(200, 157); base.composite(img, 180, 383); let raw; - base.getBuffer("image/png", (err, buffer) => { + base.getBuffer(`image/png`, (err, buffer) => { raw = buffer; }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/batslap.js b/src/module/montage/batslap.js index 545a06b..6482ee5 100644 --- a/src/module/montage/batslap.js +++ b/src/module/montage/batslap.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Batslap { /** @@ -7,8 +7,8 @@ module.exports = class Batslap { * @param {image} image2 */ async getImage(image1, image2) { - if (!image1) throw new Error("You must provide an image as a first argument."); - if (!image2) throw new Error("You must provide an image as a second argument."); + if (!image1) throw new Error(`You must provide an image as a first argument.`); + if (!image2) throw new Error(`You must provide an image as a second argument.`); let base = await jimp.read(`${__dirname}/../../assets/batslap.png`); image1 = await jimp.read(image1); image2 = await jimp.read(image2); @@ -20,9 +20,9 @@ module.exports = class Batslap { base.composite(image2, 580, 260); base.composite(image1, 350, 70); let raw; - base.getBuffer("image/png", (err, buffer) => { + base.getBuffer(`image/png`, (err, buffer) => { raw = buffer; }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/beautiful.js b/src/module/montage/beautiful.js index 3d0daec..c63a1f9 100644 --- a/src/module/montage/beautiful.js +++ b/src/module/montage/beautiful.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Beautiful { /** @@ -6,7 +6,7 @@ module.exports = class Beautiful { * @param {image} image */ async getImage(image) { - if (!image) throw new Error("You must provide an image."); + if (!image) throw new Error(`You must provide an image.`); let base = await jimp.read(`${__dirname}/../../assets/beautiful.png`); base.resize(376, 400); let img = await jimp.read(image); @@ -14,9 +14,9 @@ module.exports = class Beautiful { base.composite(img, 258, 28); base.composite(img, 258, 229); let raw; - base.getBuffer("image/png", (err, buffer) => { + base.getBuffer(`image/png`, (err, buffer) => { raw = buffer; }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/bed.js b/src/module/montage/bed.js index d349b0e..08e360c 100644 --- a/src/module/montage/bed.js +++ b/src/module/montage/bed.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Bed { /** @@ -27,4 +27,4 @@ module.exports = class Bed { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/bobross.js b/src/module/montage/bobross.js index 4ea107c..2e89415 100644 --- a/src/module/montage/bobross.js +++ b/src/module/montage/bobross.js @@ -1,22 +1,20 @@ -const { createCanvas, loadImage } = require("canvas"); +const { createCanvas, loadImage } = require(`canvas`); module.exports = class Bobross { - /** + /** * Bobross * @param {image} image1 */ - async getImage(image1){ - if (!image1) throw new Error(`You must provide an image as argument.`); - const base = await loadImage(`${__dirname}/../../assets/bobross.png`); - const canvas = createCanvas(base.width, base.height); - const ctx = canvas.getContext("2d"); - image1 = await loadImage(image1); - ctx.fillStyle = "white"; - ctx.fillRect(0, 0, base.width, base.height); - ctx.drawImage(image1, 15, 20, 440, 440); - ctx.drawImage(base, 0, 0); - return canvas.toBuffer() - } -} - -// -N²O Pyro ;) + async getImage(image1) { + if (!image1) throw new Error(`You must provide an image as argument.`); + const base = await loadImage(`${__dirname}/../../assets/bobross.png`); + const canvas = createCanvas(base.width, base.height); + const ctx = canvas.getContext(`2d`); + image1 = await loadImage(image1); + ctx.fillStyle = `white`; + ctx.fillRect(0, 0, base.width, base.height); + ctx.drawImage(image1, 15, 20, 440, 440); + ctx.drawImage(base, 0, 0); + return canvas.toBuffer(); + } +}; diff --git a/src/module/montage/confusedStonk.js b/src/module/montage/confusedStonk.js index ba03512..306e1ca 100644 --- a/src/module/montage/confusedStonk.js +++ b/src/module/montage/confusedStonk.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class ConfusedStonk { /** @@ -15,4 +15,4 @@ module.exports = class ConfusedStonk { ctx.drawImage(background, 0, 0, 1994, 1296); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/delete.js b/src/module/montage/delete.js index 508f19f..1519449 100644 --- a/src/module/montage/delete.js +++ b/src/module/montage/delete.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Delete { /** @@ -17,4 +17,4 @@ module.exports = class Delete { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/discordBlack.js b/src/module/montage/discordBlack.js new file mode 100644 index 0000000..ee2c20f --- /dev/null +++ b/src/module/montage/discordBlack.js @@ -0,0 +1,18 @@ +const Canvas = require(`canvas`); + +module.exports = class DiscordBlack { + /** + * Bobross + * @param {image} image1 + */ + async getImage(image1) { + if (!image1) throw new Error(`You must provide an image as argument.`); + const canvas = Canvas.createCanvas(610, 610); + const ctx = canvas.getContext(`2d`); + image1 = await Canvas.loadImage(image1); + const background = await Canvas.loadImage(`${__dirname}/../../assets/discordblack.png`); + ctx.drawImage(image1, 0, 0, 610, 610); + ctx.drawImage(background, 0, 0, 610, 610); + return canvas.toBuffer(); + } +}; diff --git a/src/module/montage/discordBlue.js b/src/module/montage/discordBlue.js new file mode 100644 index 0000000..f4b403c --- /dev/null +++ b/src/module/montage/discordBlue.js @@ -0,0 +1,18 @@ +const Canvas = require(`canvas`); + +module.exports = class DiscordBlue { + /** + * Bobross + * @param {image} image1 + */ + async getImage(image1) { + if (!image1) throw new Error(`You must provide an image as argument.`); + const canvas = Canvas.createCanvas(610, 610); + const ctx = canvas.getContext(`2d`); + image1 = await Canvas.loadImage(image1); + const background = await Canvas.loadImage(`${__dirname}/../../assets/discordblue.png`); + ctx.drawImage(image1, 0, 0, 610, 610); + ctx.drawImage(background, 0, 0, 610, 610); + return canvas.toBuffer(); + } +}; diff --git a/src/module/montage/doubleStonk.js b/src/module/montage/doubleStonk.js index 6d49541..e064a51 100644 --- a/src/module/montage/doubleStonk.js +++ b/src/module/montage/doubleStonk.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class DoubleStonk { /** @@ -7,8 +7,8 @@ module.exports = class DoubleStonk { * @param {image} image2 */ async getImage(image1, image2) { - if (!image1) throw new Error("You must provide an image as a first argument."); - if (!image2) throw new Error("You must provide an image as a second argument."); + if (!image1) throw new Error(`You must provide an image as a first argument.`); + if (!image2) throw new Error(`You must provide an image as a second argument.`); let base = await jimp.read(`${__dirname}/../../assets/doubleStonk.png`); image1 = await jimp.read(image1); image2 = await jimp.read(image2); @@ -20,9 +20,9 @@ module.exports = class DoubleStonk { base.composite(image2, 60, 20); base.composite(image1, 0, 30); let raw; - base.getBuffer("image/png", (err, buffer) => { + base.getBuffer(`image/png`, (err, buffer) => { raw = buffer; }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/facepalm.js b/src/module/montage/facepalm.js index 24a8fd6..5cc2a05 100644 --- a/src/module/montage/facepalm.js +++ b/src/module/montage/facepalm.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Facepalm { /** @@ -6,10 +6,10 @@ module.exports = class Facepalm { * @param {image} image */ async getImage(image) { - if (!image) throw new Error("You must provide an image."); + if (!image) throw new Error(`You must provide an image.`); let canvas = Canvas.createCanvas(632, 357); - let ctx = canvas.getContext("2d"); - ctx.fillStyle = "black"; + let ctx = canvas.getContext(`2d`); + ctx.fillStyle = `black`; ctx.fillRect(0, 0, 632, 357); let avatar = await Canvas.loadImage(image); ctx.drawImage(avatar, 199, 112, 235, 235); @@ -17,4 +17,4 @@ module.exports = class Facepalm { ctx.drawImage(layer, 0, 0, 632, 357); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/hitler.js b/src/module/montage/hitler.js index 8df408e..7af7fce 100644 --- a/src/module/montage/hitler.js +++ b/src/module/montage/hitler.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Hitler { /** @@ -17,4 +17,4 @@ module.exports = class Hitler { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/jail.js b/src/module/montage/jail.js index f1fdf6b..d3cb373 100644 --- a/src/module/montage/jail.js +++ b/src/module/montage/jail.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Jail { /** @@ -15,4 +15,4 @@ module.exports = class Jail { ctx.drawImage(bg, 0, 0, 400, 400); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/kiss.js b/src/module/montage/kiss.js index e24ca51..f76ae2a 100644 --- a/src/module/montage/kiss.js +++ b/src/module/montage/kiss.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Kiss { /** @@ -25,4 +25,4 @@ module.exports = class Kiss { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/lisaPresentation.js b/src/module/montage/lisaPresentation.js index d60baf8..e311bd1 100644 --- a/src/module/montage/lisaPresentation.js +++ b/src/module/montage/lisaPresentation.js @@ -1,66 +1,34 @@ -const { createCanvas, loadImage, registerFont } = require('canvas'); -registerFont(`${__dirname}/../../assets/fonts/Noto-Regular.ttf`, { family: 'Noto' }); -registerFont(`${__dirname}/../../assets/fonts/Noto-Emoji.ttf`, { family: 'Noto' }); -const path = require("path"); - -function wrapText(ctx, text, maxWidth) { - return new Promise(resolve => { - if (ctx.measureText(text).width < maxWidth) return resolve([text]); - if (ctx.measureText('W').width > maxWidth) return resolve(null); - const words = text.split(' '); - const lines = []; - let line = ''; - while (words.length > 0) { - let split = false; - while (ctx.measureText(words[0]).width >= maxWidth) { - const temp = words[0]; - words[0] = temp.slice(0, -1); - if (split) { - words[1] = `${temp.slice(-1)}${words[1]}`; - } - else { - split = true; - words.splice(1, 0, temp.slice(-1)); - } - } - if (ctx.measureText(`${line}${words[0]}`).width < maxWidth) { - line += `${words.shift()} `; - } - else { - lines.push(line.trim()); - line = ''; - } - if (words.length === 0) lines.push(line.trim()); - } - return resolve(lines); - }); -} +const { createCanvas, loadImage, registerFont } = require(`canvas`); +registerFont(`${__dirname}/../../assets/fonts/Noto-Regular.ttf`, { family: `Noto` }); +registerFont(`${__dirname}/../../assets/fonts/Noto-Emoji.ttf`, { family: `Noto` }); +const path = require(`path`); +const { wrapText } = require(`../functions`); module.exports = class LisaPresentation { - async getImage(text) { - if (!text || text.length > 300) throw new Error(`You must provide a text of 300 characters or less.`) + async getImage(text) { + 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 canvas = createCanvas(base.width, base.height); - const ctx = canvas.getContext('2d'); - ctx.drawImage(base, 0, 0); - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - ctx.font = '40px Noto'; - let fontSize = 40; - while (ctx.measureText(text).width > 1320) { + const base = await loadImage(path.join(`${__dirname}/../../assets/lisa-presentation.png`)); + const canvas = createCanvas(base.width, base.height); + const ctx = canvas.getContext(`2d`); + ctx.drawImage(base, 0, 0); + ctx.textAlign = `center`; + ctx.textBaseline = `top`; + ctx.font = `40px Noto`; + let fontSize = 40; + while (ctx.measureText(text).width > 1320) { fontSize -= 1; ctx.font = `${fontSize}px Noto`; - } - const lines = await wrapText(ctx, text, 330); - const topMost = 185 - (((fontSize * lines.length) / 2) + ((20 * (lines.length - 1)) / 2)); - for (let i = 0; i < lines.length; i++) { + } + const lines = await wrapText(ctx, text, 330); + const topMost = 185 - (((fontSize * lines.length) / 2) + ((20 * (lines.length - 1)) / 2)); + for (let i = 0; i < lines.length; i++) { const height = topMost + ((fontSize + 20) * i); ctx.fillText(lines[i], base.width / 2, height); - } + } - return canvas.toBuffer(); - } + return canvas.toBuffer(); + } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/mms.js b/src/module/montage/mms.js index c683ec7..42c58d8 100644 --- a/src/module/montage/mms.js +++ b/src/module/montage/mms.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Mms { /** @@ -15,4 +15,4 @@ module.exports = class Mms { ctx.drawImage(bg, 0, 0, 400, 400); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/notStonk.js b/src/module/montage/notStonk.js index a4dd9f0..2c7e9f7 100644 --- a/src/module/montage/notStonk.js +++ b/src/module/montage/notStonk.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class NotStonk { /** @@ -13,6 +13,6 @@ module.exports = class NotStonk { const background = await Canvas.loadImage(`${__dirname}/../../assets/notStonk.png`); ctx.drawImage(image1, 140, 5, 190, 190); ctx.drawImage(background, 0, 0, 960, 576); - return canvas.toBuffer(); + return canvas.tofBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/podium.js b/src/module/montage/podium.js index eee1896..6a63a8a 100644 --- a/src/module/montage/podium.js +++ b/src/module/montage/podium.js @@ -1,7 +1,7 @@ -const Canvas = require("canvas"); -const { - applyText -} = require("../functions") +const Canvas = require(`canvas`); +const { + applyText +} = require(`../functions`); module.exports = class Podium { /** @@ -34,26 +34,26 @@ module.exports = class Podium { if (name1.length > 5) maxWidth = 150; if (name1.length > 10) maxWidth = 250; if (name1.length > 20) maxWidth = 350; - ctx.textAlign = 'center'; - ctx.font = applyText(canvas, name1, 80, maxWidth, "Comic Sans MS"); + ctx.textAlign = `center`; + ctx.font = applyText(canvas, name1, 80, maxWidth, `Comic Sans MS`); ctx.fillStyle = `#513d34`; ctx.fillText(name1, 580, 575); maxWidth = 80; if (name2.length > 5) maxWidth = 150; if (name2.length > 10) maxWidth = 180; if (name2.length > 20) maxWidth = 240; - ctx.textAlign = 'center'; - ctx.font = applyText(canvas, name2, 50, maxWidth, "Comic Sans MS"); + ctx.textAlign = `center`; + ctx.font = applyText(canvas, name2, 50, maxWidth, `Comic Sans MS`); ctx.fillStyle = `#513d34`; ctx.fillText(name2, 210, 540); maxWidth = 80; if (name3.length > 5) maxWidth = 150; if (name3.length > 10) maxWidth = 180; if (name3.length > 20) maxWidth = 240; - ctx.textAlign = 'center'; - ctx.font = applyText(canvas, name3, 50, maxWidth, "Comic Sans MS"); + ctx.textAlign = `center`; + ctx.font = applyText(canvas, name3, 50, maxWidth, `Comic Sans MS`); ctx.fillStyle = `#513d34`; ctx.fillText(name3, 970, 540); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/poutine.js b/src/module/montage/poutine.js index b5ec321..eabc82f 100644 --- a/src/module/montage/poutine.js +++ b/src/module/montage/poutine.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Poutine { /** @@ -15,4 +15,4 @@ module.exports = class Poutine { ctx.drawImage(background, 0, 0, 600, 539); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/rip.js b/src/module/montage/rip.js index e0fe099..e891a75 100644 --- a/src/module/montage/rip.js +++ b/src/module/montage/rip.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Rip { /** @@ -16,4 +16,4 @@ module.exports = class Rip { ctx.drawImage(background, 0, 0, canvas.width, canvas.height); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/spank.js b/src/module/montage/spank.js index 5e71891..81b4302 100644 --- a/src/module/montage/spank.js +++ b/src/module/montage/spank.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Spank { /** @@ -27,4 +27,4 @@ module.exports = class Spank { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/stonk.js b/src/module/montage/stonk.js index 6fc36c5..e926d17 100644 --- a/src/module/montage/stonk.js +++ b/src/module/montage/stonk.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Stonk { /** @@ -15,4 +15,4 @@ module.exports = class Stonk { ctx.drawImage(background, 0, 0, 900, 539); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/tatoo.js b/src/module/montage/tatoo.js index a2dc8c4..8d0d45d 100644 --- a/src/module/montage/tatoo.js +++ b/src/module/montage/tatoo.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Tatoo { /** @@ -15,4 +15,4 @@ module.exports = class Tatoo { ctx.drawImage(background, 0, 0, 750, 1089); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/thomas.js b/src/module/montage/thomas.js index 5fd0a77..7f0cec5 100644 --- a/src/module/montage/thomas.js +++ b/src/module/montage/thomas.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Thomas { /** @@ -15,4 +15,4 @@ module.exports = class Thomas { ctx.drawImage(background, 0, 0, 841, 1058); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/trash.js b/src/module/montage/trash.js index 46778f2..f9dc7da 100644 --- a/src/module/montage/trash.js +++ b/src/module/montage/trash.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Trash { /** @@ -18,4 +18,4 @@ module.exports = class Trash { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/montage/wanted.js b/src/module/montage/wanted.js index b330f8f..56b6a24 100644 --- a/src/module/montage/wanted.js +++ b/src/module/montage/wanted.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); const { applyText } = require(`../functions`); @@ -8,21 +8,21 @@ module.exports = class Wanted { * Wanted * @param {image} image */ - async getImage(image, currency = "$") { + async getImage(image, currency = `$`) { if (!image) throw new Error(`You must provide an image.`); - if (typeof currency != `string`) throw new Error(`You must provide a string for the currency.`) - if (currency.length > 1) throw new Error(`You must provide only one character for the currency.`) - var price = Math.floor(Math.random() * 188708) + 329889 + if (typeof currency != `string`) throw new Error(`You must provide a string for the currency.`); + if (currency.length > 1) throw new Error(`You must provide only one character for the currency.`); + var price = Math.floor(Math.random() * 188708) + 329889; const canvas = Canvas.createCanvas(257, 383); const ctx = canvas.getContext(`2d`); const avatar = await Canvas.loadImage(image); const background = await Canvas.loadImage(`${__dirname}/../../assets/wanted.png`); ctx.drawImage(avatar, 25, 60, 210, 210); ctx.drawImage(background, 0, 0, 257, 383); - ctx.textAlign = 'center'; - ctx.font = applyText(canvas, price.toLocaleString() + currency, 80, 200, "Times New Roman"); - ctx.fillStyle = `#513d34` - ctx.fillText(price.toLocaleString() + currency, 128, 315) + ctx.textAlign = `center`; + ctx.font = applyText(canvas, price.toLocaleString() + currency, 80, 200, `Times New Roman`); + ctx.fillStyle = `#513d34`; + ctx.fillText(price.toLocaleString() + currency, 128, 315); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/utils/circle.js b/src/module/utils/circle.js index 7ba7d8c..1e0685d 100644 --- a/src/module/utils/circle.js +++ b/src/module/utils/circle.js @@ -1,4 +1,4 @@ -const jimp = require("jimp"); +const jimp = require(`jimp`); module.exports = class Circle { /** @@ -16,4 +16,4 @@ module.exports = class Circle { }); return raw; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/module/utils/color.js b/src/module/utils/color.js index c250ac0..d25f4a3 100644 --- a/src/module/utils/color.js +++ b/src/module/utils/color.js @@ -1,4 +1,4 @@ -const Canvas = require("canvas"); +const Canvas = require(`canvas`); module.exports = class Color { /** @@ -12,4 +12,4 @@ module.exports = class Color { ctx.fillRect(0, 0, canvas.width, canvas.height); return canvas.toBuffer(); } -} \ No newline at end of file +}; \ No newline at end of file