<p align="center">
<a href="https://nonebot.dev/docs/next/best-practice/alconna/"><img src="https://v2.nonebot.dev/logo.png" width="200" height="200" alt="nonebot"></a>
</p>
<div align="center">
# NoneBot Plugin Alconna
_✨ Alconna Usage For NoneBot2 ✨_
_✨ All Receive in One, And One Send All ✨_
</div>
<p align="center">
<a href="https://raw.githubusercontent.com/nonebot/plugin-alconna/master/LICENSE">
<img src="https://img.shields.io/github/license/nonebot/plugin-alconna.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-alconna">
<img src="https://img.shields.io/pypi/v/nonebot-plugin-alconna.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">
</p>
该插件提供了 [Alconna](https://github.com/ArcletProject/Alconna) 的 [NoneBot2](https://github.com/nonebot/nonebot2) 适配版本与工具
## 特性
- 完整的 Alconna 特性支持
- 自动回复命令帮助信息选项
- 跨平台的接收与发送消息(被动+主动)
- 对**20种适配器**的收发消息支持
- 比 `got-reject` 更强大的补全会话机制
- 多种内置插件 (echo,help,lang)
- i18n 支持
## 讨论
QQ 交流群: [链接](https://jq.qq.com/?_wv=1027&k=PUPOnCSH)
## 使用方法
NoneBot 文档: [📖这里](https://nonebot.dev/docs/next/best-practice/alconna/)
仓库内介绍: [📦这里](/docs.md)
## 跨平台消息
```python
from nonebot import get_driver
from nonebot_plugin_alconna import Target, UniMessage, SupportScope, on_alconna
driver = get_driver()
test = on_alconna("test")
@test.handle()
async def handle_test():
r = await UniMessage.image(path="path/to/img").send()
if r.recallable:
await r.reply("图片已发送,10秒后撤回")
await r.recall(delay=10, index=0)
@test.got("foo", prompt=UniMessage.template("{:Reply($message_id)}请输入图片"))
async def handle_foo():
await test.send("图片已收到")
@driver.on_startup
async def _():
await Target.group("123456789", SupportScope.qq_client).send(UniMessage.image(path="test.png"))
```
## 支持情况
### 支持的适配器
| 协议名称 | 路径 |
|---------------------------------------------------------------------|--------------------------------------|
| [OneBot 协议](https://onebot.dev/) | adapters.onebot11, adapters.onebot12 |
| [Telegram](https://core.telegram.org/bots/api) | adapters.telegram |
| [飞书](https://open.feishu.cn/document/home/index) | adapters.feishu |
| [GitHub](https://docs.github.com/en/developers/apps) | adapters.github |
| [QQ bot](https://github.com/nonebot/adapter-qq) | adapters.qq |
| [钉钉](https://open.dingtalk.com/document/) | adapters.ding |
| [Console](https://github.com/nonebot/adapter-console) | adapters.console |
| [开黑啦](https://developer.kookapp.cn/) | adapters.kook |
| [Mirai](https://docs.mirai.mamoe.net/mirai-api-http/) | adapters.mirai |
| [Ntchat](https://github.com/JustUndertaker/adapter-ntchat) | adapters.ntchat |
| [MineCraft](https://github.com/17TheWord/nonebot-adapter-minecraft) | adapters.minecraft |
| [Walle-Q](https://github.com/onebot-walle/nonebot_adapter_walleq) | adapters.onebot12 |
| [Discord](https://github.com/nonebot/adapter-discord) | adapters.discord |
| [Red 协议](https://github.com/nonebot/adapter-red) | adapters.red |
| [Satori](https://github.com/nonebot/adapter-satori) | adapters.satori |
| [Dodo IM](https://github.com/nonebot/adapter-dodo) | adapters.dodo |
| [Kritor](https://github.com/nonebot/adapter-kritor) | adapters.kritor |
| [Tailchat](https://github.com/eya46/nonebot-adapter-tailchat) | adapters.tailchat |
| [Mail](https://github.com/mobyw/nonebot-adapter-mail) | adapters.mail |
### 支持的消息元素
- ✅: 支持(接收和发送)
- ⬇️: 支持接收
- ⬆️: 支持发送
- ➖: 情况不存在
- ❌: 插件未支持
- 🚫: 协议未支持
- (🚧): 计划中或部分支持或为实验性支持
> [!WARNING]
> 斜体的协议名称意味着其协议或其适配器长时间未维护或已失效
| 元素\适配器 | OneBot V11 | OneBot V12 | Telegram | 飞书 | Github | QQ-API | _钉钉_ | Console | 开黑啦 | Mirai | _Ntchat_ | MineCraft | Discord | _Red_ | Satori | Dodo IM | Kritor | Tailchat | Mail |
|------------------|------------|------------|----------|----|--------|--------|------|---------|-----|-------|----------|-----------|---------|-------|--------|---------|--------|----------|------|
| 文本 Text | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 样式文本 Styled Text | 🚫 | 🚫 | ✅ | 🚫 | ✅ | ✅ | ❌ | ✅ | ✅ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ✅ |
| 提及用户 At(user) | ✅ | ✅ | ✅ | ✅ | ⬆️ | ✅ | ✅ | 🚫 | ✅ | ✅ | ❌ | 🚫 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬆️ |
| 提及角色 At(role) | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | 🚫 | ✅ | 🚫 | ✅ | ✅ | 🚫 | 🚫 | 🚫 |
| 提及频道 At(channel) | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | 🚫 | ✅ | 🚫 | ✅ | ✅ | 🚫 | ✅ | ⬆️ |
| 提交全体 AtAll | ✅ | ✅ | 🚫 | ✅ | 🚫 | ✅ | ✅ | 🚫 | ✅ | ✅ | 🚫 | 🚫 | ✅ | ✅ | ✅ | ✅ | ✅ | 🚫 | 🚫 |
| 表情 Emoji | ✅ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | 🚫 | ✅ | ✅ | ✅ | 🚫 | 🚫 | ✅ | ✅ | 🚫 | 🚫 | ✅ | ✅ | 🚫 |
| 图片 Image | ✅ | ✅ | ✅ | ✅ | ⬆️ | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 音频 Audio | ⬆️ | ✅ | ✅ | ✅ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ⬆️ | ⬇️ | 🚫 | ⬆️ | ⬆️ | ✅ | 🚫 | ⬆️ | 🚫 | ✅ |
| 语音 Voice | ✅ | ✅ | ✅ | ⬆️ | 🚫 | ⬆️ | 🚫 | 🚫 | ⬆️ | ✅ | ⬇️ | 🚫 | ⬆️ | ✅ | ⬆️ | 🚫 | ✅ | 🚫 | ✅ |
| 视频 Video | ✅ | ✅ | ✅ | ✅ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ✅ | ✅ | 🚫 | ⬆️ | ✅ | ✅ | ✅ | ✅ | 🚫 | ✅ |
| 文件 File | ⬇️,⬆️(🚧) | ✅ | ✅ | ✅ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ✅ | ✅ | 🚫 | ⬆️ | ✅ | ✅ | ⬇️ | ⬇️ | ✅ | ✅ |
| 回复 Reply | ✅ | ✅ | ✅ | ✅ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 引用转发 Reference | ✅ | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | 🚫 | ✅ | ✅ | 🚫 | ✅ | 🚫 | 🚫 |
| 超级消息 Hyper | ✅ | 🚫 | 🚫 | ⬇️ | 🚫 | ✅ | 🚫 | 🚫 | ✅ | ✅ | ✅ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 |
| 按钮 Button | 🚫 | 🚫 | ⬆️ | 🚫 | 🚫 | ✅ | 🚫 | 🚫 | 🚫 | 🚫 | 🚫 | ⬆️ | ✅ | 🚫 | ✅ | 🚫 | ✅ | 🚫 | 🚫 |
| 其余 Other | ✅ | ✅ | ✅ | ✅ | ➖ | ✅ | ✅ | ➖ | ✅ | ✅ | ✅ | ➖ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ➖ |
## 配置项
- ALCONNA_AUTO_SEND_OUTPUT : 是否全局启用输出信息自动发送
- ALCONNA_USE_COMMAND_START : 是否将 COMMAND_START 作为全局命令前缀
- ALCONNA_GLOBAL_COMPLETION: 全局的补全会话配置 (不代表全局启用补全会话)
- ALCONNA_USE_ORIGIN: 是否全局使用原始消息 (即未经过 to_me 等处理的)
- ALCONNA_USE_PARAM: 是否使用特制的 Param 提供更好的依赖注入
- ALCONNA_USE_CMD_SEP: 是否将 COMMAND_SEP 作为全局命令分隔符
- ALCONNA_GLOBAL_EXTENSIONS: 全局加载的扩展, 路径以 . 分隔, 如 foo.bar.baz:DemoExtension
- ALCONNA_CONTEXT_STYLE: 全局命令上下文插值的风格,None 为关闭,bracket 为 {...},parentheses 为 $(...)
- ALCONNA_ENABLE_SAA_PATCH: 是否启用 SAA 补丁
- ALCONNA_APPLY_FILEHOST: 是否启用文件托管
- ALCONNA_APPLY_FETCH_TARGETS: 是否启动时拉取一次发送对象列表
- ALCONNA_BUILTIN_PLUGINS: 需要加载的alc内置插件集合
- ALCONNA_CONFLICT_RESOLVER: 命令冲突解决策略,default 为保留两个命令,raise 为抛出异常,ignore 为忽略新命令,replace 为替换旧命令
- ALCONNA_RESPONSE_SELF: 是否允许响应自己的消息
## 插件示例
[demo bot](./example/plugins/demo.py)
```python
# echo 插件
from nonebot_plugin_alconna import UniMessage, Command
@Command("echo <...content>").build(auto_send_output=True).handle()
async def _(content: UniMessage):
await content.finish()
```
Raw data
{
"_id": null,
"home_page": null,
"name": "nonebot-plugin-alconna",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "command, alconna, nonebot",
"author": null,
"author_email": "RF-Tar-Railt <rf_tar_railt@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/65/90/e904a322315b414e2f9c8cfd158e47edc57b4e1cb7fd4b57686f061f4e6f/nonebot_plugin_alconna-0.54.1.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a href=\"https://nonebot.dev/docs/next/best-practice/alconna/\"><img src=\"https://v2.nonebot.dev/logo.png\" width=\"200\" height=\"200\" alt=\"nonebot\"></a>\n</p>\n\n<div align=\"center\">\n\n# NoneBot Plugin Alconna\n\n_\u2728 Alconna Usage For NoneBot2 \u2728_\n\n_\u2728 All Receive in One, And One Send All \u2728_\n\n</div>\n\n<p align=\"center\">\n <a href=\"https://raw.githubusercontent.com/nonebot/plugin-alconna/master/LICENSE\">\n <img src=\"https://img.shields.io/github/license/nonebot/plugin-alconna.svg\" alt=\"license\">\n </a>\n <a href=\"https://pypi.python.org/pypi/nonebot-plugin-alconna\">\n <img src=\"https://img.shields.io/pypi/v/nonebot-plugin-alconna.svg\" alt=\"pypi\">\n </a>\n <img src=\"https://img.shields.io/badge/python-3.9+-blue.svg\" alt=\"python\">\n</p>\n\n\u8be5\u63d2\u4ef6\u63d0\u4f9b\u4e86 [Alconna](https://github.com/ArcletProject/Alconna) \u7684 [NoneBot2](https://github.com/nonebot/nonebot2) \u9002\u914d\u7248\u672c\u4e0e\u5de5\u5177\n\n## \u7279\u6027\n\n- \u5b8c\u6574\u7684 Alconna \u7279\u6027\u652f\u6301\n- \u81ea\u52a8\u56de\u590d\u547d\u4ee4\u5e2e\u52a9\u4fe1\u606f\u9009\u9879\n- \u8de8\u5e73\u53f0\u7684\u63a5\u6536\u4e0e\u53d1\u9001\u6d88\u606f(\u88ab\u52a8+\u4e3b\u52a8)\n- \u5bf9**20\u79cd\u9002\u914d\u5668**\u7684\u6536\u53d1\u6d88\u606f\u652f\u6301\n- \u6bd4 `got-reject` \u66f4\u5f3a\u5927\u7684\u8865\u5168\u4f1a\u8bdd\u673a\u5236\n- \u591a\u79cd\u5185\u7f6e\u63d2\u4ef6 (echo\uff0chelp\uff0clang)\n- i18n \u652f\u6301\n\n## \u8ba8\u8bba\n\nQQ \u4ea4\u6d41\u7fa4: [\u94fe\u63a5](https://jq.qq.com/?_wv=1027&k=PUPOnCSH)\n\n\n## \u4f7f\u7528\u65b9\u6cd5\n\nNoneBot \u6587\u6863: [\ud83d\udcd6\u8fd9\u91cc](https://nonebot.dev/docs/next/best-practice/alconna/)\n\u4ed3\u5e93\u5185\u4ecb\u7ecd: [\ud83d\udce6\u8fd9\u91cc](/docs.md)\n\n## \u8de8\u5e73\u53f0\u6d88\u606f\n\n```python\nfrom nonebot import get_driver\nfrom nonebot_plugin_alconna import Target, UniMessage, SupportScope, on_alconna\n\ndriver = get_driver()\ntest = on_alconna(\"test\")\n\n@test.handle()\nasync def handle_test():\n r = await UniMessage.image(path=\"path/to/img\").send()\n if r.recallable:\n await r.reply(\"\u56fe\u7247\u5df2\u53d1\u9001\uff0c10\u79d2\u540e\u64a4\u56de\")\n await r.recall(delay=10, index=0)\n\n@test.got(\"foo\", prompt=UniMessage.template(\"{:Reply($message_id)}\u8bf7\u8f93\u5165\u56fe\u7247\"))\nasync def handle_foo():\n await test.send(\"\u56fe\u7247\u5df2\u6536\u5230\")\n\n@driver.on_startup\nasync def _():\n await Target.group(\"123456789\", SupportScope.qq_client).send(UniMessage.image(path=\"test.png\"))\n```\n\n## \u652f\u6301\u60c5\u51b5\n\n### \u652f\u6301\u7684\u9002\u914d\u5668\n\n| \u534f\u8bae\u540d\u79f0 | \u8def\u5f84 |\n|---------------------------------------------------------------------|--------------------------------------|\n| [OneBot \u534f\u8bae](https://onebot.dev/) | adapters.onebot11, adapters.onebot12 |\n| [Telegram](https://core.telegram.org/bots/api) | adapters.telegram |\n| [\u98de\u4e66](https://open.feishu.cn/document/home/index) | adapters.feishu |\n| [GitHub](https://docs.github.com/en/developers/apps) | adapters.github |\n| [QQ bot](https://github.com/nonebot/adapter-qq) | adapters.qq |\n| [\u9489\u9489](https://open.dingtalk.com/document/) | adapters.ding |\n| [Console](https://github.com/nonebot/adapter-console) | adapters.console |\n| [\u5f00\u9ed1\u5566](https://developer.kookapp.cn/) | adapters.kook |\n| [Mirai](https://docs.mirai.mamoe.net/mirai-api-http/) | adapters.mirai |\n| [Ntchat](https://github.com/JustUndertaker/adapter-ntchat) | adapters.ntchat |\n| [MineCraft](https://github.com/17TheWord/nonebot-adapter-minecraft) | adapters.minecraft |\n| [Walle-Q](https://github.com/onebot-walle/nonebot_adapter_walleq) | adapters.onebot12 |\n| [Discord](https://github.com/nonebot/adapter-discord) | adapters.discord |\n| [Red \u534f\u8bae](https://github.com/nonebot/adapter-red) | adapters.red |\n| [Satori](https://github.com/nonebot/adapter-satori) | adapters.satori |\n| [Dodo IM](https://github.com/nonebot/adapter-dodo) | adapters.dodo |\n| [Kritor](https://github.com/nonebot/adapter-kritor) | adapters.kritor |\n| [Tailchat](https://github.com/eya46/nonebot-adapter-tailchat) | adapters.tailchat |\n| [Mail](https://github.com/mobyw/nonebot-adapter-mail) | adapters.mail |\n\n### \u652f\u6301\u7684\u6d88\u606f\u5143\u7d20\n\n- \u2705: \u652f\u6301(\u63a5\u6536\u548c\u53d1\u9001)\n- \u2b07\ufe0f: \u652f\u6301\u63a5\u6536\n- \u2b06\ufe0f: \u652f\u6301\u53d1\u9001\n- \u2796: \u60c5\u51b5\u4e0d\u5b58\u5728\n- \u274c: \u63d2\u4ef6\u672a\u652f\u6301\n- \ud83d\udeab: \u534f\u8bae\u672a\u652f\u6301\n- (\ud83d\udea7): \u8ba1\u5212\u4e2d\u6216\u90e8\u5206\u652f\u6301\u6216\u4e3a\u5b9e\u9a8c\u6027\u652f\u6301\n\n> [!WARNING]\n> \u659c\u4f53\u7684\u534f\u8bae\u540d\u79f0\u610f\u5473\u7740\u5176\u534f\u8bae\u6216\u5176\u9002\u914d\u5668\u957f\u65f6\u95f4\u672a\u7ef4\u62a4\u6216\u5df2\u5931\u6548\n\n| \u5143\u7d20\\\u9002\u914d\u5668 | OneBot V11 | OneBot V12 | Telegram | \u98de\u4e66 | Github | QQ-API | _\u9489\u9489_ | Console | \u5f00\u9ed1\u5566 | Mirai | _Ntchat_ | MineCraft | Discord | _Red_ | Satori | Dodo IM | Kritor | Tailchat | Mail |\n|------------------|------------|------------|----------|----|--------|--------|------|---------|-----|-------|----------|-----------|---------|-------|--------|---------|--------|----------|------|\n| \u6587\u672c Text | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| \u6837\u5f0f\u6587\u672c Styled Text | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \u274c | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \n| \u63d0\u53ca\u7528\u6237 At(user) | \u2705 | \u2705 | \u2705 | \u2705 | \u2b06\ufe0f | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \u274c | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2b06\ufe0f |\n| \u63d0\u53ca\u89d2\u8272 At(role) | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab |\n| \u63d0\u53ca\u9891\u9053 At(channel) | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \u2b06\ufe0f |\n| \u63d0\u4ea4\u5168\u4f53 AtAll | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \n| \u8868\u60c5 Emoji | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab |\n| \u56fe\u7247 Image | \u2705 | \u2705 | \u2705 | \u2705 | \u2b06\ufe0f | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \u274c | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| \u97f3\u9891 Audio | \u2b06\ufe0f | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2b06\ufe0f | \u2b07\ufe0f | \ud83d\udeab | \u2b06\ufe0f | \u2b06\ufe0f | \u2705 | \ud83d\udeab | \u2b06\ufe0f | \ud83d\udeab | \u2705 |\n| \u8bed\u97f3 Voice | \u2705 | \u2705 | \u2705 | \u2b06\ufe0f | \ud83d\udeab | \u2b06\ufe0f | \ud83d\udeab | \ud83d\udeab | \u2b06\ufe0f | \u2705 | \u2b07\ufe0f | \ud83d\udeab | \u2b06\ufe0f | \u2705 | \u2b06\ufe0f | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 |\n| \u89c6\u9891 Video | \u2705 | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2b06\ufe0f | \u2705 | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 |\n| \u6587\u4ef6 File | \u2b07\ufe0f,\u2b06\ufe0f(\ud83d\udea7) | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2b06\ufe0f | \u2705 | \u2705 | \u2b07\ufe0f | \u2b07\ufe0f | \u2705 | \u2705 |\n| \u56de\u590d Reply | \u2705 | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| \u5f15\u7528\u8f6c\u53d1 Reference | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab |\n| \u8d85\u7ea7\u6d88\u606f Hyper | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2b07\ufe0f | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \u2705 | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab |\n| \u6309\u94ae Button | \ud83d\udeab | \ud83d\udeab | \u2b06\ufe0f | \ud83d\udeab | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \ud83d\udeab | \u2b06\ufe0f | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \u2705 | \ud83d\udeab | \ud83d\udeab |\n| \u5176\u4f59 Other | \u2705 | \u2705 | \u2705 | \u2705 | \u2796 | \u2705 | \u2705 | \u2796 | \u2705 | \u2705 | \u2705 | \u2796 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2796 |\n\n\n## \u914d\u7f6e\u9879\n\n- ALCONNA_AUTO_SEND_OUTPUT : \u662f\u5426\u5168\u5c40\u542f\u7528\u8f93\u51fa\u4fe1\u606f\u81ea\u52a8\u53d1\u9001\n- ALCONNA_USE_COMMAND_START : \u662f\u5426\u5c06 COMMAND_START \u4f5c\u4e3a\u5168\u5c40\u547d\u4ee4\u524d\u7f00\n- ALCONNA_GLOBAL_COMPLETION: \u5168\u5c40\u7684\u8865\u5168\u4f1a\u8bdd\u914d\u7f6e (\u4e0d\u4ee3\u8868\u5168\u5c40\u542f\u7528\u8865\u5168\u4f1a\u8bdd)\n- ALCONNA_USE_ORIGIN: \u662f\u5426\u5168\u5c40\u4f7f\u7528\u539f\u59cb\u6d88\u606f (\u5373\u672a\u7ecf\u8fc7 to_me \u7b49\u5904\u7406\u7684)\n- ALCONNA_USE_PARAM: \u662f\u5426\u4f7f\u7528\u7279\u5236\u7684 Param \u63d0\u4f9b\u66f4\u597d\u7684\u4f9d\u8d56\u6ce8\u5165\n- ALCONNA_USE_CMD_SEP: \u662f\u5426\u5c06 COMMAND_SEP \u4f5c\u4e3a\u5168\u5c40\u547d\u4ee4\u5206\u9694\u7b26\n- ALCONNA_GLOBAL_EXTENSIONS: \u5168\u5c40\u52a0\u8f7d\u7684\u6269\u5c55, \u8def\u5f84\u4ee5 . \u5206\u9694, \u5982 foo.bar.baz:DemoExtension\n- ALCONNA_CONTEXT_STYLE: \u5168\u5c40\u547d\u4ee4\u4e0a\u4e0b\u6587\u63d2\u503c\u7684\u98ce\u683c\uff0cNone \u4e3a\u5173\u95ed\uff0cbracket \u4e3a {...}\uff0cparentheses \u4e3a $(...)\n- ALCONNA_ENABLE_SAA_PATCH: \u662f\u5426\u542f\u7528 SAA \u8865\u4e01\n- ALCONNA_APPLY_FILEHOST: \u662f\u5426\u542f\u7528\u6587\u4ef6\u6258\u7ba1\n- ALCONNA_APPLY_FETCH_TARGETS: \u662f\u5426\u542f\u52a8\u65f6\u62c9\u53d6\u4e00\u6b21\u53d1\u9001\u5bf9\u8c61\u5217\u8868\n- ALCONNA_BUILTIN_PLUGINS: \u9700\u8981\u52a0\u8f7d\u7684alc\u5185\u7f6e\u63d2\u4ef6\u96c6\u5408\n- ALCONNA_CONFLICT_RESOLVER: \u547d\u4ee4\u51b2\u7a81\u89e3\u51b3\u7b56\u7565\uff0cdefault \u4e3a\u4fdd\u7559\u4e24\u4e2a\u547d\u4ee4\uff0craise \u4e3a\u629b\u51fa\u5f02\u5e38\uff0cignore \u4e3a\u5ffd\u7565\u65b0\u547d\u4ee4\uff0creplace \u4e3a\u66ff\u6362\u65e7\u547d\u4ee4\n- ALCONNA_RESPONSE_SELF: \u662f\u5426\u5141\u8bb8\u54cd\u5e94\u81ea\u5df1\u7684\u6d88\u606f\n\n## \u63d2\u4ef6\u793a\u4f8b\n\n[demo bot](./example/plugins/demo.py)\n\n```python\n# echo \u63d2\u4ef6\nfrom nonebot_plugin_alconna import UniMessage, Command\n\n@Command(\"echo <...content>\").build(auto_send_output=True).handle()\nasync def _(content: UniMessage):\n await content.finish()\n```",
"bugtrack_url": null,
"license": "MIT",
"summary": "Alconna Adapter for Nonebot",
"version": "0.54.1",
"project_urls": {
"homepage": "https://github.com/nonebot/plugin-alconna",
"repository": "https://github.com/nonebot/plugin-alconna"
},
"split_keywords": [
"command",
" alconna",
" nonebot"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a6667133b5029cd5bf4b123844e5e1423151e6456eb02e25d93ce61d0623d792",
"md5": "d1005773ed9e2597679f3905c05e9c6c",
"sha256": "4edb4b081cd64ce37717c7a92d31aadd2cf287a5a0adc2ac86ed82d9bcad5048"
},
"downloads": -1,
"filename": "nonebot_plugin_alconna-0.54.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d1005773ed9e2597679f3905c05e9c6c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 201519,
"upload_time": "2024-12-08T10:11:12",
"upload_time_iso_8601": "2024-12-08T10:11:12.433974Z",
"url": "https://files.pythonhosted.org/packages/a6/66/7133b5029cd5bf4b123844e5e1423151e6456eb02e25d93ce61d0623d792/nonebot_plugin_alconna-0.54.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6590e904a322315b414e2f9c8cfd158e47edc57b4e1cb7fd4b57686f061f4e6f",
"md5": "03272c0aa9f0e5e1907e0d79638eb708",
"sha256": "66fae03120b8eff25bb0027d65f149e399aa6f73c7585ebdd388d1904cecdeee"
},
"downloads": -1,
"filename": "nonebot_plugin_alconna-0.54.1.tar.gz",
"has_sig": false,
"md5_digest": "03272c0aa9f0e5e1907e0d79638eb708",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 145113,
"upload_time": "2024-12-08T10:11:13",
"upload_time_iso_8601": "2024-12-08T10:11:13.961495Z",
"url": "https://files.pythonhosted.org/packages/65/90/e904a322315b414e2f9c8cfd158e47edc57b4e1cb7fd4b57686f061f4e6f/nonebot_plugin_alconna-0.54.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-08 10:11:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nonebot",
"github_project": "plugin-alconna",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nonebot-plugin-alconna"
}