-
Notifications
You must be signed in to change notification settings - Fork 874
config custom plugin
栽培者 edited this page Sep 3, 2019
·
2 revisions
自定义插件
是指在每个站点的特定页面执行的一些用户脚本
(下称插件) ,类似于Tampermonkey
的自定义脚本;助手为每个站预设了一些
插件
,比如种子页面的一键下载
、复制链接
等都是助手所预设的插件
;通过这些插件
可以快速的进行一些常用操作;对于一些站点,您可能有一些特定的需求,针对这些特定的需求,助手允许您通过自定义插件来实现。
目前,插件是针对每个站点来进行定义,未来可能会考虑自定义插件适用的站点范围;
-
打开
站点设置
; -
找到需要添加插件的站点;
-
点击
插件
按钮,进入插件列表; -
在插件列表中,会列出当前已存在的插件:
-
不可编辑的项表示助手预设的插件;
-
在插件列表点击
新增
,进入插件定义界面: -
插件名称
必填:起个好听的名称; -
适用页面
必填:该插件需要在哪些页面生效,可以指定多个页面; -
附加脚本文件
:- 该插件执行时需要的一些依赖脚本,可以指定多个脚本文件,将按顺序进行加载;
-
/
指向助手的/resource/
目录; - 允许使用外部脚本链接(v1.1.3+),如:
https://unpkg.com/jquery@3.4.1/dist/jquery.js
-
附加样式文件
:该插件执行时需要的样式依赖,可以指定多个样式文件,将按顺序进行加载; -
JS脚本
:该插件主要的执行脚本内容; -
附加样式
:该插件需要使用的样式(CSS)内容;
- 脚本请使用闭包;
- 可用的全局对象:
-
PTService
:是助手在当前页面挂载的全局对象;- 具体可用方法,请参考:该文件 的
PTPContent
类;
- 具体可用方法,请参考:该文件 的
-
jQuery
:助手加载的jQuery
对象,可用于解析和选择页面的原始DOM;
-
- 同一个页面如果有多个适用的脚本,将按以下顺序依次加载:
- 系统定义的插件脚本;
- 附加脚本文件;
- JS脚本;
- 关于 NexusPHPCommon 类
- 该类定义了一些公用的方法,可用于操作助手执行一些指令,如:下载种子,搜索种子等;
- 该类默认情况下会在种子页面和种子详情页面加载;
- 如果需要在其他页面使用,可在自定义时,在
附加脚本文件
中添加/schemas/NexusPHP/common.js
文件进行加载;
-
在需要添加的站点(如MT)新增插件,内容如下:
-
插件名称
:一键下载ipv6
; -
适用页面
:/details.php
; -
JS脚本
:
(function() { // 继承 NexusPHPCommon 类 // 参考:https://github.com/ronggang/PT-Plugin-Plus/blob/master/resource/schemas/NexusPHP/common.js class App extends window.NexusPHPCommon { init() { // 增加下载按钮 PTService.addButton({ title: "下载ipv6", label: "下载ipv6", icon: "get_app", type: PTService.buttonType.popup, click: (success, error, event) => { let url = jQuery("a[href*='ipv6=1'][href*='https=1']").attr("href"); if (url.substr(0, 2) === "//") { url = `${location.protocol}${url}`; } else if (url.substr(0, 1) === "/") { url = `${location.origin}${url}`; } else if (url.substr(0, 4) !== "http") { url = `${location.origin}/${url}`; } let title = ""; if (this.getTitle) { title = this.getTitle(); } else { title = document.title; } let options = { url, title, link: this.currentURL }; console.log(options); // 显示“下载到”下载菜单 this.showContentMenusForUrl(options, event.originalEvent, success, error ); } }); } } new App().init(); })();
-
-
设置完成后,点击确认进行保存;
-
打开该站点的一个种子详情页,将会看到新增的自定义按钮(下载ipv6):
-
点击测试是否正常工作;
-
如果页面没有显示新增自定义按钮,刷新页面即可;
-
插件添加完成。
插件不限于自定义按钮,可以是任何有效的
javascript
脚本内容。