Refactor message handling by creating dedicated handlers for rule34 and yandere plugins, and add default string utility function
This commit is contained in:
@@ -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/"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
3
src/defaultString.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export function defaultString(s: string): string {
|
||||
return s === "" ? "ERROR: Tried to send empty message" : s;
|
||||
}
|
||||
104
src/messages.ts
104
src/messages.ts
@@ -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;
|
||||
}
|
||||
44
src/plugins/rule34/messages.ts
Normal file
44
src/plugins/rule34/messages.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
69
src/plugins/yandere/messages.ts
Normal file
69
src/plugins/yandere/messages.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user