import { Guild, Message, OmitPartialGroupDMChannel, PartialMessage } from "discord.js"; import { DBMessageRegex } from "../storage/entities/DBMessageRegex"; import { Repository } from "typeorm"; import { DBServer } from "../storage/entities/DBServer"; import { DBMessageRegexMatches } from "../storage/entities/DBMessageRegexMatches"; import { DBMessage } from "../storage/entities/DBMessage"; export async function getRegexesForGuild(db: Repository, guild: Guild): Promise { return (await db.findOne({ select: { regexes: true }, relations: { regexes: true }, where: { server_snowflake: guild.id } }))?.regexes } export async function checkMatchingRegexes(regexes: DBMessageRegex[], testString: string) : Promise { let matchedRegexes: DBMessageRegex[] = [] regexes.forEach((regex) => { const regexObj = new RegExp(regex.regex, 'gmi') if(regexObj.test(testString)) { matchedRegexes.push(regex) } }) if(matchedRegexes.length != 0) { return matchedRegexes } else { return null } } export async function insertAnyRegexMatches(regexes: DBMessageRegex[], db: Repository, message: OmitPartialGroupDMChannel> | PartialMessage) { let matches : DBMessageRegexMatches[] = [] regexes.forEach(async (regex) => { matches.push(db.create({ message: { message_snowflake: message.id }, regex: regex })) }) await db.save(matches) }