https://github.com/funnygeeker/keiyume
溪梦框架:依赖go-cqhttp运行,简单易用的qq框架,适合入门级开发者~
https://github.com/funnygeeker/keiyume
framework python python3 qq websocket ximeng
Last synced: 15 days ago
JSON representation
溪梦框架:依赖go-cqhttp运行,简单易用的qq框架,适合入门级开发者~
- Host: GitHub
- URL: https://github.com/funnygeeker/keiyume
- Owner: funnygeeker
- License: agpl-3.0
- Created: 2022-10-18T09:57:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-23T10:48:03.000Z (over 3 years ago)
- Last Synced: 2025-02-25T18:31:56.945Z (over 1 year ago)
- Topics: framework, python, python3, qq, websocket, ximeng
- Language: Python
- Homepage:
- Size: 53.1 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### 溪梦框架
!> 本框架为早期版本,这意味着本框架并不成熟,而且框架内会有很多作者自己都不知道怎么想的脑残设计。在编写插件时您可能会发现教程的缺失,后续您编写的插件也不能保证长期兼容最新框架。如果你有自己的想法,可以和我们一起改进框架。
#### 框架简介
- 使用 Python3 开发,通过 [go-cqhttp](https://docs.go-cqhttp.org/) 的 api 接口运行的简易框架,
并对 [go-cqhttp](https://docs.go-cqhttp.org/) 部分 api 和 event 以函数的形式做了简易封装。
- 软件生态,代码规范,以及设计合理性可能远远不及 [NoneBot](https://nb2.baka.icu/),请各位新手慎重参考本框架里边的代码!
- 本说明文档目前还在进一步完善中...
- 早期版本可前往 [Release](https://github.com/funnygeeker/keiyume/releases) 下载
>~~由于一时半会读不懂 [NoneBot](https://nb2.baka.icu/) 的插件开发文档,索性自己写了一个框架的屑萌新。等到写完框架,发现读懂了。~~
> 我们希望通过不断设计和完善这个框架,来提高我们的代码水平和代码质量。故作此框架以练手。此一早期版本,望各位大佬轻喷!
!>注意:
由于溪梦框架仍在开发中,暂未发布正式版,本文档将仅保留最新版的文档,被遗弃的功能将会从文档中删除,如有需要,请在旧版本的 [Release](https://github.com/funnygeeker/XiMeng/releases) 中下载源码,并在解压后的 docs 目录查找文档
!>注意:`2.0` 正式版发布前插件规范可能会频繁迭代,如果您是插件开发者,请密切关注最新版插件开发文档,以保证插件对最新框架的兼容性。
#### 问题反馈
您可以通过 [兔小巢](https://support.qq.com/product/464061) 或者 [Github](https://github.com/funnygeeker/keiyume) 又或者 [加入QQ群](https://jq.qq.com/?_wv=1027&k=aCSDHr8h) 向我们反馈问题和提出建议
#### 查看说明文档
社区服务器:[溪梦文档站](https://docs.keiyume.com/keiyume) (最新消息和内容)
稳定服务器:[Github Pages](https://funnygeeker.github.io/keiyume) (稳定的服务器)
### 框架原理
#### 执行流程
- 启动框架时,会先加载基本配置文件,根据配置文件设置日志记录器(提示:DEBUG模式可以查看更多详细日志)
- 当框架每接收到一个来自 [go-cqhttp](https://docs.go-cqhttp.org/) 上报的消息,将会为对应的消息开一个单独的线程,用于处理消息
- 收到消息后调用插件,每个插件分别处理消息,并修改消息的原始内容(如果需要)然后根据优先级顺序,传递给后续插件
- 如果有出现调用 go-cqhttp api 的情况,将会在调用 api 后阻塞线程,等待主线程接收到返回值后继续
- 接收到消息的 api 函数会返回结果数据,若超时则可能会报错并返回 `None`
- 对应消息线程的所有插件执行结束后,线程将被关闭
#### 线程说明
- 本框架采用多线程,每条消息的处理都会单独开一个线程,消息处理完毕则关闭线程
- 主线程:管理基本的通信,每接收到消息则新开一个线程处理消息
- 命令线程:用于处理在控制台上输入的命令。
- 任务线程:由 [APScheduler](https://pypi.org/project/APScheduler/) 管理计划任务。
- 消息线程:数量不定,用于处理消息。
#### 版本要求
- 仅支持 **Python3.7** 或更高的 **Python3** 版本,框架开发环境为 **Python3.8**,后续可能仅支持 **Python3.8** 以及之后的版本。
#### 通信方式
- 与 go-cqhttp 进行 **正向 WebSocket** 通信(在 go-cqhttp 生成配置文件时选择2)
### 注意事项
- 框架中的部分代码可能存与 Python 代码标准标准不一致的部分
- 请各位小白**慎重参考**其中的代码,以免出现不好的习惯!
- 若框架存在设计缺陷或规范缺陷,请指出,感激不尽!
!> 此文档为早期版本,说明并不完善。也有可能存在错误。如遇错误,请加群进行反馈,或在 Github 中提出。
### 运行截图