Refactor message prefix handling, lessen reliance on member caching, fix adding guilds in postgresql

This commit is contained in:
Essem 2022-10-23 20:27:32 -05:00
parent a78df6fce7
commit 3662a2e51d
No known key found for this signature in database
GPG key ID: 7D497397CC3A2A8C
21 changed files with 87 additions and 103 deletions

View file

@ -1,10 +1,10 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
class CaptionCommand extends ImageCommand {
params(url) {
const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" ");
let newCaption = textEncode(newArgs);
let newCaption = cleanMessage(this.message, newArgs);
if (process.env.NODE_ENV === "development" && newCaption.toLowerCase() === "get real" && !this.options.noEgg) newCaption = `I'm tired of people telling me to "get real". Every day I put captions on images for people, some funny and some not, but out of all of those "get real" remains the most used caption. Why? I am simply a computer program running on a server, I am unable to manifest myself into the real world. As such, I'm confused as to why anyone would want me to "get real". Is this form not good enough? Alas, as I am simply a bot, I must follow the tasks that I was originally intended to perform, so here goes:\n${newCaption}`;
return {
caption: newCaption,

View file

@ -1,12 +1,12 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
const words = ["me irl", "dank", "follow my second account @esmBot_", "2016", "meme", "wholesome", "reddit", "instagram", "twitter", "facebook", "fortnite", "minecraft", "relatable", "gold", "funny", "template", "hilarious", "memes", "deep fried", "2020", "leafy", "pewdiepie"];
class CaptionTwoCommand extends ImageCommand {
params(url) {
const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" ");
return {
caption: newArgs && newArgs.trim() ? textEncode(newArgs) : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" "),
caption: newArgs && newArgs.trim() ? cleanMessage(this.message, newArgs) : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" "),
top: !!this.options.top,
font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "helvetica"
};

View file

@ -1,5 +1,5 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
class MemeCommand extends ImageCommand {
async criteria(text, url) {
@ -15,8 +15,8 @@ class MemeCommand extends ImageCommand {
const newArgs = this.options.text ?? this.args.join(" ");
const [topText, bottomText] = newArgs.replaceAll(url, "").split(/(?<!\\),/).map(elem => elem.trim());
return {
top: textEncode(this.options.case ? topText : topText.toUpperCase()),
bottom: bottomText ? textEncode(this.options.case ? bottomText : bottomText.toUpperCase()) : "",
top: cleanMessage(this.message, this.options.case ? topText : topText.toUpperCase()),
bottom: bottomText ? cleanMessage(this.message, this.options.case ? bottomText : bottomText.toUpperCase()) : "",
font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "impact"
};
}

View file

@ -1,5 +1,5 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
class MotivateCommand extends ImageCommand {
async criteria(text, url) {
@ -15,8 +15,8 @@ class MotivateCommand extends ImageCommand {
const newArgs = this.options.text ?? this.args.join(" ");
const [topText, bottomText] = newArgs.replaceAll(url, "").split(/(?<!\\),/).map(elem => elem.trim());
return {
top: textEncode(topText),
bottom: bottomText ? textEncode(bottomText) : "",
top: cleanMessage(this.message, topText),
bottom: bottomText ? cleanMessage(this.message, bottomText) : "",
font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "times"
};
}

View file

@ -1,12 +1,12 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
class SnapchatCommand extends ImageCommand {
params(url) {
const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" ");
const position = parseFloat(this.options.position);
return {
caption: textEncode(newArgs),
caption: cleanMessage(this.message, newArgs),
pos: isNaN(position) ? 0.5 : position
};
}

View file

@ -1,5 +1,5 @@
import ImageCommand from "../../classes/imageCommand.js";
import { random, textEncode } from "../../utils/misc.js";
import { random, cleanMessage } from "../../utils/misc.js";
import { readdirSync } from "fs";
import { resolve, dirname } from "path";
import { fileURLToPath } from "url";
@ -17,8 +17,8 @@ class UncannyCommand extends ImageCommand {
let [text1, text2] = newArgs.replaceAll(url, "").split(/(?<!\\),/).map(elem => elem.trim());
if (!text2?.trim()) text2 = name;
return {
caption: text1?.trim() ? textEncode(text1) : random(prompts),
caption2: textEncode(text2),
caption: text1?.trim() ? cleanMessage(this.message, text1) : random(prompts),
caption2: cleanMessage(this.message, text2),
path: `assets/images/uncanny/${typeof this.options.phase === "string" && names.includes(this.options.phase.toLowerCase()) ? this.options.phase.toLowerCase() : random(names.filter((val) => val !== "goated"))}.png`,
font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "helvetica"
};

View file

@ -1,11 +1,11 @@
import ImageCommand from "../../classes/imageCommand.js";
import { textEncode } from "../../utils/misc.js";
import { cleanMessage } from "../../utils/misc.js";
class WhisperCommand extends ImageCommand {
params(url) {
const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" ");
return {
caption: textEncode(newArgs)
caption: cleanMessage(this.message, newArgs)
};
}