resolve SengokuCola/MaiMBot#167 根据正则表达式过滤消息

This commit is contained in:
ChangingSelf
2025-03-10 22:52:14 +08:00
parent ef561b5cf0
commit 1b611ecce5
3 changed files with 20 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import re
import time import time
from random import random from random import random
@@ -75,6 +76,14 @@ class ChatBot:
logger.info(f"[过滤词识别]消息中含有{word}filtered") logger.info(f"[过滤词识别]消息中含有{word}filtered")
return return
# 正则表达式过滤
for pattern in global_config.ban_words_regex:
if re.search(pattern, message.detailed_plain_text):
logger.info(
f"[{message.group_name}]{message.user_nickname}:{message.processed_plain_text}")
logger.info(f"[正则表达式过滤]消息匹配到{pattern}filtered")
return
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(message.time)) current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(message.time))
# topic=await topic_identifier.identify_topic_llm(message.processed_plain_text) # topic=await topic_identifier.identify_topic_llm(message.processed_plain_text)

View File

@@ -43,6 +43,7 @@ class BotConfig:
EMOJI_CHECK_PROMPT: str = "符合公序良俗" # 表情包过滤要求 EMOJI_CHECK_PROMPT: str = "符合公序良俗" # 表情包过滤要求
ban_words = set() ban_words = set()
ban_words_regex = set()
max_response_length: int = 1024 # 最大回复长度 max_response_length: int = 1024 # 最大回复长度
@@ -277,6 +278,9 @@ class BotConfig:
config.response_interested_rate_amplifier = msg_config.get("response_interested_rate_amplifier", config.response_interested_rate_amplifier = msg_config.get("response_interested_rate_amplifier",
config.response_interested_rate_amplifier) config.response_interested_rate_amplifier)
config.down_frequency_rate = msg_config.get("down_frequency_rate", config.down_frequency_rate) config.down_frequency_rate = msg_config.get("down_frequency_rate", config.down_frequency_rate)
if config.INNER_VERSION in SpecifierSet(">=0.0.5"):
config.ban_words_regex = msg_config.get("ban_words_regex", config.ban_words_regex)
def memory(parent: dict): def memory(parent: dict):
memory_config = parent["memory"] memory_config = parent["memory"]

View File

@@ -1,5 +1,5 @@
[inner] [inner]
version = "0.0.4" version = "0.0.5"
#如果你想要修改配置文件请在修改后将version的值进行变更 #如果你想要修改配置文件请在修改后将version的值进行变更
#如果新增项目请在BotConfig类下新增相应的变量 #如果新增项目请在BotConfig类下新增相应的变量
@@ -40,6 +40,12 @@ ban_words = [
# "403","张三" # "403","张三"
] ]
ban_words_regex = [
# 需要过滤的消息匹配的正则表达式,匹配到的消息将被过滤,若不了解正则表达式请勿修改
#"https?://[^\\s]+", # 匹配https链接
#"\\d{4}-\\d{2}-\\d{2}", # 匹配日期
]
[emoji] [emoji]
check_interval = 120 # 检查表情包的时间间隔 check_interval = 120 # 检查表情包的时间间隔
register_interval = 10 # 注册表情包的时间间隔 register_interval = 10 # 注册表情包的时间间隔