diff --git a/src/plugins/rule34/messages.ts b/src/plugins/rule34/messages.ts index 6d5e7b7..8390086 100644 --- a/src/plugins/rule34/messages.ts +++ b/src/plugins/rule34/messages.ts @@ -1,4 +1,4 @@ -import { Bot, Message} from "npm:discordeno@18.0.1"; +import { Bot, Message } from "npm:discordeno@18.0.1"; import { drop, help, requestWorker } from "./plugin.ts"; import { logMessage } from "@root/logging.ts"; import { defaultString } from "@root/defaultString.ts"; @@ -6,13 +6,16 @@ import { Embed } from "@root/structures/embeds.ts"; export async function rule34MessageHandler(bot: Bot, message: Message) { const command = message.content.trim().split(" ").slice(1).join(" "); - - if (command.startsWith("[") && command.endsWith("]")) { - logMessage(message); - const generatedEmbeds: Embed[] = await requestWorker(command) + if (command === "drop") { + bot.helpers.sendMessage(message.channelId, { + embeds: [await drop()] + }) + } else if (command.startsWith("drop [") && command.endsWith("]")) { + logMessage(message); + const generatedEmbeds: Embed[] = await requestWorker(command); for (const embed of generatedEmbeds) { bot.helpers.sendMessage(message.channelId, { - embeds: [embed] + embeds: [embed], }); } } else if (command === "help") { diff --git a/src/plugins/rule34/plugin.ts b/src/plugins/rule34/plugin.ts index 652ad4a..ce1b614 100644 --- a/src/plugins/rule34/plugin.ts +++ b/src/plugins/rule34/plugin.ts @@ -10,9 +10,30 @@ function isKey(key: string): key is PostKeys { } export async function drop() { - const response = await requestJSON(`${postUrl}&limit=1`); - if (response[0] === undefined) throw Error("Bro, get some sleep"); - return response[0].file_url; + try { + const response = await requestJSON(`${postUrl}&limit=1`); + const img = response[0]; + if (img === undefined) throw Error("An undefined Array was given!"); + return new Embed( + `ID: ${img.id}`, + img.sample_url, + new EmbedAuthor(img.owner), + // [new EmbedField("Tags", img.tags, true)], + new EmbedImage(img.file_url, img.height, img.width), + ); + } catch (e) { + console.error((e as Error).message); + return new Embed( + "Error Message", + "https://gifdb.com/images/thumbnail/nuh-uh-demon-slayer-girl-hm7q3hqa4lnqyl6d.gif", + new EmbedAuthor("fzzinChemical"), + new EmbedImage( + "https://gifdb.com/images/thumbnail/nuh-uh-demon-slayer-girl-hm7q3hqa4lnqyl6d.gif", + 250, + 250, + ), + ); + } } export async function requestWorker(requestString: string) { @@ -34,8 +55,8 @@ export async function requestWorker(requestString: string) { } return stack; } catch (e) { - console.error((e as Error).message); - return [] + console.error((e as Error).message); + return []; } }