Skip to content

Commit 2996c86

Browse files
committed
cmd: add default prefix %
1 parent c0a5c56 commit 2996c86

File tree

5 files changed

+13
-9
lines changed

5 files changed

+13
-9
lines changed

anon/common.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# 通用数据结构
2-
VERSION = '0.3.4'
2+
VERSION = '0.3.5'
33

44

55
class AnonError(Exception):
@@ -54,3 +54,4 @@ class AnonExtraConfig(StructClass):
5454
log_file: str = '/dev/null'
5555
def_user: int = 114514191 # 默认用户,某些示例插件会使用
5656
def_group: int = 114514191 # 默认群组,某些示例插件会使用
57+
cmd_prefix: str = '%' # CommandManager 默认触发前缀

anon/plugin/builtins/cmd_helper.py

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ def __init__(self):
1111
self.brif = '获取可用帮助列表'
1212
self.usage = usage
1313
self.keywords = ['help', '帮助列表', '指令列表']
14+
self.prefix = self.extras.cmd_prefix
1415

1516
async def on_cmd(self, event: MessageEvent, args: list):
1617
pm = PluginManager()

anon/plugin/plugin.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import aiocron
55

6-
from ..common import SingletonObject, AnonError, StructClass
6+
from ..common import SingletonObject, AnonError, StructClass, AnonExtraConfig
77
from ..event import Event, MessageEvent
88
from ..logger import logger
99

@@ -38,12 +38,13 @@ def __init__(self, interested: List[Type[Event]] = None, **kwargs):
3838
super().__init__(**kwargs)
3939
if interested is not None:
4040
self.interested = interested
41+
self.extras = AnonExtraConfig()
4142

4243
def match_cmd(self, txt: str) -> bool:
4344
"""
4445
是否需要响应 CMD
4546
"""
46-
return any(map(lambda x: txt.startswith(x), self.keywords))
47+
return any(map(lambda x: txt.startswith(self.extras.cmd_prefix + x), self.keywords))
4748

4849
def nop(self):
4950
pass

docs/cmd_manager.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ async def date(event: MessageEvent, args):
2020
```
2121

2222
## 注意事项
23-
24-
1. 在匹配到对应命令后,`PluginManager` 会阻止消息向后优先级的插件传递,意味着每条匹配的消息最多只会有一个处理函数被调用
25-
2. 这意味着重名命令,总会用最先注册的插件处理
26-
3. on_cmd 若返回 True 值,则会自动回复此插件的 Usage,这在错误处理中应该有用。
27-
4. 如果你仍想让消息继续向下传递,则你应手动创建插件,例如:
23+
- 在匹配到对应命令后,`PluginManager` 会阻止消息向后优先级的插件传递,意味着每条匹配的消息最多只会有一个处理函数被调用。
24+
- 这意味着重名命令,总会用最先注册的插件处理
25+
- on_cmd 若返回 True 值,则会自动回复此插件的 Usage,这在错误处理中应该有用
26+
- 默认 `cmd` 消息的 `prefix``%`,如果你想更改,请在 anon 注册时,加入额外启动参数 `cmd_prefix`
27+
- 如果你仍想让消息继续向下传递,则你应手动创建插件,例如:
2828

2929
```python
3030
from anon.event import MessageEvent, Event

docs/extra_config.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ from anon import Bot
88
anon = Bot('127.0.0.1:5800', '1114514',
99
storage_dir='/var/run/anon',
1010
log_file='/dev/null',
11-
def_user=114514191)
11+
def_user=114514191,
12+
cmd_prefix='%')
1213
```
1314

1415
可选项顾名思义,所有可配置项参见 `anon.common.AnonExtraConfig`

0 commit comments

Comments
 (0)