From bda54f30ac6eb18b9869d5e5196d70f5042876c4 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:26:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E7=BF=BB=E9=A1=B5?= =?UTF-8?q?=E8=A7=84=E5=88=99=E6=94=AF=E6=8C=81=E5=9C=A8=20url=20=E8=A7=84?= =?UTF-8?q?=E5=88=99=E4=B8=AD=E5=8F=AF=E9=80=9A=E8=BF=87=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=20rule=20=E8=BF=99=E4=B8=AA=E5=AF=B9=E8=B1=A1=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E6=9D=A5=E4=BF=AE=E6=94=B9=E5=BD=93=E5=89=8D=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E5=AE=9E=E9=99=85=E5=BA=94=E7=94=A8=E7=9A=84=E8=A7=84?= =?UTF-8?q?=E5=88=99=EF=BC=88=E6=AF=94=E5=A6=82=E5=BD=93=E6=98=AF=E5=9C=A8?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E6=B5=8F=E8=A7=88=E6=97=B6=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=BC=BA=E5=88=B6=E6=96=B0=E6=A0=87=E7=AD=BE=E9=A1=B5?= =?UTF-8?q?=E6=89=93=E5=BC=80=E9=93=BE=E6=8E=A5=EF=BC=8C=E5=B0=B1=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=9C=A8=20url=20=E8=A7=84=E5=88=99=E4=B8=AD=E8=BF=99?= =?UTF-8?q?=E6=A0=B7=E5=86=99=EF=BC=9Aif(fun.isMobile()){rule.blank=3D0}?= =?UTF-8?q?=20=E8=BF=99=E6=A0=B7=E5=BD=93=E5=89=8D=E7=BD=91=E9=A1=B5?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=9A=84=E7=BF=BB=E9=A1=B5=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=9A=84=20blank=20=E8=A7=84=E5=88=99=E5=B0=B1=E5=8F=98?= =?UTF-8?q?=E6=88=90=200=20=E4=B9=9F=E5=B0=B1=E6=98=AF=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E4=BA=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index 7f2f929..a80acee 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -3,7 +3,7 @@ // @name:zh-CN 自动无缝翻页 // @name:zh-TW 自動無縫翻頁 // @name:en AutoPager -// @version 6.6.49 +// @version 6.6.50 // @author X.I.U // @description ⭐无缝加载 下一页内容 至网页底部(类似瀑布流,无限滚动,无需手动点击下一页)⭐,目前支持:【所有「Discuz!、Flarum、phpBB、MyBB、Xiuno、XenForo、NexusPHP...」论坛】【百度、谷歌(Google)、必应(Bing)、搜狗、微信、360、Yahoo、Yandex 等搜索引擎...】、贴吧、豆瓣、知乎、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(以上仅一小部分常见网站,更多的写不下了... // @description:zh-TW ⭐無縫加載 下一頁內容 至網頁底部(類似瀑布流,无限滚动,無需手働點擊下一頁)⭐,支持各論壇、社交、遊戲、漫畫、小說、學術、搜索引擎(Google、Bing、Yahoo...) 等網站~ @@ -166,7 +166,7 @@ } else { // 不在禁用列表中 webType = doesItSupport(); // 判断网站类型(即是否支持),顺便直接赋值 if (webType === 0) { - menuId[0] = GM_registerMenuCommand('❌ 当前网页暂不支持 [点击申请]', function(){GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});GM_openInTab('https://greasyfork.org/zh-CN/scripts/419215/feedback', {active: true,insert: true,setParent: true});}); + menuId[0] = GM_registerMenuCommand('❌ 当前网页暂不支持 [点击申请] (或无需翻页)', function(){GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});GM_openInTab('https://greasyfork.org/zh-CN/scripts/419215/feedback', {active: true,insert: true,setParent: true});}); menuId[1] = GM_registerMenuCommand('🔄 更新外置翻页规则 (定期自动)', function(){getRulesUrl(true)}); menuId[2] = GM_registerMenuCommand('#️⃣ 自定义翻页规则', function(){customRules()}); //console.info('[自动无缝翻页] - 暂不支持当前网页 [ ' + location.href + ' ],申请支持: https://github.com/XIU2/UserScript / https://greasyfork.org/zh-CN/scripts/419215/feedback'); @@ -204,7 +204,7 @@ for (let now in DBSite) { // 遍历 对象 if (DBSite[now].ignore) continue; // 如果是特殊的内置规则(如通用规则)则跳过直接继续下一个循环 - DBSiteNow = DBSite[now] // 供其他函数在 域名/URL 判断阶段使用 + DBSiteNow = structuredClone(DBSite[now]) // 供其他函数在 域名/URL 判断阶段使用(深度克隆是为了在后续 url 规则中通过操作 rule 对象变量来修改当前网页规则时,不会间接影响到 DBSite[now] 本身) // 如果是 数组 if (Array.isArray(DBSite[now].host)) { @@ -223,8 +223,8 @@ try { if (DBSite[now].url.slice(0,1) === '/') { // 如果是正则,则对 URL 路径进行匹配 if (new RegExp(DBSite[now].url.slice(1,DBSite[now].url.length-1), 'i').test(location.pathname + location.search) === true) {curSite = DBSite[now];} else {if (urlC === true) {support = true;}; break;} - } else { // 如果是函数,那就执行代码 - if (new Function('fun', DBSite[now].url)(window.autoPage)) {curSite = DBSite[now];} else {if (urlC === true) {support = true;}; break;} + } else { // 如果是函数,那就执行代码(url 规则中可通过操作 rule 这个对象变量来修改当前网页实际应用的规则) + if (new Function('fun','rule', DBSite[now].url)(window.autoPage,DBSiteNow)) {curSite = DBSiteNow;} else {if (urlC === true) {support = true;}; break;} } } catch (e) { console.error('[自动无缝翻页] - 当前网页规则 "url" 匹配出错,请检查:\n', DBSite[now].url + '\n\n', e); @@ -252,9 +252,8 @@ try { if (DBSite[now].url.slice(0,1) === '/') { // 如果是正则,则对 URL 路径进行匹配 if (new RegExp(DBSite[now].url.slice(1,DBSite[now].url.length-1), 'i').test(location.pathname + location.search) === true) {curSite = DBSite[now];} else {if (urlC === true) {support = true;}; continue;} - } else { // 如果是函数,那就执行代码 - - if (new Function('fun', DBSite[now].url)(window.autoPage)) {curSite = DBSite[now];} else {if (urlC === true) {support = true;}; continue;} + } else { // 如果是函数,那就执行代码(url 规则中可通过操作 rule 这个对象变量来修改当前网页实际应用的规则) + if (new Function('fun','rule', DBSite[now].url)(window.autoPage,DBSiteNow)) {curSite = DBSiteNow;} else {if (urlC === true) {support = true;}; continue;} } } catch (e) { @@ -1113,7 +1112,7 @@ function: { }; } DBSite = Object.assign({}, _customRules, _rules, DBSite); - DBSite2 = Object.assign({}, structuredClone(_customRules), structuredClone(_rules)); // 为了避免对象的后续变化影响 DBSite2 内容(如 SiteTypeID 等),需要对 a b 变量进行深拷贝,使其完全独立 + DBSite2 = Object.assign({}, structuredClone(_customRules), structuredClone(_rules)); // 为了避免对象的后续变化影响 DBSite2 内容(如 SiteTypeID 等),需要对JSON对象变量进行深拷贝,使其完全独立 } // 生成 SiteTypeID