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": {
|
"imports": {
|
||||||
"@discordeno": "npm:@discordeno@18.0.1",
|
"@discordeno": "npm:@discordeno@18.0.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.5.4",
|
||||||
|
|
||||||
|
"@root/" : "./src/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { createBot, Intents, startBot } from "npm:discordeno@18.0.1";
|
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") ?? "";
|
const BOT_TOKEN = Deno.env.get("BOT_TOKEN") ?? "";
|
||||||
if (!BOT_TOKEN) {
|
if (!BOT_TOKEN) {
|
||||||
@@ -14,7 +14,7 @@ const bot = createBot({
|
|||||||
console.log("Bot is ready!");
|
console.log("Bot is ready!");
|
||||||
},
|
},
|
||||||
async messageCreate(bot, message) {
|
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 { Bot, Message } from "npm:discordeno@18.0.1";
|
||||||
import { drop5, r34test, refresh } from "./plugins/rule34/api.ts";
|
import { yandereMessageHandler } from "@root/plugins/yandere/messages.ts";
|
||||||
import { logMessage } from "./logging.ts";
|
import { rule34MessageHandler } from "@root/plugins/rule34/messages.ts";
|
||||||
import { dropYandere, dropYandere5, getPage, setPage } from "./plugins/yandere/api.ts";
|
|
||||||
|
|
||||||
const prefix = Deno.env.get("BOT_PREFIX") ?? "";
|
const prefix = Deno.env.get("BOT_PREFIX") ?? "";
|
||||||
if (!prefix) {
|
if (!prefix) {
|
||||||
@@ -11,103 +10,14 @@ 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);
|
// const args = message.content.split(" ").slice(1);
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case `${prefix}rule`:
|
case `${prefix}rule`:
|
||||||
logMessage(message);
|
rule34MessageHandler(bot, message)
|
||||||
if (
|
break
|
||||||
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;
|
|
||||||
case `${prefix}yande`:
|
case `${prefix}yande`:
|
||||||
logMessage(message);
|
yandereMessageHandler(bot, message)
|
||||||
if (
|
break
|
||||||
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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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