Skip to content

Commit

Permalink
Quotes API v3
Browse files Browse the repository at this point in the history
  • Loading branch information
ashleylamont committed Oct 16, 2024
1 parent 35e2dbc commit 187d592
Showing 1 changed file with 32 additions and 6 deletions.
38 changes: 32 additions & 6 deletions src/quotes-server.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,34 @@
import type { Express } from "express";
import { Collection, Message } from "discord.js";
import { Collection, Message, MessageMentions } from "discord.js";
import { Quote } from "./commands/quote";

const quotes: Collection<string, Quote> = new Collection();

export function replaceMentionsWithNames(
message: string,
mentions: MessageMentions<true>,
): string {
for (const [id, user] of mentions.parsedUsers.entries()) {
message = message.replaceAll(
new RegExp(`<@!?${id}>`, "g"),
"@" +
(mentions.members.find((m) => m.user.id === user.id)?.displayName ??
user.displayName ??
user.username),
);
}
return message;
}

export function convertMessageToQuote(
message: Message<true>,
): Quote | undefined {
// Check if the message is an embed
if (message.embeds.length === 1) {
if (
message.embeds.length === 1 &&
message.embeds[0].author !== null &&
message.embeds[0].author.name.includes("Quote")
) {
const embed = message.embeds[0];
let author: Quote["quotee"] = embed.title ?? undefined;
if (author == "Anonymous Quote") {
Expand All @@ -26,11 +46,17 @@ export function convertMessageToQuote(
return undefined;
}
const quoteBody = messageContent;
if (message.mentions.members.size > 0) {
if (message.mentions.parsedUsers.size > 0) {
return {
message: quoteBody,
quotee: message.mentions.members
.map((member) => member.displayName)
message: replaceMentionsWithNames(quoteBody, message.mentions),
quotee: message.mentions.parsedUsers
.map(
(user) =>
message.mentions.members.find((m) => m.user.id === user.id)
?.displayName ??
user.displayName ??
user.username,
)
.join(", "),
timestamp: message.createdAt,
};
Expand Down

0 comments on commit 187d592

Please sign in to comment.