-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: 扩展模块草案 #107
Labels
enhancement
New feature or request
Comments
如果要版本管理的话git最合适。 |
Closed
Closed
想问一个,能不能做到屏蔽迅雷,像aria2一样屏蔽掉迅雷 I would like to ask one question, can it be possible to block Xunlei, just like aria2 |
Merged
Relesed on v1.4.0! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
目标
支持安装
JavaScript
脚本进行扩展增强,并且基于git地址进行安装,达到去中心化安装方式。功能点
脚本引擎
首先在后端(Golang)需要接入脚本引擎,并且必须是纯 Go 编写的,这样才能无痛的进行多平台交叉编译,目前调研下来 goja 是最佳选择,当然 goja 只是一个纯 js 运行时,需要垫片一些常用的模块提供给扩展开发,例如网络访问使用的 ajax、fetch 等等,目前只实现这两个垫片,后续有需要可以再加。
扩展管理
通过
git
地址安装之后,扩展信息会记录到本地数据库中,方便后续扩展管理,例如升级、卸载等。扩展钩子
目前暂定以下几个钩子:
任务解析前:
在添加下载任务时,解析请求链接之前触发:
以此实现此类需求:
任务下载完成:
在下载完成后触发,以此实现此类需求:
扩展设置
扩展提供标准化的设置页,通过扩展声明文件来声明设置项,在扩展设置页面根据设置声明进行渲染,用户可以在设置页面进行配置,以此实现此类需求:
这样扩展脚本就可以通过读取用户设置的值来实现对应的功能。
征求意见
目前扩展模块的草案已经完成,欢迎大家提出意见,如果有更好的想法也可以提出来。
相关PR
#78
The text was updated successfully, but these errors were encountered: