Update Bot to latest Discordeno Version 21.0.0 and add nsfw check for rule34 and yandere api calls

This commit is contained in:
fzzinchemical
2025-04-13 21:53:17 +02:00
parent 7e25e13a77
commit 8e466f69c1
9 changed files with 92 additions and 43 deletions

View File

@@ -14,10 +14,10 @@
"admin": "deno -A --watch --check src/bot.ts" "admin": "deno -A --watch --check src/bot.ts"
}, },
"imports": { "imports": {
"@discordeno": "npm:@discordeno@18.0.1", "@discordeno": "npm:discordeno@21.0.0",
"@melvdouc/xml-parser": "jsr:@melvdouc/xml-parser@^0.1.1", "@melvdouc/xml-parser": "jsr:@melvdouc/xml-parser@^0.1.1",
"@std/assert": "jsr:@std/assert@1", "@std/assert": "jsr:@std/assert@1",
"@types/node": "npm:@types/node@^22.5.4", "@types/node": "npm:@types/node@^22.14.1",
"@root/" : "./src/" "@root/" : "./src/"
}, },

85
deno.lock generated
View File

@@ -14,9 +14,10 @@
"jsr:@std/log@*": "0.224.7", "jsr:@std/log@*": "0.224.7",
"npm:@discordeno/bot@*": "19.0.0-next.b1bfe94", "npm:@discordeno/bot@*": "19.0.0-next.b1bfe94",
"npm:@types/node@*": "18.16.19", "npm:@types/node@*": "18.16.19",
"npm:@types/node@^22.5.4": "22.13.13", "npm:@types/node@^22.14.1": "22.14.1",
"npm:discordeno@*": "18.0.1", "npm:discordeno@*": "21.0.0",
"npm:discordeno@18.0.1": "18.0.1", "npm:discordeno@21.0.0": "21.0.0",
"npm:discordeno@21.0.0": "21.0.0",
"npm:gson@*": "0.1.5" "npm:gson@*": "0.1.5"
}, },
"jsr": { "jsr": {
@@ -73,34 +74,68 @@
"@discordeno/bot@19.0.0-next.b1bfe94": { "@discordeno/bot@19.0.0-next.b1bfe94": {
"integrity": "sha512-ZaPDaPM6tuxpRZCyuNB2rzqz2WYHH20IQdutu87jffW2dV26D3Nw8SJCE1LNdXdu9akes3VMXolkNsLJ5MW2Hw==", "integrity": "sha512-ZaPDaPM6tuxpRZCyuNB2rzqz2WYHH20IQdutu87jffW2dV26D3Nw8SJCE1LNdXdu9akes3VMXolkNsLJ5MW2Hw==",
"dependencies": [ "dependencies": [
"@discordeno/gateway", "@discordeno/gateway@19.0.0-next.b1bfe94",
"@discordeno/rest", "@discordeno/rest@19.0.0-next.b1bfe94",
"@discordeno/types", "@discordeno/types@19.0.0-next.b1bfe94",
"@discordeno/utils" "@discordeno/utils@19.0.0-next.b1bfe94"
]
},
"@discordeno/bot@21.0.0": {
"integrity": "sha512-x6EcVHBvWIhjY5/lcwgZzzCiqdpKFZqu2qUaZqKb7RYS8L8Q8zY40hCnbToVehLB8+BGcnHzxCeEvWWg8tnT/g==",
"dependencies": [
"@discordeno/gateway@21.0.0",
"@discordeno/rest@21.0.0",
"@discordeno/types@21.0.0",
"@discordeno/utils@21.0.0"
] ]
}, },
"@discordeno/gateway@19.0.0-next.b1bfe94": { "@discordeno/gateway@19.0.0-next.b1bfe94": {
"integrity": "sha512-rNkcCua4Inx8NkuCjbuRBAAg+AIg1qYb24Fq6/Y2+1s+iO0VSQ/ZK8PRNbI2gSpAtAbfndvxA9kyU1ggwwLjNw==", "integrity": "sha512-rNkcCua4Inx8NkuCjbuRBAAg+AIg1qYb24Fq6/Y2+1s+iO0VSQ/ZK8PRNbI2gSpAtAbfndvxA9kyU1ggwwLjNw==",
"dependencies": [ "dependencies": [
"@discordeno/types", "@discordeno/types@19.0.0-next.b1bfe94",
"@discordeno/utils", "@discordeno/utils@19.0.0-next.b1bfe94",
"ws"
]
},
"@discordeno/gateway@21.0.0": {
"integrity": "sha512-ur5Hatd1x86PPI4UnXKghAWat3vS90NvLJcpOSu1B1gYSENRZow8dohZ8Ov58SXWq5nZVuBYDJNCR248pWJvrg==",
"dependencies": [
"@discordeno/types@21.0.0",
"@discordeno/utils@21.0.0",
"fzstd",
"ws" "ws"
] ]
}, },
"@discordeno/rest@19.0.0-next.b1bfe94": { "@discordeno/rest@19.0.0-next.b1bfe94": {
"integrity": "sha512-lLeP3hmMM0GFsO+VA3f9EKOwfIo1HvG1hudtlC1Er6BFWgArpz0/VizHbOyOr5SzZuzrQyfcBJJfEhC+48TsRg==", "integrity": "sha512-lLeP3hmMM0GFsO+VA3f9EKOwfIo1HvG1hudtlC1Er6BFWgArpz0/VizHbOyOr5SzZuzrQyfcBJJfEhC+48TsRg==",
"dependencies": [ "dependencies": [
"@discordeno/types", "@discordeno/types@19.0.0-next.b1bfe94",
"@discordeno/utils" "@discordeno/utils@19.0.0-next.b1bfe94"
]
},
"@discordeno/rest@21.0.0": {
"integrity": "sha512-ew5ddhUd7Qyv/GSzCy42bEmRv0yr2PspCMsLD/NeMiTLd3+OrVN5pAxBN9z+9JpS/daiiD/PVmvuUAVx/nXTEw==",
"dependencies": [
"@discordeno/types@21.0.0",
"@discordeno/utils@21.0.0"
] ]
}, },
"@discordeno/types@19.0.0-next.b1bfe94": { "@discordeno/types@19.0.0-next.b1bfe94": {
"integrity": "sha512-X1MmdPFMyzjxFEANEPrrBjdJDJBAz4RTa1vpVlMp46C3dPqTwjMwijaPhPgPnFiSwt01lJ8WaFDpMvfqOwpQNg==" "integrity": "sha512-X1MmdPFMyzjxFEANEPrrBjdJDJBAz4RTa1vpVlMp46C3dPqTwjMwijaPhPgPnFiSwt01lJ8WaFDpMvfqOwpQNg=="
}, },
"@discordeno/types@21.0.0": {
"integrity": "sha512-TUZAEqqlXRNQji+NCaQo8DruzI8rXbBvMaZYsZvN9f03PrdSddzMOy3cjs4eeL6ZMVocmMVRIaVnB713blylCw=="
},
"@discordeno/utils@19.0.0-next.b1bfe94": { "@discordeno/utils@19.0.0-next.b1bfe94": {
"integrity": "sha512-Y+j3G83vCVXiNSEQlFR9WWJ6GZhvBmIfFjb03zFcmHa20nHExILJJBEyDpS+ptziEyF7jB+2hNw5I/SKn8Zm2w==", "integrity": "sha512-Y+j3G83vCVXiNSEQlFR9WWJ6GZhvBmIfFjb03zFcmHa20nHExILJJBEyDpS+ptziEyF7jB+2hNw5I/SKn8Zm2w==",
"dependencies": [ "dependencies": [
"@discordeno/types" "@discordeno/types@19.0.0-next.b1bfe94"
]
},
"@discordeno/utils@21.0.0": {
"integrity": "sha512-I7I3Szlk+LkT/CRmJJiLPsjuBUjbuXUCvOzsgWCltkxDMIGmQeNoQtFK7t89V1Gcc4icsrnHVMho1BcaAITijg==",
"dependencies": [
"@discordeno/types@21.0.0"
] ]
}, },
"@fastify/busboy@2.1.1": { "@fastify/busboy@2.1.1": {
@@ -109,8 +144,8 @@
"@types/node@18.16.19": { "@types/node@18.16.19": {
"integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==" "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA=="
}, },
"@types/node@22.13.13": { "@types/node@22.14.1": {
"integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==", "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==",
"dependencies": [ "dependencies": [
"undici-types" "undici-types"
] ]
@@ -121,7 +156,7 @@
"underscore" "underscore"
] ]
}, },
"discordeno@18.0.1": { "discordeno@21.0.0": {
"integrity": "sha512-d3D/HpC39YGInmxy2HK90kPpMMu2gYYsWuwtEEFPWpq2hlR9dvad4ihvLursPz5bj4Ob1NWOgPv3kz/bwMSIpw==", "integrity": "sha512-d3D/HpC39YGInmxy2HK90kPpMMu2gYYsWuwtEEFPWpq2hlR9dvad4ihvLursPz5bj4Ob1NWOgPv3kz/bwMSIpw==",
"dependencies": [ "dependencies": [
"@deno/shim-deno", "@deno/shim-deno",
@@ -130,6 +165,19 @@
"ws" "ws"
] ]
}, },
"discordeno@21.0.0": {
"integrity": "sha512-NX1x5GtHbrNhpeahfHw+2A6/3bpec2obNjIZ/mkBUGWcpLWG/ZgJSIkkdQIxcrnQ3loQooo/5IpBucnFTiGATA==",
"dependencies": [
"@discordeno/bot@21.0.0",
"@discordeno/gateway@21.0.0",
"@discordeno/rest@21.0.0",
"@discordeno/types@21.0.0",
"@discordeno/utils@21.0.0"
]
},
"fzstd@0.1.1": {
"integrity": "sha512-dkuVSOKKwh3eas5VkJy1AW1vFpet8TA/fGmVA5krThl8YcOVE/8ZIoEA1+U1vEn5ckxxhLirSdY837azmbaNHA=="
},
"gson@0.1.5": { "gson@0.1.5": {
"integrity": "sha512-EK+P+vGnmekaPMEg9qC23hTNgRaJ6GfQFS73sYgzvFoVYLMX7dVOUVDbPXRnNtnr99rf6DpOn4wlSbS0puN8AQ==", "integrity": "sha512-EK+P+vGnmekaPMEg9qC23hTNgRaJ6GfQFS73sYgzvFoVYLMX7dVOUVDbPXRnNtnr99rf6DpOn4wlSbS0puN8AQ==",
"dependencies": [ "dependencies": [
@@ -142,8 +190,8 @@
"underscore@1.6.0": { "underscore@1.6.0": {
"integrity": "sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ==" "integrity": "sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ=="
}, },
"undici-types@6.20.0": { "undici-types@6.21.0": {
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="
}, },
"undici@5.28.4": { "undici@5.28.4": {
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
@@ -172,7 +220,8 @@
"dependencies": [ "dependencies": [
"jsr:@melvdouc/xml-parser@~0.1.1", "jsr:@melvdouc/xml-parser@~0.1.1",
"jsr:@std/assert@1", "jsr:@std/assert@1",
"npm:@types/node@^22.5.4" "npm:@types/node@^22.14.1",
"npm:discordeno@21.0.0"
] ]
} }
} }

View File

@@ -1,4 +1,4 @@
import { createBot, Intents, startBot } from "npm:discordeno@18.0.1"; import { createBot, Intents, Message } from "@discordeno";
import { messagehandler } from "./messages.ts"; import { messagehandler } from "./messages.ts";
import { EnvConst, loadConfig } from "@root/core/configLoader.ts"; import { EnvConst, loadConfig } from "@root/core/configLoader.ts";
@@ -12,15 +12,14 @@ const bot = createBot({
ready() { ready() {
console.log("Bot is ready!"); console.log("Bot is ready!");
}, },
async messageCreate(bot, message) {
await messagehandler(bot, message);
}
} }
}); });
bot.events.messageCreate = async(message) => {
await messagehandler(bot, message as Message)
}
// Setup desired properties // Setup desired properties
await bot.start()
await startBot(bot);

View File

@@ -1,9 +1,9 @@
import * as stdlogger from "jsr:@std/log"; import * as stdlogger from "jsr:@std/log";
import { Message } from "npm:discordeno@18.0.1"; import { Message } from "@discordeno";
export function logMessage(message: Message) { export function logMessage(message: Message) {
return stdlogger.info( return stdlogger.info(
`Message from ${message.tag} in ${message.guildId?? "Private"} ${message.channelId} Command:[${message.content}]` `Message from ${message.author} in ${message.guildId?? "Private"} ${message.channelId} Command:[${message.content}]`
); );
} }

View File

@@ -1,4 +1,4 @@
import { Bot, Message } from "npm:discordeno@18.0.1"; import { Bot, Message, Channel } from "@discordeno";
import { yandereMessageHandler } from "@root/plugins/yandere/messages.ts"; import { yandereMessageHandler } from "@root/plugins/yandere/messages.ts";
import { rule34MessageHandler } from "@root/plugins/rule34/messages.ts"; import { rule34MessageHandler } from "@root/plugins/rule34/messages.ts";
@@ -10,14 +10,16 @@ if (!prefix) {
export async function messagehandler(bot: Bot, message: Message) { export async function messagehandler(bot: Bot, message: Message) {
const command = message.content.split(" ")[0]; const command = message.content.split(" ")[0];
// const args = message.content.split(" ").slice(1);
switch (command) { switch (command) {
case `${prefix}rule`: case `${prefix}rule`:
if (message.thread?.nsfw) {
await rule34MessageHandler(bot, message) await rule34MessageHandler(bot, message)
}
break break
case `${prefix}yande`: case `${prefix}yande`:
if (message.thread?.nsfw) {
await yandereMessageHandler(bot, message) await yandereMessageHandler(bot, message)
}
break break
} }
} }

View File

@@ -1,4 +1,4 @@
import { Bot, DiscordEmbedAuthor, Message } from "npm:discordeno@18.0.1"; import { Bot, Message } from "@discordeno";
import { drop, help, requestWorker } from "./plugin.ts"; import { drop, help, requestWorker } from "./plugin.ts";
import { logMessage } from "@root/logging.ts"; import { logMessage } from "@root/logging.ts";
import { defaultString } from "@root/defaultString.ts"; import { defaultString } from "@root/defaultString.ts";

View File

@@ -1,5 +1,5 @@
import { requestJSON } from "@root/structures/apiRequest.ts"; import { requestJSON } from "@root/structures/apiRequest.ts";
import { DiscordEmbed } from "npm:discordeno@18.0.1"; import { DiscordEmbed } from "npm:discordeno@21.0.0";
type PostResponse = { type PostResponse = {
id: number; id: number;

View File

@@ -1,5 +1,4 @@
import { Bot, Message, transformEmbed } from "npm:discordeno@18.0.1"; import { Bot, DiscordEmbed, Message} from "@discordeno";
import { defaultString } from "@root/defaultString.ts";
import { logMessage } from "@root/logging.ts"; import { logMessage } from "@root/logging.ts";
import { getPosts } from "@root/plugins/yandere/api/api.ts"; import { getPosts } from "@root/plugins/yandere/api/api.ts";
@@ -7,10 +6,10 @@ export async function yandereMessageHandler(bot: Bot, message: Message) {
const command = message.content.split(" ").slice(1).join(" "); const command = message.content.split(" ").slice(1).join(" ");
const args = command.match(/(\[.+\])/g) const args = command.match(/(\[.+\])/g)
if (command === "drop") { if (command === "drop") {
const embed = (await getPosts("[limit: 1]"))[0] const embed: DiscordEmbed | undefined = (await getPosts("[limit: 1]"))[0]
if (embed === undefined) throw Error("undefined embed") if (embed === undefined) throw Error("undefined embed")
bot.helpers.sendMessage(message.channelId, { bot.helpers.sendMessage(message.channelId, {
embeds: [transformEmbed(bot, embed)] embeds: [embed]
}) })
} else if (command.startsWith("drop [") && command.endsWith("]")) { } else if (command.startsWith("drop [") && command.endsWith("]")) {
logMessage(message); logMessage(message);
@@ -18,7 +17,7 @@ export async function yandereMessageHandler(bot: Bot, message: Message) {
const generatedEmbeds = await getPosts(args[0]); const generatedEmbeds = await getPosts(args[0]);
for (const embed of generatedEmbeds) { for (const embed of generatedEmbeds) {
bot.helpers.sendMessage(message.channelId, { bot.helpers.sendMessage(message.channelId, {
embeds: [transformEmbed(bot, embed)], embeds: [embed],
}); });
} }
} }

View File

@@ -1,4 +1,4 @@
import { DiscordEmbed, DiscordEmbedAuthor, DiscordEmbedField, DiscordEmbedImage } from "npm:discordeno@18.0.1"; import { DiscordEmbed, DiscordEmbedAuthor, DiscordEmbedField, DiscordEmbedImage } from "npm:discordeno@21.0.0";
export type Field = {name: string, value: string} export type Field = {name: string, value: string}