infini'水系核心
[](https://github.com/HydroRoll-Team/infini/actions/workflows/python-publish.yml)
[](https://github.com/HydroRoll-Team/infini/actions/workflows/codeql.yml)
[](https://app.netlify.com/sites/grps-v1/deploys)
🎁 Getting 
[!IMPORTANT]
强烈推荐使用
pdm等能创建虚拟环境的包管理工具管理你的HydroRollBot项目。
-
安装库
在终端中执行:
bash git clone https://github.com/HydroRoll-Team/infini.git cd infini pdm install你可以使用
pip进行安装:bash pip install infini -
创建规则包实例
确保你的
infini正确安装后,打开终端并执行:shell python -m infini new MyRule你可以在生成的
MyRule\rule.py创建一个或者多个继承Handler基类的实例, 通过编写合适的相关方法与类注册规则包实现规则的自定义。``` python from infini import Handler, Result
handlers = ["HandlerRule"]
class HandlerRule(Handler): """自设业务函数"""
name = "MyRule" # 规则包名 priority: int = 0 # 规则包权重 def process(self, **kwargs) -> Result: """声明规则包检定方式""" return Result("event1", True)```
process函数应当返回一个Result对象,它应当包含一个消息事件名(例如示例中的event1),该消息事件名应当在MyRule\event.py中被注册。消息事件的动态内容通过{name}的方式声明并通过name="内容"的方式实现。 -
创建你的测试文件
在
MyRule\tests.py中的test函数中给出测试函数,并返回一个list,应当包含所有异常内容。 -
测试你的规则包
执行指令:
bash python -m infini test MyRule
🌟 contribute
在此之前,请先克隆本仓库。
git clone https://github.com/HydroRoll-Team/infini.git
贡献手册
本段内容主要针对想要为通用规则包标准(GRPS)的docs 文档 或 Python 实现 作贡献的社区朋友,若您想要推广 GRPS-1 标准的其他语言实现,请提交相关 PR,届时修改下方的资源列表。
您需要确保自己的硬件环境有 Python 解释器,您需要全局安装 pdm 依赖以实现局部开发 infini 文档或源码的目的。
pip3 install pdm
接着在 infini 仓库主分支的根目录下激活 pdm 虚拟环境。
cd infini
pdm venv list
pdm venv activate in-project
一、 在本地部署文档
在 infini 仓库根目录下安装 docs 组的依赖。
pdm install -dG docs
依赖安装完毕后,可进行版本控制或直接进行文档贡献。
版本控制 |
mike的其他指令具体可查看 jimporter/mike。
pdm run mike serve
这样便可以查看不同版本的文档了。
文档贡献 | 这样贡献出来的文档永远是
dev分支或latests分支的,这也是最为普遍的文档贡献方式,mkdocs具体的配置教程可查看 squidfunk/mkdocs。
pdm run mkdocs serve
接着就可以在本地 8000 端口查看文档了,同时由于 mkdocs 是热加载的,因此您可以直接在 serve 指令预览最新文档后,修改对应文档的内容,保存后仅需等待文档内容变化即可。
[!WARNING]
注意,强烈建议学习 mkdocs-materials 的文档语法后进行文档内容的贡献
PR,同时还请遵循水系核心的文档规范。
贡献源码
在贡献源码之前,请先知悉水系有一套渐进式开发文档,水系核心 infini 的开发是极其内核的,但是,此 repo 所代表的仅仅只是 GRPS-1 的一个 Python 实现,因此如果已经相当了解水系架构和通用规则包标准,那么可以遵循以下说明进行适当的开发。
水系核心主要由三部分构成:Rule API、Rule Wiki、Rule Event-Handler。
Rule API
该部分由网络库编写,为其他组件提供一个接入或把 infini 接入的可能。
Rule Wiki
该部分主要用于读取 __doc__ 并格式化为 mkdocs 站点以及成品规则书 pdf。
Rule Event-Handler
该部分用于实际与 HydroRoll 插件通信。
🎍 resources
https://grps.hydroroll.team (recommend)
https://grps-v1.netlify.app
~~https://hydroroll-team.github.io/infini/~~
