Refactor message handling by creating dedicated handlers for rule34 and yandere plugins, and add default string utility function

This commit is contained in:
fzzinchemical
2025-03-26 19:24:38 +01:00
parent 58c7932481
commit a16b4dcb17
6 changed files with 128 additions and 100 deletions

View File

@@ -16,6 +16,8 @@
"imports": {
"@discordeno": "npm:@discordeno@18.0.1",
"@std/assert": "jsr:@std/assert@1",
"@types/node": "npm:@types/node@^22.5.4"
"@types/node": "npm:@types/node@^22.5.4",
"@root/" : "./src/"
}
}

View File

@@ -1,5 +1,5 @@
import { createBot, Intents, startBot } from "npm:discordeno@18.0.1";
import { messagehandler } from "./messages.ts";
import { yandereMessageHandler } from "./messages.ts";
const BOT_TOKEN = Deno.env.get("BOT_TOKEN") ?? "";
if (!BOT_TOKEN) {
@@ -14,7 +14,7 @@ const bot = createBot({
console.log("Bot is ready!");
},
async messageCreate(bot, message) {
await messagehandler(bot, message);
await yandereMessageHandler(bot, message);
}
}
});

3
src/defaultString.ts Normal file
View File

@@ -0,0 +1,3 @@
export function defaultString(s: string): string {
return s === "" ? "ERROR: Tried to send empty message" : s;
}

View File

@@ -1,7 +1,6 @@
import { Bot, Message } from "npm:discordeno@18.0.1";
import { drop5, r34test, refresh } from "./plugins/rule34/api.ts";
import { logMessage } from "./logging.ts";
import { dropYandere, dropYandere5, getPage, setPage } from "./plugins/yandere/api.ts";
import { yandereMessageHandler } from "@root/plugins/yandere/messages.ts";
import { rule34MessageHandler } from "@root/plugins/rule34/messages.ts";
const prefix = Deno.env.get("BOT_PREFIX") ?? "";
if (!prefix) {
@@ -11,103 +10,14 @@ if (!prefix) {
export async function messagehandler(bot: Bot, message: Message) {
const command = message.content.split(" ")[0];
const args = message.content.split(" ").slice(1);
// const args = message.content.split(" ").slice(1);
switch (command) {
case `${prefix}rule`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await r34test()),
});
}
break;
case `${prefix}rule5`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await drop5()),
});
}
break;
case `${prefix}refresh`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: "Refreshed",
});
}
break;
rule34MessageHandler(bot, message)
break
case `${prefix}yande`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await dropYandere()),
});
}
break;
case `${prefix}yande5`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await dropYandere5()),
});
}
break;
case `${prefix}yandepage`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
if (args[0] === undefined) {
bot.helpers.sendMessage(message.channelId, {
content: "Please provide a page number",
});
} else if (isNaN(parseInt(args[0]))) {
bot.helpers.sendMessage(message.channelId, {
content: "Please provide a valid number",
});
} else {
await setPage(parseInt(args[0]));
bot.helpers.sendMessage(message.channelId, {
content: "Page set to " + args[0],
});
}
}
break;
case `${prefix}yandegetpage`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: "Page is " + getPage(),
});
}
break;
// TODO Add exception for when the ollama api is down
yandereMessageHandler(bot, message)
break
}
}
function defaultString(s: string): string {
return s === "" ? "ERROR: Tried to send empty message" : s;
}

View File

@@ -0,0 +1,44 @@
import { Bot, Message } from "npm:discordeno@18.0.1";
import { drop5, r34test, refresh } from "./api.ts";
import { logMessage } from "@root/logging.ts";
import { defaultString } from "@root/defaultString.ts";
export async function rule34MessageHandler(bot: Bot, message: Message) {
const command = message.content.split(" ").slice(1).join(" ");
switch (command) {
case `drop`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await r34test()),
});
}
break;
case `drop5`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await drop5()),
});
}
break;
case `refresh`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: "Refreshed",
});
}
break;
}
}

View File

@@ -0,0 +1,69 @@
import { Bot, Message } from "npm:discordeno@18.0.1";
import { dropYandere, dropYandere5, getPage, refresh, setPage } from "./api.ts";
import { defaultString } from "@root/defaultString.ts";
import { logMessage } from "@root/logging.ts";
export async function yandereMessageHandler(bot: Bot, message: Message) {
const command = message.content.split(" ").slice(1).join(" ");
const args = message.content.split(" ").slice(1);
switch (command) {
case `drop`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await dropYandere()),
});
}
break;
case `drop 5`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
await refresh();
bot.helpers.sendMessage(message.channelId, {
content: defaultString(await dropYandere5()),
});
}
break;
case `page`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
if (args[0] === undefined) {
bot.helpers.sendMessage(message.channelId, {
content: "Please provide a page number",
});
} else if (isNaN(parseInt(args[0]))) {
bot.helpers.sendMessage(message.channelId, {
content: "Please provide a valid number",
});
} else {
await setPage(parseInt(args[0]));
bot.helpers.sendMessage(message.channelId, {
content: "Page set to " + args[0],
});
}
}
break;
case `getpage`:
logMessage(message);
if (
message.channelId === 754338073101205524n ||
message.guildId === undefined
) {
bot.helpers.sendMessage(message.channelId, {
content: "Page is " + getPage(),
});
}
break;
}
}