From 36f670b08727530acc630ed56a9ad0e3b2c0a8bb Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Sun, 18 Aug 2024 23:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20[=E7=AC=94=E8=B6=A3?= =?UTF-8?q?=E9=98=81=E7=B1=BB=E5=B0=8F=E8=AF=B4=E7=BD=91=E7=AB=99]=20?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E8=A7=84=E5=88=99(=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E4=B8=8E=E6=AD=A3=E6=96=87=E6=97=A0=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=EF=BC=8C=E4=BB=A5=E5=8F=8A=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=88=A4=E6=96=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=A6=81=E5=9C=A8=E7=AB=A0=E8=8A=82=E6=AD=A3=E6=96=87?= =?UTF-8?q?=E6=9C=AB=E5=B0=BE=E5=8A=A0=E6=8D=A2=E8=A1=8C=E9=97=B4=E9=9A=94?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index ef47c1320..5a8b318d4 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.26 +// @version 6.6.27 // @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...) 等網站~ @@ -416,7 +416,7 @@ console.info(`[自动无缝翻页] - <笔趣阁 2> 模板的小说网站`); return 202; } else if ((getCSS('meta[name="description" i][content*="小说"], meta[name="description" i][content*="章节"], meta[name="description" i][content*="阅读"], meta[name="keywords" i][content*="笔趣"]') || location.hostname.indexOf('biqu')!=-1 || document.title.match(/笔趣阁|小说|章/)!=null) && getXpath('//a[contains(text(), "下一章") or contains(text(), "下一页") or contains(text(), "下一节")]')) { let biquge3_pageE= ['[id="chapter_content" i]','[class~="chapter_content" i]','[id="chaptercontent" i]','[class~="chaptercontent" i]','[id="booktext" i]','[class~="booktext" i]','[id="txtcontent" i]','[class~="txtcontent" i]','[id="textcontent" i]','[class~="textcontent" i]','[id="read-content" i]','[class~="read-content" i]','[id="txtnav" i]','[class~="txtnav" i]','[id="txt" i][class~="txt" i]','[id="contents" i]','[class~="contents" i]','[id="content" i]','[class~="content" i]'] - for(let biquge3_pageE_ of biquge3_pageE) {if (getAllCSS(biquge3_pageE_).length === 1) {DBSite.biquge3.pager.pageE = biquge3_pageE_;DBSite.biquge3.pager.insertP = [biquge3_pageE_,6];break;}} + for(let biquge3_pageE_ of biquge3_pageE) {if (getAllCSS(biquge3_pageE_).length === 1) {DBSite.biquge3.pager.pageE = biquge3_pageE_;DBSite.biquge3.pager.insertP = [biquge3_pageE_,6];DBSite.biquge3.style = biquge3_pageE_+'>.readinline, ' + DBSite.biquge3.style;break;}} if (DBSite.biquge3.pager.pageE != undefined) {console.info(`[自动无缝翻页] - <笔趣阁 3> 模板的小说网站`); return 203;} } return 0; @@ -613,7 +613,7 @@ function: { }, // 部分使用 Typecho 的网站 (Mirages) biquge1: { url: ()=> {curSite = DBSite.biquge1;xs_bF(getAllCSS('.content > #content'),[/
.{0,10}秒记住.+$/, '']);}, - style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #content > *:not(br):not(p) {display: none !important;}', + style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #content > *:not(br):not(p), #content>.readinline {display: none !important;}', history: true, retry: 3000, pager: { @@ -628,7 +628,7 @@ function: { } }, // 笔趣阁 1 模板的小说网站 biquge1_m: { - style: 'img, .posterror, .show-app2, a[href*="posterror()"], [onclick*="location.href"], [style*="background"][style*="url("]:not(html):not(body), #nr1>*:not(br):not(p), #chaptercontent>*:not(br):not(p), .Readarea>*:not(br):not(p), .ReadAjax_content>*:not(br):not(p) {display: none !important;}', + style: 'img, .posterror, .show-app2, a[href*="posterror()"], [onclick*="location.href"], [style*="background"][style*="url("]:not(html):not(body), #nr1>*:not(br):not(p), #chaptercontent>*:not(br):not(p), .Readarea>*:not(br):not(p), .ReadAjax_content>*:not(br):not(p), #nr1>.readinline, #chaptercontent>.readinline, .Readarea>.readinline, .ReadAjax_content>.readinline {display: none !important;}', history: true, retry: 3000, pager: { @@ -640,7 +640,7 @@ function: { }, // 笔趣阁 1 - 手机版 模板的小说网站 biquge2: { url: ()=> {if (isMobile() || getCSS('.chapter-page-btn') != null) {curSite = DBSite.biquge2_m;} else {curSite = DBSite.biquge2;}}, - style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #txt > *:not(br):not(p) {display: none !important;}', + style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #txt > *:not(br):not(p), #txt>.readinline, .txt>.readinline {display: none !important;}', history: true, retry: 3000, pager: { @@ -654,7 +654,7 @@ function: { } }, // 笔趣阁 2 模板的小说网站 biquge2_m: { - style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #txt > *:not(br):not(p) {display: none !important;}', + style: 'img, .posterror, a[href*="posterror()"], [style*="background"][style*="url("]:not(html):not(body), #txt > *:not(br):not(p), #txt>.readinline, .txt>.readinline {display: none !important;}', history: true, retry: 3000, pager: { @@ -670,7 +670,7 @@ function: { retry: 3000, pager: { nextL: '//a[contains(text(), "下一章") or contains(text(), "下一页") or contains(text(), "下一节")]', - insertP6Br: true, + insertP6Br: false, replaceE: '//a[contains(text(), "下一章") or contains(text(), "下一页") or contains(text(), "下一节")]/parent::*' }, function: { @@ -2127,7 +2127,31 @@ function: { // 插入新页面元素 if (curSite.pager.insertP[1] === 6) { // 插入到目标内部末尾(针对文本,比如小说网页) let afterend = ''; - if (curSite.pager.insertP6Br) afterend += '

' + if (curSite.pager.insertP6Br === false) { // 这个基本上只有脚本内置的通用规则会用上,因为该通用规则匹配到的网站正文
是未知的,所以需要判断一下数量 + if (unsafeWindow.insertP6Br === true) { + afterend += '

' + } else if (unsafeWindow.insertP6Br === undefined) { + if (getAll('br', getOne(curSite.pager.pageE)).length > 10) { + + function checklastElementsBr(e) { + const children = Array.from(e.childNodes).filter(node => {return node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '');}), lastElement = children[children.length - 1]; + if (lastElement.tagName === 'BR') { // 判断最后一个元素 + return true; // 最后一个元素是
+ } else if (lastElement.tagName === 'P' && lastElement.classList.contains('readinline')) { // 判断倒数第二个元素 + return children[children.length - 2].tagName === 'BR'; // 倒数第二个元素是
+ } + return false; // 其他情况 + }; + // 如果正文末尾最后一个元素不是
且 倒数第二个元素也不是
时,才添加

+ if (!checklastElementsBr(getOne(curSite.pager.pageE))) { + unsafeWindow.insertP6Br = true; + afterend += '

' + } else {unsafeWindow.insertP6Br = false;} + } + } + } else if (curSite.pager.insertP6Br) { // 对于其他 insertP6Br: true 的规则,则依然直接添加
+ afterend += '

' + } pageE.forEach(function (one) {afterend += one.innerHTML;}); toE.insertAdjacentHTML(addTo, afterend); } else {