mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-31 14:47:13 +00:00
feat: 支持忽略指定格式的消息 (#165)
This commit is contained in:
@@ -83,6 +83,18 @@ response_rules = {
|
|||||||
"regexp": [] # "为什么.*", "怎么?样.*", "怎么.*", "如何.*", "[Hh]ow to.*", "[Ww]hy not.*", "[Ww]hat is.*", ".*怎么办", ".*咋办"
|
"regexp": [] # "为什么.*", "怎么?样.*", "怎么.*", "如何.*", "[Hh]ow to.*", "[Ww]hy not.*", "[Ww]hat is.*", ".*怎么办", ".*咋办"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 消息忽略规则
|
||||||
|
# 适用于私聊及群聊
|
||||||
|
# 符合此规则的消息将不会被响应
|
||||||
|
# 支持消息前缀匹配及正则表达式匹配
|
||||||
|
# 此设置优先级高于response_rules
|
||||||
|
# 用以过滤mirai等其他层级的指令
|
||||||
|
# @see https://github.com/RockChinQ/QChatGPT/issues/165
|
||||||
|
ignore_rules = {
|
||||||
|
"prefix": ["/"],
|
||||||
|
"regexp": []
|
||||||
|
}
|
||||||
|
|
||||||
# 敏感词过滤开关,以同样数量的*代替敏感词回复
|
# 敏感词过滤开关,以同样数量的*代替敏感词回复
|
||||||
# 请在sensitive.json中添加敏感词
|
# 请在sensitive.json中添加敏感词
|
||||||
sensitive_word_filter = True
|
sensitive_word_filter = True
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def ignore(msg: str) -> bool:
|
||||||
|
"""检查消息是否应该被忽略"""
|
||||||
|
import config
|
||||||
|
|
||||||
|
if not hasattr(config, 'ignore_rules'):
|
||||||
|
return False
|
||||||
|
|
||||||
|
if 'prefix' in config.ignore_rules:
|
||||||
|
for rule in config.ignore_rules['prefix']:
|
||||||
|
if msg.startswith(rule):
|
||||||
|
return True
|
||||||
|
|
||||||
|
if 'regexp' in config.ignore_rules:
|
||||||
|
for rule in config.ignore_rules['regexp']:
|
||||||
|
if re.search(rule, msg):
|
||||||
|
return True
|
||||||
@@ -22,6 +22,7 @@ import pkg.qqbot.command
|
|||||||
|
|
||||||
import pkg.plugin.host as plugin_host
|
import pkg.plugin.host as plugin_host
|
||||||
import pkg.plugin.models as plugin_models
|
import pkg.plugin.models as plugin_models
|
||||||
|
import pkg.qqbot.ignore as ignore
|
||||||
|
|
||||||
processing = []
|
processing = []
|
||||||
|
|
||||||
@@ -44,6 +45,10 @@ def process_message(launcher_type: str, launcher_id: int, text_message: str, mes
|
|||||||
logging.info("根据禁用列表忽略群{}的消息".format(launcher_id))
|
logging.info("根据禁用列表忽略群{}的消息".format(launcher_id))
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
if ignore.ignore(text_message):
|
||||||
|
logging.info("根据忽略规则忽略消息: {}".format(text_message))
|
||||||
|
return []
|
||||||
|
|
||||||
# 检查是否被禁言
|
# 检查是否被禁言
|
||||||
if launcher_type == 'group':
|
if launcher_type == 'group':
|
||||||
result = mgr.bot.member_info(target=launcher_id, member_id=mgr.bot.qq).get()
|
result = mgr.bot.member_info(target=launcher_id, member_id=mgr.bot.qq).get()
|
||||||
|
|||||||
Reference in New Issue
Block a user