feat: add bad word filter

This commit is contained in:
2024-09-18 13:06:23 +08:00
parent 069fed22ca
commit 4d22b1ea55
8 files changed
+49 -4

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
[versions] [versions]
kotlinVersion = "2.0.10" kotlinVersion = "2.0.10"
ronebotVersion = "1.7.0" ronebotVersion = "1.7.2"
shadowVersion = "8.3.0" shadowVersion = "8.3.0"
okhttpVersion = "5.0.0-alpha.14" okhttpVersion = "5.0.0-alpha.14"
exposedVersion = "0.53.0" exposedVersion = "0.53.0"
+2 -1
View File
@@ -37,5 +37,6 @@ val DEFAULT_CONFIG = Config(
smtpUser = "114514", smtpUser = "114514",
smtpPassword = "1919810", smtpPassword = "1919810",
smtpFromAddress = "fancybot@repo.rtast.cn", smtpFromAddress = "fancybot@repo.rtast.cn",
admins = listOf(3458671395L) admins = listOf(3458671395L),
enableAntiRevoke = true
) )
@@ -24,6 +24,7 @@ import cn.rtast.fancybot.commands.parse.BVParseCommand
import cn.rtast.fancybot.commands.parse.GitHubParseCommand import cn.rtast.fancybot.commands.parse.GitHubParseCommand
import cn.rtast.fancybot.commands.parse.ImageURLCommand import cn.rtast.fancybot.commands.parse.ImageURLCommand
import cn.rtast.fancybot.commands.parse.ReverseGIFCommand import cn.rtast.fancybot.commands.parse.ReverseGIFCommand
import cn.rtast.fancybot.commands.parse.filterBadWord
import cn.rtast.fancybot.commands.record.JiJianCommand import cn.rtast.fancybot.commands.record.JiJianCommand
import cn.rtast.fancybot.commands.record.JrrpCommand import cn.rtast.fancybot.commands.record.JrrpCommand
import cn.rtast.fancybot.commands.record.MyNiuziCommand import cn.rtast.fancybot.commands.record.MyNiuziCommand
@@ -36,6 +37,7 @@ import cn.rtast.fancybot.entity.enums.WSType
import cn.rtast.fancybot.items.BaisiItem import cn.rtast.fancybot.items.BaisiItem
import cn.rtast.fancybot.items.HeisiItem import cn.rtast.fancybot.items.HeisiItem
import cn.rtast.fancybot.items.SetuItem import cn.rtast.fancybot.items.SetuItem
import cn.rtast.fancybot.util.file.BadWordManager
import cn.rtast.fancybot.util.file.ConfigManager import cn.rtast.fancybot.util.file.ConfigManager
import cn.rtast.fancybot.util.file.NiuziManager import cn.rtast.fancybot.util.file.NiuziManager
import cn.rtast.fancybot.util.file.SignManager import cn.rtast.fancybot.util.file.SignManager
@@ -59,6 +61,8 @@ class FancyBot : OBMessage {
val groupId = message.groupId val groupId = message.groupId
println("$sender($senderId: $groupId): $msg") println("$sender($senderId: $groupId): $msg")
filterBadWord(message)
if (message.rawMessage.startsWith("https://github.com/") || message.rawMessage.startsWith("git@github.com:")) { if (message.rawMessage.startsWith("https://github.com/") || message.rawMessage.startsWith("git@github.com:")) {
GitHubParseCommand.parse(this, message) GitHubParseCommand.parse(this, message)
} }
@@ -105,6 +109,7 @@ class FancyBot : OBMessage {
} }
override suspend fun onGroupMessageRevoke(message: GroupRevokeMessage) { override suspend fun onGroupMessageRevoke(message: GroupRevokeMessage) {
if (!configManager.enableAntiRevoke) return
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addText("用户: ${message.userId} 被: ${message.operatorId} 撤回了一条消息") .addText("用户: ${message.userId} 被: ${message.operatorId} 撤回了一条消息")
.addNewLine() .addNewLine()
@@ -131,6 +136,7 @@ val configManager = ConfigManager()
val itemManager = ItemManager() val itemManager = ItemManager()
val signManager = SignManager() val signManager = SignManager()
val niuziManager = NiuziManager() val niuziManager = NiuziManager()
val badWordManager = BadWordManager()
val items = listOf( val items = listOf(
HeisiItem(), HeisiItem(),
@@ -0,0 +1,18 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/18
*/
package cn.rtast.fancybot.commands.parse
import cn.rtast.fancybot.badWordManager
import cn.rtast.rob.entity.GroupMessage
suspend fun filterBadWord(message: GroupMessage) {
if (badWordManager.contain(message.rawMessage)) {
message.reply("你不许说脏话")
message.revoke()
}
}
@@ -27,5 +27,6 @@ data class Config(
val smtpUser: String, val smtpUser: String,
val smtpPassword: String, val smtpPassword: String,
val smtpFromAddress: String, val smtpFromAddress: String,
val admins: List<Long> val admins: List<Long>,
val enableAntiRevoke: Boolean
) )
@@ -0,0 +1,17 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/18
*/
package cn.rtast.fancybot.util.file
import cn.rtast.fancybot.util.JsonFileHandler
class BadWordManager: JsonFileHandler<List<String>>("bd.json", listOf<String>()) {
fun contain(word: String): Boolean {
return this.read<List<String>>().any { word.contains(it) }
}
}
@@ -28,4 +28,5 @@ class ConfigManager : JsonFileHandler<Config>("config.json") {
val smtpPassword get() = this.read<Config>().smtpPassword val smtpPassword get() = this.read<Config>().smtpPassword
val smtpFromAddress get() = this.read<Config>().smtpFromAddress val smtpFromAddress get() = this.read<Config>().smtpFromAddress
val admins get() = this.read<Config>().admins val admins get() = this.read<Config>().admins
val enableAntiRevoke get() = this.read<Config>().enableAntiRevoke
} }
+2 -1
View File
@@ -20,5 +20,6 @@
"smtpFromAddress": "fancybot@repo.rtast.cn", "smtpFromAddress": "fancybot@repo.rtast.cn",
"admins": [ "admins": [
3458671395 3458671395
] ],
"enableAntiRevoke": true
} }