Skip to content
This repository has been archived by the owner on Nov 24, 2024. It is now read-only.

Commit

Permalink
fix(self-protect): checker
Browse files Browse the repository at this point in the history
  • Loading branch information
guimc233 committed Sep 30, 2024
1 parent df7342c commit a3cd168
Show file tree
Hide file tree
Showing 4 changed files with 896 additions and 2 deletions.
2 changes: 2 additions & 0 deletions src/main/kotlin/ltd/guimc/lgzbot/PluginMain.kt
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ object PluginMain : KotlinPlugin(
lateinit var adRegex: Array<Regex>
lateinit var adPinyinRegex: Array<Regex>
lateinit var seriousRegex: Array<Regex>
lateinit var spRegex: Array<Regex>
lateinit var fbValue: Array<String>
lateinit var webHookService: WebHookService
lateinit var configReloadThread: Thread
Expand All @@ -91,6 +92,7 @@ object PluginMain : KotlinPlugin(
adRegex = getDefaultRegex()
adPinyinRegex = getDefaultPinyinRegex()
seriousRegex = getSeriousRegex()
spRegex = getSeriousRegex()
fbValue = getFbValue()
webHookService = WebHookService(GithubWebHookReciver())

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ object SelfMessageListener : ListenerHost {
suspend fun MessagePreSendEvent.onEvent() {
val newMessageChain = MessageChainBuilder()
this.message.toMessageChain().forEach { it ->
if (it is PlainText && RegexUtils.matchRegex(PluginMain.seriousRegex, it.content)) {
if (it is PlainText && RegexUtils.matchRegex(PluginMain.spRegex, it.content)) {
this.cancel()
newMessageChain.add(it.content.replaceRegex(PluginMain.seriousRegex))
newMessageChain.add(it.content.replaceRegex(PluginMain.spRegex))
} else {
newMessageChain.add(it)
}
Expand Down
14 changes: 14 additions & 0 deletions src/main/kotlin/ltd/guimc/lgzbot/utils/RegexUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,20 @@ object RegexUtils {
return regexList.toTypedArray()
}

fun getSpRegex(): Array<Regex> {
// Read from resources regex.txt
val regexFile = RegexUtils::class.java.getResourceAsStream("/self-protect.txt")
val regexList = mutableListOf<Regex>()
regexFile?.bufferedReader()?.use { reader ->
reader.lines().forEach {
// regexList.add(Regex(PinyinUtils.convertToPinyin(it)))
regexList.add(Regex(it))
}
}

return regexList.toTypedArray()
}

// 匹配正则表达式列表 返回是否匹配
fun matchRegex(regexList: Array<Regex>, message: String): Boolean {
try {
Expand Down
Loading

0 comments on commit a3cd168

Please sign in to comment.