Important
强烈推荐使用 pdm
等能创建虚拟环境的包管理工具管理你的 HydroRollBot
项目。
-
安装库
在终端中执行:
git clone https://github.com/HydroRoll-Team/infini.git cd infini pdm install
你可以使用
pip
进行安装:pip install infini
-
创建规则包实例
确保你的
infini
正确安装后,打开终端并执行:python -m infini new MyRule
你可以在生成的
MyRule\rule.py
创建一个或者多个继承Handler
基类的实例, 通过编写合适的相关方法与类注册规则包实现规则的自定义。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
,应当包含所有异常内容。 -
测试你的规则包
执行指令:
python -m infini test MyRule
在此之前,请先克隆本仓库。
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
插件通信。
https://grps.hydroroll.team (recommend)
https://grps-v1.netlify.app
https://hydroroll-team.github.io/infini/