Skip to content

Commit 6ebe175

Browse files
authored
docs: 更新文档 (#99)
1 parent c20e7bb commit 6ebe175

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

README.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,44 @@
1212
<img src="https://img.shields.io/github/license/AliceBotProject/alicebot" alt="license">
1313
</a>
1414
<a href="https://pypi.python.org/pypi/alicebot">
15-
<img src="https://img.shields.io/pypi/v/alicebot" alt="pypi">
15+
<img src="https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fgithub.com%2FAliceBotProject%2Falicebot%2Fraw%2Fmaster%2Fpyproject.toml" alt="pypi">
1616
</a>
1717
<a href="https://pypi.python.org/pypi/alicebot">
18-
<img src="https://img.shields.io/pypi/pyversions/alicebot" alt="pypi">
18+
<img src="https://img.shields.io/pypi/v/alicebot" alt="pypi">
1919
</a>
2020
<a href="https://github.com/AliceBotProject/alicebot/">
2121
<img src="https://img.shields.io/github/stars/AliceBotProject/alicebot?style=social" alt="github">
2222
</a>
2323
<br />
24+
<a href="https://github.com/psf/black">
25+
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="black">
26+
</a>
27+
<a href="https://github.com/astral-sh/ruff">
28+
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="ruff">
29+
</a>
30+
<a href="https://github.com/pylint-dev/pylint">
31+
<img src="https://img.shields.io/badge/linting-pylint-blue" alt="pylint">
32+
</a>
33+
<a href="https://github.com/Microsoft/pyright">
34+
<img src="https://img.shields.io/badge/type%20checker-pyright-yellowgreen" alt="pyright">
35+
</a>
36+
<a href="https://github.com/python/mypy">
37+
<img src="https://img.shields.io/badge/type%20checker-mypy-blue" alt="mypy">
38+
</a>
39+
<br />
40+
<a href="https://codecov.io/gh/AliceBotProject/alicebot">
41+
<img src="https://codecov.io/gh/AliceBotProject/alicebot/graph/badge.svg?token=3H6ZU6NN0J" alt="codecov">
42+
</a>
43+
<a href="https://github.com/AliceBotProject/alicebot/actions/workflows/test.yml">
44+
<img src="https://github.com/AliceBotProject/alicebot/actions/workflows/test.yml/badge.svg?branch=master&event=push" alt="github">
45+
</a>
46+
<a href="https://github.com/AliceBotProject/alicebot/actions/workflows/lint.yml">
47+
<img src="https://github.com/AliceBotProject/alicebot/actions/workflows/lint.yml/badge.svg?branch=master&event=push" alt="github">
48+
</a>
49+
<a href="https://github.com/AliceBotProject/alicebot/actions/workflows/docs.yml">
50+
<img src="https://github.com/AliceBotProject/alicebot/actions/workflows/docs.yml/badge.svg?branch=master&event=push" alt="github">
51+
</a>
52+
<br />
2453
<a href="https://jq.qq.com/?_wv=1027&k=ZbE3p6tq">
2554
<img src="https://img.shields.io/badge/QQ%E7%BE%A4-674802046-orange" alt="qq-group">
2655
</a>

docs/guide/advanced/generic-plugin.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,34 @@ class Count(Plugin[MessageEvent, int, Config], init_state=0, config=Config):
7272
```
7373

7474
强烈推荐在编写插件时使用泛型,这可以让你最大化地利用 AliceBot 的类型注解和编辑器的类型检查功能,将大多数的错误杜绝在开发阶段。
75+
76+
在 AliceBot 0.9 以上版本中,当你使用泛型类时,可以不必额外指定创建子类时的 `init_state``config` 参数,AliceBot 将自动从泛型参数中读取:
77+
78+
```python {12}
79+
from typing_extensions import Annotated
80+
81+
from alicebot import ConfigModel, Plugin
82+
from alicebot.adapter.cqhttp.event import MessageEvent
83+
84+
85+
class Config(ConfigModel):
86+
prefix: str = "count: "
87+
suffix: str = ""
88+
89+
90+
class Count(Plugin[MessageEvent, Annotated[int, 0], Config]):
91+
async def handle(self) -> None:
92+
self.state += 1
93+
await self.event.reply(
94+
self.config.prefix + str(self.state) + self.config.suffix
95+
)
96+
97+
async def rule(self) -> bool:
98+
return (
99+
isinstance(self.event, MessageEvent)
100+
and self.event.message.get_plain_text() == "count"
101+
)
102+
103+
```
104+
105+
但是在运行时读取泛型参数中的事件类型并自动判断以省略 `rule()` 方法中的类型判断尚不支持。

0 commit comments

Comments
 (0)