mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
词条正则回答中允许使用$1.$2..来获取()捕获组
This commit is contained in:
parent
47531f5790
commit
6eebb8229f
@ -331,6 +331,10 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能
|
|||||||
|
|
||||||
## 更新
|
## 更新
|
||||||
|
|
||||||
|
### 2023/4/5
|
||||||
|
|
||||||
|
* 词条正则回答中允许使用$1.$2..来获取()捕获组
|
||||||
|
|
||||||
### 2023/4/3
|
### 2023/4/3
|
||||||
|
|
||||||
* 修复帮助命令`-super`无效
|
* 修复帮助命令`-super`无效
|
||||||
|
|||||||
@ -210,15 +210,15 @@ class WordBank(Model):
|
|||||||
:param user_id: 用户id
|
:param user_id: 用户id
|
||||||
:param group_id: 群号
|
:param group_id: 群号
|
||||||
"""
|
"""
|
||||||
if query:
|
if not query:
|
||||||
answer = query.answer
|
|
||||||
else:
|
|
||||||
query = await cls.get_or_none(
|
query = await cls.get_or_none(
|
||||||
problem=problem,
|
problem=problem,
|
||||||
user_qq=user_id,
|
user_qq=user_id,
|
||||||
group_id=group_id,
|
group_id=group_id,
|
||||||
answer=answer,
|
answer=answer,
|
||||||
)
|
)
|
||||||
|
if not answer:
|
||||||
|
answer = query.answer # type: ignore
|
||||||
if query and query.placeholder:
|
if query and query.placeholder:
|
||||||
type_list = re.findall(rf"\[(.*?):placeholder_.*?]", str(answer))
|
type_list = re.findall(rf"\[(.*?):placeholder_.*?]", str(answer))
|
||||||
temp_answer = re.sub(rf"\[(.*?):placeholder_.*?]", "{}", str(answer))
|
temp_answer = re.sub(rf"\[(.*?):placeholder_.*?]", "{}", str(answer))
|
||||||
@ -299,13 +299,24 @@ class WordBank(Model):
|
|||||||
"""
|
"""
|
||||||
data_list = await cls.check_problem(event, problem, word_scope, word_type)
|
data_list = await cls.check_problem(event, problem, word_scope, word_type)
|
||||||
if data_list:
|
if data_list:
|
||||||
answer = random.choice(data_list)
|
random_answer = random.choice(data_list)
|
||||||
|
temp_answer = random_answer.answer
|
||||||
|
if random_answer.word_type == 2:
|
||||||
|
r = re.search(random_answer.problem, problem)
|
||||||
|
has_placeholder = re.search(rf"\$(\d)", random_answer.answer)
|
||||||
|
if r and r.groups() and has_placeholder:
|
||||||
|
pats = re.sub(r"\$(\d)", r"\\\1", random_answer.answer)
|
||||||
|
random_answer.answer = re.sub(random_answer.problem, pats, problem)
|
||||||
return (
|
return (
|
||||||
await cls._format2answer(
|
await cls._format2answer(
|
||||||
answer.problem, answer.answer, answer.user_qq, answer.group_id
|
random_answer.problem,
|
||||||
|
random_answer.answer,
|
||||||
|
random_answer.user_qq,
|
||||||
|
random_answer.group_id,
|
||||||
|
random_answer,
|
||||||
)
|
)
|
||||||
if answer.placeholder
|
if random_answer.placeholder
|
||||||
else answer.answer
|
else random_answer.answer
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@ -35,6 +35,7 @@ usage:
|
|||||||
问题回答支持的CQ:at, face, image
|
问题回答支持的CQ:at, face, image
|
||||||
查看词条命令:群聊时为 群词条+全局词条,私聊时为 私聊词条+全局词条
|
查看词条命令:群聊时为 群词条+全局词条,私聊时为 私聊词条+全局词条
|
||||||
添加词条正则:添加词条(模糊|正则|图片)?问\s*?(\S*\s?\S*)\s*?答\s?(\S*)
|
添加词条正则:添加词条(模糊|正则|图片)?问\s*?(\S*\s?\S*)\s*?答\s?(\S*)
|
||||||
|
正则问可以通过$1类推()捕获的组
|
||||||
指令:
|
指令:
|
||||||
添加词条 ?[模糊|正则|图片]问...答...:添加问答词条,可重复添加相同问题的不同回答
|
添加词条 ?[模糊|正则|图片]问...答...:添加问答词条,可重复添加相同问题的不同回答
|
||||||
删除词条 [问题/下标] ?[下标]:删除指定词条指定或全部回答
|
删除词条 [问题/下标] ?[下标]:删除指定词条指定或全部回答
|
||||||
@ -44,6 +45,7 @@ usage:
|
|||||||
[图片]...
|
[图片]...
|
||||||
示例:添加词条@萝莉 我来啦
|
示例:添加词条@萝莉 我来啦
|
||||||
示例:添加词条问谁是萝莉答是我
|
示例:添加词条问谁是萝莉答是我
|
||||||
|
示例:添加词条正则问那个(.+)是萝莉答没错$1是萝莉
|
||||||
示例:删除词条 谁是萝莉
|
示例:删除词条 谁是萝莉
|
||||||
示例:删除词条 谁是萝莉 0
|
示例:删除词条 谁是萝莉 0
|
||||||
示例:删除词条 id:0 1
|
示例:删除词条 id:0 1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user