nonebot-plugin-alconna


Namenonebot-plugin-alconna JSON
Version 0.54.1 PyPI version JSON
download
home_pageNone
SummaryAlconna Adapter for Nonebot
upload_time2024-12-08 10:11:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords command alconna nonebot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.86218s