Bugfixes and consistency on message content and deletion
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "node --experimental-strip-types --env-file=.env src/bot.ts",
|
||||
"debug": "node --inspect --experimental-strip-types --env-file=.env src/bot.ts",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { Message } from "discord.js";
|
||||
import { readyHandler } from "./functions/ready.ts";
|
||||
import feedMessagesArray from "./functions/feedMessagesArray.ts";
|
||||
import handleMessageReposts from "./functions/handleMessageReposts.ts";
|
||||
import deleteMessageFromMessagesArray from "./functions/deleteMessageFromMessagesArray.ts";
|
||||
|
||||
const client = new Client({
|
||||
intents: [
|
||||
@@ -23,8 +24,9 @@ client.on(Events.MessageCreate, async (message) => {
|
||||
messagesArr = handleMessageReposts(messagesArr, message);
|
||||
});
|
||||
|
||||
// // TODO, updateMessagesArray on message deletion
|
||||
// client.on(Events.MessageDelete, async (message) => {
|
||||
// });
|
||||
// TODO, updateMessagesArray on message deletion
|
||||
client.on(Events.MessageDelete, async (message) => {
|
||||
messagesArr = deleteMessageFromMessagesArray(messagesArr, message);
|
||||
});
|
||||
|
||||
await client.login(process.env.DISCORD_TOKEN);
|
||||
|
||||
12
src/functions/deleteMessageFromMessagesArray.ts
Normal file
12
src/functions/deleteMessageFromMessagesArray.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import type {
|
||||
Message,
|
||||
OmitPartialGroupDMChannel,
|
||||
PartialMessage,
|
||||
} from "discord.js";
|
||||
|
||||
export default function deleteMessageFromMessagesArray(
|
||||
messagesArray: Message[],
|
||||
messageToDelete: OmitPartialGroupDMChannel<Message<boolean> | PartialMessage>,
|
||||
): Message[] {
|
||||
return messagesArray.filter((message) => message.id !== messageToDelete.id);
|
||||
}
|
||||
@@ -17,9 +17,7 @@ export default function handleMessageReposts(
|
||||
|
||||
const urlMessagesMatchArray = urlMessagesMap.get(newMessageClearedUrl);
|
||||
|
||||
if (!urlMessagesMatchArray) return messagesArray;
|
||||
|
||||
if (urlMessagesMatchArray.length <= 1) {
|
||||
if (!urlMessagesMatchArray) {
|
||||
return updateMessagesArray(messagesArray, newMessage);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
export function clearUrl(url: string): string {
|
||||
const clearedUrl = url.split("?")[0];
|
||||
const urlRegex = /(https?:\/\/[^ ]*)/;
|
||||
|
||||
const matchUrl = url.match(urlRegex);
|
||||
|
||||
if (!matchUrl) return "";
|
||||
if (!matchUrl[0]) return "";
|
||||
|
||||
let clearedUrl = matchUrl[0].split("?")[0];
|
||||
|
||||
if (!clearedUrl) return "";
|
||||
|
||||
clearedUrl = clearedUrl.split("\n")[0];
|
||||
|
||||
if (!clearedUrl) return "";
|
||||
|
||||
clearedUrl = clearedUrl.replace(/\/+$/, "");
|
||||
|
||||
return clearedUrl;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user