mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2024-10-21 16:27:15 +08:00
新增关键词屏蔽
This commit is contained in:
parent
3a552e3ee6
commit
a6766f5b29
@ -330,7 +330,7 @@ upLearning = on_message(
|
|||||||
permission=permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
permission=permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
||||||
)
|
)
|
||||||
upLearning.__paimon_help__ = {
|
upLearning.__paimon_help__ = {
|
||||||
"usage": "@派蒙 <派蒙快学>",
|
"usage": "@派蒙 <多说点话>",
|
||||||
"introduce": "增强派蒙的学习能力",
|
"introduce": "增强派蒙的学习能力",
|
||||||
"priority": 98
|
"priority": 98
|
||||||
}
|
}
|
||||||
@ -355,7 +355,7 @@ downLearning = on_message(
|
|||||||
permission=permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
permission=permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
||||||
)
|
)
|
||||||
downLearning.__paimon_help__ = {
|
downLearning.__paimon_help__ = {
|
||||||
"usage": "@派蒙 <派蒙变笨>",
|
"usage": "@派蒙 <笨比派蒙>",
|
||||||
"introduce": "降低派蒙的学习能力",
|
"introduce": "降低派蒙的学习能力",
|
||||||
"priority": 99
|
"priority": 99
|
||||||
}
|
}
|
||||||
@ -370,3 +370,81 @@ async def _(bot: Bot, event: GroupMessageEvent):
|
|||||||
Chat.speak_threshold += 1
|
Chat.speak_threshold += 1
|
||||||
Chat.answer_threshold = Chat.speak_threshold
|
Chat.answer_threshold = Chat.speak_threshold
|
||||||
await downLearning.finish("知道了知道了,旅行者就是嫌派蒙吵了")
|
await downLearning.finish("知道了知道了,旅行者就是嫌派蒙吵了")
|
||||||
|
|
||||||
|
|
||||||
|
add_ban_word = on_message(
|
||||||
|
rule=to_me() & Rule(checkGroup) & keyword('添加禁用词', '不准说'),
|
||||||
|
priority=4,
|
||||||
|
block=True,
|
||||||
|
permission=permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
||||||
|
)
|
||||||
|
add_ban_word.__paimon_help__ = {
|
||||||
|
"usage": "@派蒙 <不准说> (关键词)",
|
||||||
|
"introduce": "禁用某些不想让派蒙说的关键词, 括号(英语)内部为关键词内容",
|
||||||
|
"priority": 99
|
||||||
|
}
|
||||||
|
@add_ban_word.handle()
|
||||||
|
async def _(bot: Bot, event: GroupMessageEvent):
|
||||||
|
msg = str(event.message)
|
||||||
|
msg = re.findall(re.compile(r"[(](.*)[)]", re.S), msg)
|
||||||
|
if msg:
|
||||||
|
msg = str(msg[0])
|
||||||
|
if '[' in msg:
|
||||||
|
msg = msg.replace('[', '[')
|
||||||
|
if ']' in msg:
|
||||||
|
msg = msg.replace(']', ']')
|
||||||
|
Chat.chat_word_ban.append(msg)
|
||||||
|
await add_ban_word.finish('派蒙不会说这个词了')
|
||||||
|
else:
|
||||||
|
await add_ban_word.finish('那你倒是告诉派蒙什么不能说啊😡😡😡')
|
||||||
|
|
||||||
|
del_ban_word = on_message(
|
||||||
|
rule=to_me() & Rule(checkGroup) & keyword('删除禁用词', '可以说'),
|
||||||
|
priority=4,
|
||||||
|
block=True,
|
||||||
|
permission = permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
||||||
|
)
|
||||||
|
del_ban_word.__paimon_help__ = {
|
||||||
|
"usage": "@派蒙 <可以说> (关键词)",
|
||||||
|
"introduce": "让派蒙可以说某些关键词, 括号(英语)内部为关键词内容",
|
||||||
|
"priority": 99
|
||||||
|
}
|
||||||
|
@del_ban_word.handle()
|
||||||
|
async def _(bot: Bot, event: GroupMessageEvent):
|
||||||
|
msg = str(event.message)
|
||||||
|
msg = re.findall(re.compile(r"[(](.*)[)]", re.S), msg)
|
||||||
|
if msg:
|
||||||
|
msg = str(msg[0])
|
||||||
|
if '[' in msg:
|
||||||
|
msg = msg.replace('[', '[')
|
||||||
|
if ']' in msg:
|
||||||
|
msg = msg.replace(']', ']')
|
||||||
|
answer = '怎么又允许派蒙说了捏?'
|
||||||
|
try:
|
||||||
|
Chat.chat_word_ban.remove(msg)
|
||||||
|
except:
|
||||||
|
answer = '没有ban这个词, 不要耍我'
|
||||||
|
await del_ban_word.finish(answer)
|
||||||
|
else:
|
||||||
|
await del_ban_word.finish('可以说你是🤡吗')
|
||||||
|
|
||||||
|
check_ban_word = on_message(
|
||||||
|
rule=to_me() & Rule(checkGroup) & keyword('查看禁用词', '哪些不准说'),
|
||||||
|
priority=4,
|
||||||
|
block=True,
|
||||||
|
permission = permission.GROUP_ADMIN | permission.GROUP_OWNER | SUPERUSER
|
||||||
|
)
|
||||||
|
check_ban_word.__paimon_help__ = {
|
||||||
|
"usage": "@派蒙 <查看禁用词>",
|
||||||
|
"introduce": "查看当前的禁用词内容",
|
||||||
|
"priority": 99
|
||||||
|
}
|
||||||
|
@check_ban_word.handle()
|
||||||
|
async def _(bot: Bot, event: GroupMessageEvent):
|
||||||
|
msg = '当前的违禁词: '
|
||||||
|
if Chat.chat_word_ban:
|
||||||
|
for word in Chat.chat_word_ban:
|
||||||
|
msg += str(word) + ' | '
|
||||||
|
await check_ban_word.finish(msg)
|
||||||
|
else:
|
||||||
|
await check_ban_word.finish('当前还没有违禁词哦')
|
||||||
|
@ -105,6 +105,8 @@ class Chat:
|
|||||||
|
|
||||||
learningGroup = config.paimon_chat_group# 机器学习群组
|
learningGroup = config.paimon_chat_group# 机器学习群组
|
||||||
|
|
||||||
|
chat_word_ban = config.paimon_chat_word_ban# 禁用关键词
|
||||||
|
|
||||||
def __init__(self, data: Union[ChatData, GroupMessageEvent, PrivateMessageEvent]):
|
def __init__(self, data: Union[ChatData, GroupMessageEvent, PrivateMessageEvent]):
|
||||||
|
|
||||||
if isinstance(data, ChatData):
|
if isinstance(data, ChatData):
|
||||||
@ -180,7 +182,7 @@ class Chat:
|
|||||||
# # 不回复太短的对话,大部分是“?”、“草”
|
# # 不回复太短的对话,大部分是“?”、“草”
|
||||||
# if self.chat_data.is_plain_text and len(self.chat_data.plain_text) < 2:
|
# if self.chat_data.is_plain_text and len(self.chat_data.plain_text) < 2:
|
||||||
# return None
|
# return None
|
||||||
|
|
||||||
if len(group_bot_replies):
|
if len(group_bot_replies):
|
||||||
latest_reply = group_bot_replies[-1]
|
latest_reply = group_bot_replies[-1]
|
||||||
# 限制发音频率,最多 6 秒一次
|
# 限制发音频率,最多 6 秒一次
|
||||||
@ -196,6 +198,10 @@ class Chat:
|
|||||||
results = self._context_find()
|
results = self._context_find()
|
||||||
|
|
||||||
if results:
|
if results:
|
||||||
|
# 判断是否有被禁用的关键词
|
||||||
|
for word in self.chat_word_ban:
|
||||||
|
if word in results[0][0]:
|
||||||
|
return None
|
||||||
raw_message = self.chat_data.raw_message
|
raw_message = self.chat_data.raw_message
|
||||||
keywords = self.chat_data.keywords
|
keywords = self.chat_data.keywords
|
||||||
with Chat._reply_lock:
|
with Chat._reply_lock:
|
||||||
|
@ -65,7 +65,10 @@ class PluginConfig(BaseModel):
|
|||||||
paimon_speak_poke_probability: float = 0.5
|
paimon_speak_poke_probability: float = 0.5
|
||||||
# 连续主动说话最多几句话
|
# 连续主动说话最多几句话
|
||||||
paimon_speak_continuously_max_len: int = 3
|
paimon_speak_continuously_max_len: int = 3
|
||||||
|
# 禁用词 (如果需要禁用@某人的话格式为 '[CQ:at,qq=(这个人的QQ号)]'
|
||||||
|
# 如: paimon_chat_word_ban: List[str] = ['[CQ:at,qq=12345678]'])
|
||||||
|
# 如需禁用全部的@可以填写为 '[CQ:at' , 'at' 等等
|
||||||
|
paimon_chat_word_ban: List[str] = []
|
||||||
# 派蒙收到好友申请或群邀请时是否向超级管理员发通知
|
# 派蒙收到好友申请或群邀请时是否向超级管理员发通知
|
||||||
paimon_request_remind: bool = True
|
paimon_request_remind: bool = True
|
||||||
# 是否自动通过好友请求
|
# 是否自动通过好友请求
|
||||||
|
Loading…
Reference in New Issue
Block a user