Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
guimc233 committed Aug 5, 2024
1 parent a058e5c commit 5d6d1ce
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import ltd.guimc.lgzbot.PluginMain.adRegex
import ltd.guimc.lgzbot.PluginMain.disableImageCheck
import ltd.guimc.lgzbot.PluginMain.logger
import ltd.guimc.lgzbot.files.ModuleStateConfig
import ltd.guimc.lgzbot.listener.message.MessageFilter.historyMessage
import ltd.guimc.lgzbot.listener.message.MessageFilter.messagesHandled
import ltd.guimc.lgzbot.listener.message.MessageFilter.mute
import ltd.guimc.lgzbot.listener.message.MessageFilter.recalledMessage
Expand All @@ -33,6 +34,7 @@ import net.mamoe.mirai.message.data.MessageSource.Key.recall
import org.apache.commons.lang3.time.StopWatch
import java.io.ByteArrayInputStream
import java.io.File
import java.lang.Thread.sleep
import java.security.MessageDigest
import java.sql.Connection
import java.sql.DriverManager
Expand All @@ -45,6 +47,7 @@ object ImageOCRFilter {
lateinit var engine: InferenceEngine
lateinit var connection: Connection
private val lock = ReentrantLock()
var memberReviewing = mutableMapOf<Long, String>()
var supported: Boolean = false

suspend fun filter(e: GroupMessageEvent) {
Expand Down Expand Up @@ -76,7 +79,7 @@ object ImageOCRFilter {
return false
}

suspend fun filterImage(e: GroupMessageEvent, m: Image): Boolean {
private suspend fun filterImage(e: GroupMessageEvent, m: Image): Boolean {
var muted = false
try {
var content = sbc2dbcCase(recognizeAndStoreImage(m.cast<Image>().queryUrl()))
Expand All @@ -92,25 +95,60 @@ object ImageOCRFilter {
try {
recalledMessage++
e.message.recall()
if (predicted) {
if (predictedResult[1] - predictedResult[0] >= 0.22) {
e.group.mute(e.sender, "非法发言内容 (图片OCR识别) (模型证实)")
riskList.add(e.sender)
setVl(e.sender.id, 99.0)
} else if (predictedResult[1] - predictedResult[0] >= 0.12) {
e.sender.mute(120, "非法发言内容 (图片OCR识别) (模型猜测)")
} else {
e.sender.mute(60, "非法发言内容 (图片OCR识别)")
logger.info("开始 ${e.sender.id} 的追溯检查")
memberReviewing.put(e.sender.id, content)
}
muted = true
} catch (_: Exception) {
}
messagesHandled++
}

if (memberReviewing.containsKey(e.sender.id)) {
memberReviewing.put(
e.sender.id,
memberReviewing.get(e.sender.id) + "\n" + content.replace("\n", "")
)
if (memberReviewing.get(e.sender.id)?.let { RegexUtils.countLines(it) }!! >= 5) {
logger.info("结束 ${e.sender.id} 的追溯检查")
memberReviewing.remove(e.sender.id)
if (memberReviewing.get(e.sender.id)!!.length <= 50) {
memberReviewing.remove(e.sender.id)
return true
}
if (predictedResult[1] - predictedResult[0] >= 0.22) {
e.group.mute(e.sender, "追溯检查 (图片OCR) (模型复查)")
muted = true
recalledMessage++
e.message.recall()
try {
historyMessage[e.sender.id]?.forEach {
recalledMessage++
it.recall()
sleep(100)
}
} catch (_: Exception) {
}
historyMessage[e.sender.id]?.clear()
setVl(e.sender.id, .0)
messagesHandled++
}
}
}

// 拼音检查发言
if (!muted && riskList.indexOf(e.sender) != -1 && RegexUtils.matchRegexPinyin(adPinyinRegex, content)) {
try {
recalledMessage++
e.message.recall()
e.group.mute(e.sender, "非法发言内容 (图片OCR识别)")
e.group.mute(e.sender, "非法发言内容 (Risk) (图片OCR识别)")
muted = true
} catch (_: Exception) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ object MessageFilter {
private var repeaterFucker = mutableMapOf<Long, String>()
var historyMessage = mutableMapOf<Long, MutableList<MessageChain>>()
private var memberVl = mutableMapOf<Long, Double>()
private var memberReviewing = mutableMapOf<Long, String>()
var memberReviewing = mutableMapOf<Long, String>()

var messagesHandled = 0
var riskList = ArrayList<Member>()
Expand Down

0 comments on commit 5d6d1ce

Please sign in to comment.