Skip to content

randomshit699/Bncr2python

Repository files navigation

Bncr2python

无界(Bncr)的python插件兼容层,为无界带来python支持
本项目是无界的附属增强,需要先安装无界本体,无界安装教程请看文末 相关链接 章节

效果

  1. 项目启动
image
  1. 调用插件
image

安装

1. 自动安装

1.1 在无界web插件市场内订阅https://github.com/randomshit699/Bncr_plugins这个插件源
1.2 安装/更新源中的python.ts 插件
1.3 重启无界docker restart bncr

2. 手动安装

2.1 容器内安装python

docker exec -it bncr sh  #进入无界容器内
apk update && apk upgrade  #更新包管理器
apk add python3=3.11.14-r0 py3-pip  #安装python和pip
exit  #退出容器

2.2 下载无界python兼容层

下载启动脚本 -> __init__.py

以下两个本体二选一
A.amd64架构cpu下载 -> python.cpython-311-x86_64-linux-musl.so
B.arm64架构cpu下载 -> python.cpython-311-aarch64-linux-musl.so
将启动脚本和本体保存到无界容器内同一个文件夹中(例如:/bncr/src

2.3 安装插件

python_manual.ts插件下载至无界插件文件夹内 根据需要修改插件明文部分的设置

2.4 重启无界

docker restart bncr

使用说明

1. 首次启动

由于首次启动前需要pip install较多依赖,启动时间可能较长,当然你也可以在重启无界前在容器内自行安装

pip install -r requirements.txt --break-system-packages

2. 插件加载

支持*.py|*.so插件

兼容层使用/bncr/BncrData/plugin/python作为插件目录,只有保存在此目录下的插件会被加载

文件名若为setup.py或者以双下划线__开头则不会被加载
*/configs*/build目录下的文件不会被加载

3. 插件加密

仓库内的python/setup.py是使用cython一键编译插件目录以及子目录下所有*.py插件的脚本,原*.py会被重命名为__*.py
python/configs目录是用于借用无界的web插件设置页面的,所以不要在此目录下保存插件
python/*/build目录会在cython编译时临时生成,编译完成后会自动删除,所以不要在此目录下保存插件

3. type check

编写插件时在IDE内可以使用类型提示,在插件中插入下面的代码即可

if TYPE_CHECKING:
    from type.python import (
        BncrDB,
        BncrPluginConfig,
        MethodClass,
        Sender,
        router,
        sysMethod,
    )

类型提示文件 -> python/type/python.pyi

开发文档

1. 实现

90%实现了无界在nodejs下的风格,语法可以参考无界项目官网,插件实例可以参考 python/__example.pypython/XJJ/__import_example.py

2. TODO 未实现

  1. sysMethod.isDevP() [现在总是返回 false]
  2. ADD # @encrypt true可以自动编译 [现在需要手动使用setup.py编译]

3. NOT TODO 不计划实现

  1. Adapter() [bncr]

相关链接

我:https://t.me/Gdot0
无界项目官网:https://anmours.github.io/Bncr/#/
无界tg群:https://t.me/BncrJSChat
无界入门级教程:https://notes.dsdog.tk/archives/1716304583708

About

为无界(Bncr)带来python支持

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors