<div align="center">
# Avilla
_The next-gen framework for IM development._
> 即刻动身, 踏上寻找第二个故乡的旅程.
</div>
<p align="center">
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="code_style" />
<img src="https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336" />
</p>
Avilla 是 `Graia Project` 的 "下一代" 框架实现,
通过对 [ `OneBot` ](https://github.com/botuniverse/onebot), [ `Telegram Bot API` ](https://core.telegram.org/bots) 及其他的基于不同即时通讯软件实现的各式对接接口,
以及其他具有相应概念的 "异步消息流" 实例进行总结, 抽象其中最为基本的各式模型, 构造了一个理论上可以实现零成本切换对接平台的框架.
**该框架目前处于快速迭代状态, API 可能会发生 _剧烈_ 变化, 可能还不适合进行生产性的开发与运维**
> 项目名称取自日本轻小说 《魔女之旅》 的角色 "艾维莉亚(Avilla)".
|Docs|[![docs](https://img.shields.io/badge/docs%20on-readthedocs-black)](https://graia.readthedocs.io/)|[![docs](https://img.shields.io/badge/docs%20on-netlify-informational)](https://graia.netlify.app/)|[![docs](https://img.shields.io/badge/docs%20on-cloudflare-orange)](https://graia.pages.dev/)|
|:-:|:-:|:-:|:-:|
## Notable Features
- **原生跨平台**: 开创性的 Relationship 操作模型, 配合最小功能单元, 行为扩展等诸多独特设计, 无论是简单的消息收发还是平台设计的独特交互, Avilla 都能处理地得心应手.
- **原生多账号**: Avilla 在设计之初, 就考虑了同时管理多个账号, 甚至是多个平台上的多个账号这些问题, 并加以研究与解决. 而现在, 账号管理本应如此简单便捷而收放自如.
- **一次编写, 多平台可用**: 得益于 Avilla 的强大抽象, 开发者只需面向 Avilla 就能完成核心业务的开发, 显著的减少了维护成本.
- **平台特性友好**: Avilla 以 Activity, Reaction, Extension 等诸项设计, 使得开发者在运用平台特性的方式更加规范而不失表达性. 担心平台间特性的不通用? 你可以同时为多个平台编写不同的特性用例, Avilla 会自动应用可用的适配, 不改动核心逻辑的同时保证基本特性的可用!
> 担心可用性? 我们同样提供了一些核心的非平台依赖实现, 例如 `TextCommand`, 这些组件仅要求平台实现最基本的交互实现, 剩下的一切交给 Avilla 处理!
- **现有基建兼容**: 得益于 `Amnesia`, `Commander`, `Twilight`, `Alconna` 或是基于 `Launart` 编写的各式扩展, 可以直接与 Avilla 协同而无需任何迁移成本.
- **高可伸缩性**: Avilla 既支持单文件使用, 亦支持基于 Graia Saya 驱动的模块系统编写应用.
## Quick Start
```py
from avilla.core import Avilla, Context, MessageReceived
from avilla.console.protocol import ConsoleProtocol
avilla = Avilla()
avilla.apply_protocols(ConsoleProtocol())
@avilla.listen(MessageReceived)
async def on_message_received(cx: Context, event: MessageReceived):
await cx.scene.send_message("Hello, Avilla!")
avilla.launch()
```
## 部件发布情况
| 代号 | 对接平台 | 协议 | 开发进度 | PyPI | 维护者 | 开源协议 |
|:------------------------------:|:---------------------:|:----------------------------:|:-----------:|:-------------------------------------------------------------------------------------------------------:|:--------:|:------:|
| [Core](avilla/core) | - | - | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-core)](https://pypi.org/project/avilla-core) | Official | MIT |
| [Console](avilla/console) | 终端环境 | `Console` | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-console)](https://pypi.org/project/avilla-console) | Official | MIT |
| [Elizabeth](avilla/elizabeth) | Tencent QQ | `mirai-api-http` | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-elizabeth)](https://pypi.org/project/avilla-elizabeth) | Official | AGPLv3 |
| [Onebot 11](avilla/onebot/v11) | *多平台支持* | `OneBot v11` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-onebot-v11)](https://pypi.org/project/avilla-onebot-v11) | Official | - |
| [QQ API](avilla/qqapi) | Tencent QQ / QQ-Guild | `QQ / QQ-Guild Official API` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-qqapi)](https://pypi.org/project/avilla-qqapi) | Official | MIT |
| [Red](avilla/red) | Tencent QQNT | `Red Protocol` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-red)](https://pypi.org/project/avilla-red) | Official | MIT |
| [Satori](avilla/satori) | *多平台支持* | `Satori Protocol (v1)` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-satori)](https://pypi.org/project/avilla-satori) | Official | MIT |
| [Telegram](avilla/telegram) | Telegram | `Telegram` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-telegram)](https://pypi.org/project/avilla-telegram) | - | - |
| [Nightcord](avilla/nightcord) | Discord | `Discord Bots` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-nightcord)](https://pypi.org/project/avilla-nightcord) | - | - |
| [Kook](avilla/kook) | Kook | `Kook` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-kook)](https://pypi.org/project/avilla-kook) | - | - |
| [OneBot 12](avilla/onebot/v12) | *多平台支持* | `OneBot v12` | **Planned** | - | - | - |
## 我们的愿景
创造出比这之前还要更加具有潜力和创造性的作品, 借此有力促进社区的发展,
助力社区的艺术家们 (Developers & Artists) 以更高的效率, 基于更完善的底层, 创作出更加精彩的作品.
## 相关项目
<div align="center">
星座的光芒是由一个个星点共同组成的, 任何优秀的作品都绝不会是一个人的功绩.
而若是没有这些项目, Avilla 的实现就无从谈起.
排名不分顺序, 可能有许遗漏, 这里仅列出部分较为重要的项目.
</div>
+ [ `Nonebot Team` ](https://github.com/nonebot):
- [ `Nonebot v2` ](https://github.com/nonebot/nonebot2): 同样是社区中赫赫有名的优秀框架.
+ [ `Arclet Project` ](https://github.com/ArcletProject): 在借鉴的基础上, 还进行了难能可贵的优秀创新, 仍在不断成长的框架实现.
+ [ `Mamoe Technologies` ](https://github.com/mamoe):
- [ `mirai` ](https://github.com/mamoe/mirai)
- [ `mirai-api-http` ](https://github.com/project-mirai/mirai-api-http)
+ [ `OneBot Spec` ](https://github.com/botuniverse/onebot): Avilla for OneBot 所依据的实现规范, 同时也是 Avilla Protocol 设计时的参考之一.
+ [ `go-cqhttp` ](https://github.com/Mrs4s/go-cqhttp): 可能是现在运用最为广泛的 OneBot v11 & v12 实现.
无论如何, Avilla 都是 Graia Project 下的一个子项目, 以下项目均在不同层面上支持了 Avilla 的开发:
+ [ `Broadcast Control` ](https://github.com/GraiaProject/BroadcastControl): 事件系统实现, 最为锋利的魔剑(Magic Sword).
+ [ `Ariadne` ](https://github.com/GraiaProject/Ariadne): 继承了前作的衣钵, 在 Avilla 尚未成熟之际撑起大梁的后续作品, 同样进行了可贵的创新.
<div align="center">
衷心感谢这些以及其他未被提及的项目.
</div>
## 开源协议
若非特殊说明, Avilla 及其子包默认使用 MIT 作为开源协议, 但如果你若引用到了使用 GPL/AGPL/LGPL 等具有传染性开源协议的项目, 无论是对 Avilla 实现或是使用了相应 Avilla 实现的项目仍需要遵循相关规则.
Raw data
{
"_id": null,
"home_page": "https://github.com/GraiaProject/Avilla",
"name": "avilla-qqapi",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "RF-Tar-Railt <rf_tar_railt@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/33/52/4e57ef4e199f480befbb65f2a3909c0c1fdc0c53691be0172ebf6582caf0/avilla_qqapi-1.0.0a33.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n# Avilla\n\n_The next-gen framework for IM development._\n\n> \u5373\u523b\u52a8\u8eab, \u8e0f\u4e0a\u5bfb\u627e\u7b2c\u4e8c\u4e2a\u6545\u4e61\u7684\u65c5\u7a0b.\n\n</div>\n\n<p align=\"center\">\n <img src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"code_style\" />\n <img src=\"https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336\" />\n\n</p>\n\nAvilla \u662f `Graia Project` \u7684 \"\u4e0b\u4e00\u4ee3\" \u6846\u67b6\u5b9e\u73b0,\n\u901a\u8fc7\u5bf9 [ `OneBot` ](https://github.com/botuniverse/onebot), [ `Telegram Bot API` ](https://core.telegram.org/bots) \u53ca\u5176\u4ed6\u7684\u57fa\u4e8e\u4e0d\u540c\u5373\u65f6\u901a\u8baf\u8f6f\u4ef6\u5b9e\u73b0\u7684\u5404\u5f0f\u5bf9\u63a5\u63a5\u53e3,\n\u4ee5\u53ca\u5176\u4ed6\u5177\u6709\u76f8\u5e94\u6982\u5ff5\u7684 \"\u5f02\u6b65\u6d88\u606f\u6d41\" \u5b9e\u4f8b\u8fdb\u884c\u603b\u7ed3, \u62bd\u8c61\u5176\u4e2d\u6700\u4e3a\u57fa\u672c\u7684\u5404\u5f0f\u6a21\u578b, \u6784\u9020\u4e86\u4e00\u4e2a\u7406\u8bba\u4e0a\u53ef\u4ee5\u5b9e\u73b0\u96f6\u6210\u672c\u5207\u6362\u5bf9\u63a5\u5e73\u53f0\u7684\u6846\u67b6.\n\n**\u8be5\u6846\u67b6\u76ee\u524d\u5904\u4e8e\u5feb\u901f\u8fed\u4ee3\u72b6\u6001, API \u53ef\u80fd\u4f1a\u53d1\u751f _\u5267\u70c8_ \u53d8\u5316, \u53ef\u80fd\u8fd8\u4e0d\u9002\u5408\u8fdb\u884c\u751f\u4ea7\u6027\u7684\u5f00\u53d1\u4e0e\u8fd0\u7ef4**\n\n> \u9879\u76ee\u540d\u79f0\u53d6\u81ea\u65e5\u672c\u8f7b\u5c0f\u8bf4 \u300a\u9b54\u5973\u4e4b\u65c5\u300b \u7684\u89d2\u8272 \"\u827e\u7ef4\u8389\u4e9a(Avilla)\".\n\n|Docs|[![docs](https://img.shields.io/badge/docs%20on-readthedocs-black)](https://graia.readthedocs.io/)|[![docs](https://img.shields.io/badge/docs%20on-netlify-informational)](https://graia.netlify.app/)|[![docs](https://img.shields.io/badge/docs%20on-cloudflare-orange)](https://graia.pages.dev/)|\n|:-:|:-:|:-:|:-:|\n\n## Notable Features\n\n - **\u539f\u751f\u8de8\u5e73\u53f0**: \u5f00\u521b\u6027\u7684 Relationship \u64cd\u4f5c\u6a21\u578b, \u914d\u5408\u6700\u5c0f\u529f\u80fd\u5355\u5143, \u884c\u4e3a\u6269\u5c55\u7b49\u8bf8\u591a\u72ec\u7279\u8bbe\u8ba1, \u65e0\u8bba\u662f\u7b80\u5355\u7684\u6d88\u606f\u6536\u53d1\u8fd8\u662f\u5e73\u53f0\u8bbe\u8ba1\u7684\u72ec\u7279\u4ea4\u4e92, Avilla \u90fd\u80fd\u5904\u7406\u5730\u5f97\u5fc3\u5e94\u624b.\n - **\u539f\u751f\u591a\u8d26\u53f7**: Avilla \u5728\u8bbe\u8ba1\u4e4b\u521d, \u5c31\u8003\u8651\u4e86\u540c\u65f6\u7ba1\u7406\u591a\u4e2a\u8d26\u53f7, \u751a\u81f3\u662f\u591a\u4e2a\u5e73\u53f0\u4e0a\u7684\u591a\u4e2a\u8d26\u53f7\u8fd9\u4e9b\u95ee\u9898, \u5e76\u52a0\u4ee5\u7814\u7a76\u4e0e\u89e3\u51b3. \u800c\u73b0\u5728, \u8d26\u53f7\u7ba1\u7406\u672c\u5e94\u5982\u6b64\u7b80\u5355\u4fbf\u6377\u800c\u6536\u653e\u81ea\u5982.\n - **\u4e00\u6b21\u7f16\u5199, \u591a\u5e73\u53f0\u53ef\u7528**: \u5f97\u76ca\u4e8e Avilla \u7684\u5f3a\u5927\u62bd\u8c61, \u5f00\u53d1\u8005\u53ea\u9700\u9762\u5411 Avilla \u5c31\u80fd\u5b8c\u6210\u6838\u5fc3\u4e1a\u52a1\u7684\u5f00\u53d1, \u663e\u8457\u7684\u51cf\u5c11\u4e86\u7ef4\u62a4\u6210\u672c.\n - **\u5e73\u53f0\u7279\u6027\u53cb\u597d**: Avilla \u4ee5 Activity, Reaction, Extension \u7b49\u8bf8\u9879\u8bbe\u8ba1, \u4f7f\u5f97\u5f00\u53d1\u8005\u5728\u8fd0\u7528\u5e73\u53f0\u7279\u6027\u7684\u65b9\u5f0f\u66f4\u52a0\u89c4\u8303\u800c\u4e0d\u5931\u8868\u8fbe\u6027. \u62c5\u5fc3\u5e73\u53f0\u95f4\u7279\u6027\u7684\u4e0d\u901a\u7528? \u4f60\u53ef\u4ee5\u540c\u65f6\u4e3a\u591a\u4e2a\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u7684\u7279\u6027\u7528\u4f8b, Avilla \u4f1a\u81ea\u52a8\u5e94\u7528\u53ef\u7528\u7684\u9002\u914d, \u4e0d\u6539\u52a8\u6838\u5fc3\u903b\u8f91\u7684\u540c\u65f6\u4fdd\u8bc1\u57fa\u672c\u7279\u6027\u7684\u53ef\u7528!\n > \u62c5\u5fc3\u53ef\u7528\u6027? \u6211\u4eec\u540c\u6837\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6838\u5fc3\u7684\u975e\u5e73\u53f0\u4f9d\u8d56\u5b9e\u73b0, \u4f8b\u5982 `TextCommand`, \u8fd9\u4e9b\u7ec4\u4ef6\u4ec5\u8981\u6c42\u5e73\u53f0\u5b9e\u73b0\u6700\u57fa\u672c\u7684\u4ea4\u4e92\u5b9e\u73b0, \u5269\u4e0b\u7684\u4e00\u5207\u4ea4\u7ed9 Avilla \u5904\u7406!\n - **\u73b0\u6709\u57fa\u5efa\u517c\u5bb9**: \u5f97\u76ca\u4e8e `Amnesia`, `Commander`, `Twilight`, `Alconna` \u6216\u662f\u57fa\u4e8e `Launart` \u7f16\u5199\u7684\u5404\u5f0f\u6269\u5c55, \u53ef\u4ee5\u76f4\u63a5\u4e0e Avilla \u534f\u540c\u800c\u65e0\u9700\u4efb\u4f55\u8fc1\u79fb\u6210\u672c.\n - **\u9ad8\u53ef\u4f38\u7f29\u6027**: Avilla \u65e2\u652f\u6301\u5355\u6587\u4ef6\u4f7f\u7528, \u4ea6\u652f\u6301\u57fa\u4e8e Graia Saya \u9a71\u52a8\u7684\u6a21\u5757\u7cfb\u7edf\u7f16\u5199\u5e94\u7528.\n\n## Quick Start\n\n```py\nfrom avilla.core import Avilla, Context, MessageReceived\nfrom avilla.console.protocol import ConsoleProtocol\n\navilla = Avilla()\navilla.apply_protocols(ConsoleProtocol())\n\n\n@avilla.listen(MessageReceived)\nasync def on_message_received(cx: Context, event: MessageReceived):\n await cx.scene.send_message(\"Hello, Avilla!\")\n\n\navilla.launch()\n```\n\n## \u90e8\u4ef6\u53d1\u5e03\u60c5\u51b5\n\n| \u4ee3\u53f7 | \u5bf9\u63a5\u5e73\u53f0 | \u534f\u8bae | \u5f00\u53d1\u8fdb\u5ea6 | PyPI | \u7ef4\u62a4\u8005 | \u5f00\u6e90\u534f\u8bae |\n|:------------------------------:|:---------------------:|:----------------------------:|:-----------:|:-------------------------------------------------------------------------------------------------------:|:--------:|:------:|\n| [Core](avilla/core) | - | - | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-core)](https://pypi.org/project/avilla-core) | Official | MIT |\n| [Console](avilla/console) | \u7ec8\u7aef\u73af\u5883 | `Console` | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-console)](https://pypi.org/project/avilla-console) | Official | MIT |\n| [Elizabeth](avilla/elizabeth) | Tencent QQ | `mirai-api-http` | **Alpha** | [![image](https://img.shields.io/pypi/v/avilla-elizabeth)](https://pypi.org/project/avilla-elizabeth) | Official | AGPLv3 |\n| [Onebot 11](avilla/onebot/v11) | *\u591a\u5e73\u53f0\u652f\u6301* | `OneBot v11` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-onebot-v11)](https://pypi.org/project/avilla-onebot-v11) | Official | - |\n| [QQ API](avilla/qqapi) | Tencent QQ / QQ-Guild | `QQ / QQ-Guild Official API` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-qqapi)](https://pypi.org/project/avilla-qqapi) | Official | MIT |\n| [Red](avilla/red) | Tencent QQNT | `Red Protocol` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-red)](https://pypi.org/project/avilla-red) | Official | MIT |\n| [Satori](avilla/satori) | *\u591a\u5e73\u53f0\u652f\u6301* | `Satori Protocol (v1)` | **WIP** | [![image](https://img.shields.io/pypi/v/avilla-satori)](https://pypi.org/project/avilla-satori) | Official | MIT |\n| [Telegram](avilla/telegram) | Telegram | `Telegram` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-telegram)](https://pypi.org/project/avilla-telegram) | - | - |\n| [Nightcord](avilla/nightcord) | Discord | `Discord Bots` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-nightcord)](https://pypi.org/project/avilla-nightcord) | - | - |\n| [Kook](avilla/kook) | Kook | `Kook` | **Draft** | [![image](https://img.shields.io/pypi/v/avilla-kook)](https://pypi.org/project/avilla-kook) | - | - |\n| [OneBot 12](avilla/onebot/v12) | *\u591a\u5e73\u53f0\u652f\u6301* | `OneBot v12` | **Planned** | - | - | - |\n\n## \u6211\u4eec\u7684\u613f\u666f\n\n\u521b\u9020\u51fa\u6bd4\u8fd9\u4e4b\u524d\u8fd8\u8981\u66f4\u52a0\u5177\u6709\u6f5c\u529b\u548c\u521b\u9020\u6027\u7684\u4f5c\u54c1, \u501f\u6b64\u6709\u529b\u4fc3\u8fdb\u793e\u533a\u7684\u53d1\u5c55,\n\u52a9\u529b\u793e\u533a\u7684\u827a\u672f\u5bb6\u4eec (Developers & Artists) \u4ee5\u66f4\u9ad8\u7684\u6548\u7387, \u57fa\u4e8e\u66f4\u5b8c\u5584\u7684\u5e95\u5c42, \u521b\u4f5c\u51fa\u66f4\u52a0\u7cbe\u5f69\u7684\u4f5c\u54c1.\n\n## \u76f8\u5173\u9879\u76ee\n\n<div align=\"center\">\n\n\u661f\u5ea7\u7684\u5149\u8292\u662f\u7531\u4e00\u4e2a\u4e2a\u661f\u70b9\u5171\u540c\u7ec4\u6210\u7684, \u4efb\u4f55\u4f18\u79c0\u7684\u4f5c\u54c1\u90fd\u7edd\u4e0d\u4f1a\u662f\u4e00\u4e2a\u4eba\u7684\u529f\u7ee9. \n\u800c\u82e5\u662f\u6ca1\u6709\u8fd9\u4e9b\u9879\u76ee, Avilla \u7684\u5b9e\u73b0\u5c31\u65e0\u4ece\u8c08\u8d77. \n\u6392\u540d\u4e0d\u5206\u987a\u5e8f, \u53ef\u80fd\u6709\u8bb8\u9057\u6f0f, \u8fd9\u91cc\u4ec5\u5217\u51fa\u90e8\u5206\u8f83\u4e3a\u91cd\u8981\u7684\u9879\u76ee.\n\n</div>\n\n + [ `Nonebot Team` ](https://github.com/nonebot):\n - [ `Nonebot v2` ](https://github.com/nonebot/nonebot2): \u540c\u6837\u662f\u793e\u533a\u4e2d\u8d6b\u8d6b\u6709\u540d\u7684\u4f18\u79c0\u6846\u67b6.\n + [ `Arclet Project` ](https://github.com/ArcletProject): \u5728\u501f\u9274\u7684\u57fa\u7840\u4e0a, \u8fd8\u8fdb\u884c\u4e86\u96be\u80fd\u53ef\u8d35\u7684\u4f18\u79c0\u521b\u65b0, \u4ecd\u5728\u4e0d\u65ad\u6210\u957f\u7684\u6846\u67b6\u5b9e\u73b0.\n + [ `Mamoe Technologies` ](https://github.com/mamoe):\n - [ `mirai` ](https://github.com/mamoe/mirai)\n - [ `mirai-api-http` ](https://github.com/project-mirai/mirai-api-http)\n + [ `OneBot Spec` ](https://github.com/botuniverse/onebot): Avilla for OneBot \u6240\u4f9d\u636e\u7684\u5b9e\u73b0\u89c4\u8303, \u540c\u65f6\u4e5f\u662f Avilla Protocol \u8bbe\u8ba1\u65f6\u7684\u53c2\u8003\u4e4b\u4e00.\n + [ `go-cqhttp` ](https://github.com/Mrs4s/go-cqhttp): \u53ef\u80fd\u662f\u73b0\u5728\u8fd0\u7528\u6700\u4e3a\u5e7f\u6cdb\u7684 OneBot v11 & v12 \u5b9e\u73b0.\n\n\u65e0\u8bba\u5982\u4f55, Avilla \u90fd\u662f Graia Project \u4e0b\u7684\u4e00\u4e2a\u5b50\u9879\u76ee, \u4ee5\u4e0b\u9879\u76ee\u5747\u5728\u4e0d\u540c\u5c42\u9762\u4e0a\u652f\u6301\u4e86 Avilla \u7684\u5f00\u53d1:\n + [ `Broadcast Control` ](https://github.com/GraiaProject/BroadcastControl): \u4e8b\u4ef6\u7cfb\u7edf\u5b9e\u73b0, \u6700\u4e3a\u950b\u5229\u7684\u9b54\u5251(Magic Sword).\n + [ `Ariadne` ](https://github.com/GraiaProject/Ariadne): \u7ee7\u627f\u4e86\u524d\u4f5c\u7684\u8863\u94b5, \u5728 Avilla \u5c1a\u672a\u6210\u719f\u4e4b\u9645\u6491\u8d77\u5927\u6881\u7684\u540e\u7eed\u4f5c\u54c1, \u540c\u6837\u8fdb\u884c\u4e86\u53ef\u8d35\u7684\u521b\u65b0.\n\n<div align=\"center\">\n\n\u8877\u5fc3\u611f\u8c22\u8fd9\u4e9b\u4ee5\u53ca\u5176\u4ed6\u672a\u88ab\u63d0\u53ca\u7684\u9879\u76ee.\n\n</div>\n\n\n## \u5f00\u6e90\u534f\u8bae\n\n\u82e5\u975e\u7279\u6b8a\u8bf4\u660e, Avilla \u53ca\u5176\u5b50\u5305\u9ed8\u8ba4\u4f7f\u7528 MIT \u4f5c\u4e3a\u5f00\u6e90\u534f\u8bae, \u4f46\u5982\u679c\u4f60\u82e5\u5f15\u7528\u5230\u4e86\u4f7f\u7528 GPL/AGPL/LGPL \u7b49\u5177\u6709\u4f20\u67d3\u6027\u5f00\u6e90\u534f\u8bae\u7684\u9879\u76ee, \u65e0\u8bba\u662f\u5bf9 Avilla \u5b9e\u73b0\u6216\u662f\u4f7f\u7528\u4e86\u76f8\u5e94 Avilla \u5b9e\u73b0\u7684\u9879\u76ee\u4ecd\u9700\u8981\u9075\u5faa\u76f8\u5173\u89c4\u5219.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": null,
"version": "1.0.0a33",
"project_urls": {
"Homepage": "https://github.com/GraiaProject/Avilla",
"Repository": "https://github.com/GraiaProject/Avilla"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c5f62b4ab5a97cbdeca1a7e28c3de72e3005a624bbfe23dec49d45bb49d7887b",
"md5": "71a8754ede0d0117168fcffcc314475d",
"sha256": "4a38dc19be5993c14d767215e8bab92ae3809cf443319403e8a9e5ed57a1cdbc"
},
"downloads": -1,
"filename": "avilla_qqapi-1.0.0a33-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71a8754ede0d0117168fcffcc314475d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 48890,
"upload_time": "2024-11-27T06:45:23",
"upload_time_iso_8601": "2024-11-27T06:45:23.338382Z",
"url": "https://files.pythonhosted.org/packages/c5/f6/2b4ab5a97cbdeca1a7e28c3de72e3005a624bbfe23dec49d45bb49d7887b/avilla_qqapi-1.0.0a33-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33524e57ef4e199f480befbb65f2a3909c0c1fdc0c53691be0172ebf6582caf0",
"md5": "4d20550b45e3de532cf901899f00e2a0",
"sha256": "660d0562925126fc54610a76ccf6fa4d39e93d17ef69c6d0d32e9671eae609e4"
},
"downloads": -1,
"filename": "avilla_qqapi-1.0.0a33.tar.gz",
"has_sig": false,
"md5_digest": "4d20550b45e3de532cf901899f00e2a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 35623,
"upload_time": "2024-11-27T06:45:25",
"upload_time_iso_8601": "2024-11-27T06:45:25.098856Z",
"url": "https://files.pythonhosted.org/packages/33/52/4e57ef4e199f480befbb65f2a3909c0c1fdc0c53691be0172ebf6582caf0/avilla_qqapi-1.0.0a33.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-27 06:45:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "GraiaProject",
"github_project": "Avilla",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "avilla-qqapi"
}