Skip to content

Commit acd071a

Browse files
committed
新增 一个翻页规则 inherits (用于自定义翻页规则继承部分外置翻页规则); 修复 在有自定义翻页规则时去查看所有规则,会显示一些仅用于脚本内部的规则 (如 SiteTypeID)
1 parent 8111f8c commit acd071a

1 file changed

Lines changed: 23 additions & 11 deletions

File tree

Autopage.user.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// @name:zh-CN 自动无缝翻页
44
// @name:zh-TW 自動無縫翻頁
55
// @name:en AutoPager
6-
// @version 6.4.5
6+
// @version 6.4.6
77
// @author X.I.U
88
// @description ⭐无缝加载 下一页内容 至网页底部(类似瀑布流)⭐,目前支持:【所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、NexusPHP...」论坛】【百度、谷歌(Google)、必应(Bing)、搜狗、微信、360、Yahoo、Yandex 等搜索引擎...】、贴吧、豆瓣、知乎、B 站(bilibili)、NGA、V2EX、煎蛋网、龙的天空、起点中文、千图网、千库网、Pixabay、Pixiv、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、RuTracker、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、小众软件、【动漫狂、动漫屋、漫画猫、漫画屋、漫画 DB、动漫之家、拷贝漫画、HiComic、Mangabz、Xmanhua 等漫画网站...】、PubMed、Z-Library、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了...
99
// @description:zh-TW ⭐無縫加載 下一頁內容 至網頁底部(類似瀑布流)⭐,支持各論壇、社交、遊戲、漫畫、小說、學術、搜索引擎(Google、Bing、Yahoo...) 等網站~
@@ -1101,16 +1101,21 @@ function: {
11011101
}
11021102
} // 国家自然科学基金
11031103
};
1104-
// 合并 自定义规则、外置规则、内置规则
1105-
if (Object.keys(GM_getValue('menu_customRules', {})).length === 0) {
1106-
DBSite = Object.assign(GM_getValue('menu_customRules', {}), GM_getValue('menu_rules', {}), DBSite);
1107-
DBSite2 = GM_getValue('menu_rules', {})
1108-
} else { // 自定义规则 覆盖 同名的外置规则
1104+
// 合并 自定义规则、外置规则、内置规则(注:Object.assign 合并对象时,同名会后者覆盖前者)
1105+
if (Object.keys(GM_getValue('menu_customRules', {})).length === 0) { // 如果自定义规则为空,则直接合并 外置规则、内置规则
1106+
DBSite = Object.assign({}, GM_getValue('menu_rules', {}), DBSite);
1107+
DBSite2 = GM_getValue('menu_rules', {});
1108+
} else { // 如果有自定义规则,为避免外置规则覆盖同名的自定义规则,要先判断并移除同名的外置规则
11091109
let a = GM_getValue('menu_customRules', {}), a1 = Object.keys(a),
11101110
b = GM_getValue('menu_rules', {}), b1 = Object.keys(b)
1111-
for (let i = 0; i < a1.length; i++) {if(b1.indexOf(a1[i]) != -1) {delete b[a1[i]]};}
1112-
DBSite = Object.assign(a, b, DBSite);
1113-
DBSite2 = Object.assign(a, b);
1111+
for (let i = 0; i < a1.length; i++) { // 循环 [自定义规则-对象名] 数组
1112+
if (b1.indexOf(a1[i]) != -1) { // 在 [外置规则-对象名] 数组中,寻找是否有同名的 [自定义规则-对象名]
1113+
if (a[a1[i]].inherits === true){ a[a1[i]] = Object.assign({}, b[a1[i]], a[a1[i]]);} // 如果该同名的自定义规则对象含有 inherits 继承标识,则将同名的两者合并(自定义覆盖外置)
1114+
delete b[a1[i]] // 删除外置规则中的同名,这样后续合并时,外置规则才不会覆盖自定义规则的同名规则
1115+
};
1116+
}
1117+
DBSite = Object.assign({}, a, b, DBSite);
1118+
DBSite2 = Object.assign({}, JSON.parse(JSON.stringify(a)), JSON.parse(JSON.stringify(b))); // 为了避免对象的后续变化影响 DBSite2 内容(如 SiteTypeID),需要对 a b 变量进行完全克隆,使其完全独立
11141119
}
11151120

11161121
// 生成 SiteTypeID
@@ -2668,10 +2673,13 @@ function: {
26682673
<li>脚本会自动格式化规则,因此<strong>无需手动缩进、换行</strong>,只需把规则<strong>插入默认的 { } 中间</strong>即可。</li>
26692674
</ul>
26702675
<pre style="white-space: pre-wrap !important;user-select: auto !important;">
2671-
// 下面示例是把所有规则都塞进去了,但实际上大都用不上,大多数网站只需要像第一个 "aaa" 这样的规则
2672-
// "aaa" 是规则名,唯一!不能重复!否则会被 外置/内置规则 覆盖,支持中文等各种字符
2676+
// 下面示例是把所有规则都塞进去了,但实际上大部分都用不上,大多数网站只需要像第一个 "aaa" 这样的规则
2677+
// "aaa" 是规则名,唯一!如果和 外置规则名 重复,则会将完全覆盖同名的外置规则,支持中文等各种字符
26732678
// "url" 是用来控制哪些网站中页面适用该规则,省略后代表该规则应用于全站
26742679
// "scrollD" 是用来控制翻页敏感度的(越大就越早触发翻页,访问速度慢的网站需要调大,可省略(注意逗号),默认 2000)
2680+
2681+
// "inherits" 是继承标识,当你只需要对某个外置规则中 增删改 部分规则内容时(比如只是修改域名),那么就可以像下面第二个 "aaa" 规则一样写一个同名规则,规则内只有要修改的 host,以及 inherits 标识,这样脚本就会将外置规则中的 host 替换为自定义规则中的 host,其他规则则不变。即更灵活了,无需每次为了修改部分规则而去复制全部规则了,也不用担心我后续更新这个外置规则后,你还需要再次复制一遍来修改。。。
2682+
26752683
{
26762684
"aaa": {
26772685
"host": "aaaa",
@@ -2683,6 +2691,10 @@ function: {
26832691
"scrollD": 2000
26842692
}
26852693
},
2694+
"aaa": {
2695+
"host": "cccc",
2696+
"inherits": true
2697+
},
26862698
"bbb": {
26872699
"host": ["bbb1.com", "bbb2.com"],
26882700
"url": "/^\\/s$/",

0 commit comments

Comments
 (0)