Some profanity prevention stuff, breadmixer rewrite
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { Guild } from "discord.js";
|
||||
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<DBServer>, guild: Guild): Promise<DBMessageRegex[] | null | undefined> {
|
||||
return (await db.findOne({
|
||||
@@ -15,4 +17,37 @@ export async function getRegexesForGuild(db: Repository<DBServer>, guild: Guild)
|
||||
server_snowflake: guild.id
|
||||
}
|
||||
}))?.regexes
|
||||
}
|
||||
|
||||
export async function checkMatchingRegexes(regexes: DBMessageRegex[], testString: string) : Promise<DBMessageRegex[] | null> {
|
||||
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<DBMessageRegexMatches>, message: OmitPartialGroupDMChannel<Message<boolean>> | PartialMessage) {
|
||||
let matches : DBMessageRegexMatches[] = []
|
||||
|
||||
regexes.forEach(async (regex) => {
|
||||
matches.push(db.create({
|
||||
message: {
|
||||
message_snowflake: message.id
|
||||
},
|
||||
regex: regex
|
||||
}))
|
||||
})
|
||||
|
||||
await db.save(matches)
|
||||
}
|
||||
Reference in New Issue
Block a user