Skip to content

Latest commit

 

History

History
 
 

v1.0

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

infini'水系核心

pypi hydro

.github/workflows/python-publish.yml CodeQL Netlify Status

🎁 Getting hydro

Important

强烈推荐使用 pdm 等能创建虚拟环境的包管理工具管理你的 HydroRollBot 项目。

  1. 安装库

    在终端中执行:

    git clone https://github.com/HydroRoll-Team/infini.git
    cd infini
    pdm install

    你可以使用pip进行安装:

    pip install infini
  2. 创建规则包实例

    确保你的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="内容"的方式实现。

  3. 创建你的测试文件

    MyRule\tests.py 中的 test 函数中给出测试函数,并返回一个 list,应当包含所有异常内容。

  4. 测试你的规则包

    执行指令:

    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 APIRule WikiRule Event-Handler

  1. Rule API

该部分由网络库编写,为其他组件提供一个接入或把 infini 接入的可能。

  1. Rule Wiki

该部分主要用于读取 __doc__ 并格式化为 mkdocs 站点以及成品规则书 pdf

  1. Rule Event-Handler

该部分用于实际与 HydroRoll 插件通信。

🎍 resources

https://grps.hydroroll.team (recommend)
https://grps-v1.netlify.app
https://hydroroll-team.github.io/infini/

📄 License

MIT © 2023-PRESENT 简律纯