Skip to content

Commit

Permalink
优化 [笔趣阁类小说网站] 通用规则(隐藏一些与正文无关的内容,以及现在会自动判断是否要在章节正文末尾加换行间隔)
Browse files Browse the repository at this point in the history
  • Loading branch information
XIU2 committed Aug 18, 2024
1 parent 14a53fe commit 36f670b
Showing 1 changed file with 32 additions and 8 deletions.
40 changes: 32 additions & 8 deletions Autopage.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -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...) 等網站~
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -613,7 +613,7 @@ function: {
}, // 部分使用 Typecho 的网站 (Mirages)
biquge1: {
url: ()=> {curSite = DBSite.biquge1;xs_bF(getAllCSS('.content > #content'),[/<br>.{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: {
Expand All @@ -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: {
Expand All @@ -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: {
Expand All @@ -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: {
Expand All @@ -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: {
Expand Down Expand Up @@ -2127,7 +2127,31 @@ function: {
// 插入新页面元素
if (curSite.pager.insertP[1] === 6) { // 插入到目标内部末尾(针对文本,比如小说网页)
let afterend = '';
if (curSite.pager.insertP6Br) afterend += '<br/><br/>'
if (curSite.pager.insertP6Br === false) { // 这个基本上只有脚本内置的通用规则会用上,因为该通用规则匹配到的网站正文 <br> 是未知的,所以需要判断一下数量
if (unsafeWindow.insertP6Br === true) {
afterend += '<br/><br/>'
} 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; // 最后一个元素是 <br>
} else if (lastElement.tagName === 'P' && lastElement.classList.contains('readinline')) { // 判断倒数第二个元素
return children[children.length - 2].tagName === 'BR'; // 倒数第二个元素是 <br>
}
return false; // 其他情况
};
// 如果正文末尾最后一个元素不是 <br> 且 倒数第二个元素也不是 <br> 时,才添加 <br/><br/>
if (!checklastElementsBr(getOne(curSite.pager.pageE))) {
unsafeWindow.insertP6Br = true;
afterend += '<br/><br/>'
} else {unsafeWindow.insertP6Br = false;}
}
}
} else if (curSite.pager.insertP6Br) { // 对于其他 insertP6Br: true 的规则,则依然直接添加 <br>
afterend += '<br/><br/>'
}
pageE.forEach(function (one) {afterend += one.innerHTML;});
toE.insertAdjacentHTML(addTo, afterend);
} else {
Expand Down

0 comments on commit 36f670b

Please sign in to comment.