From 847a0c6499b8ed7be6e736dd71c9d2d1dba085a3 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Wed, 17 Nov 2021 10:10:34 +0800 Subject: [PATCH 0001/1664] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E6=B7=98?= =?UTF-8?q?=E8=82=A1=E5=90=A7]=20=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 69 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index df09b9a67..a2766cf94 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.4.6 +// @version 3.4.7 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -29,7 +29,7 @@ ['menu_discuz_thread_page', '帖子内自动翻页', '帖子内自动翻页', true], ['menu_page_number', '显示当前页码及点击暂停翻页', '显示当前页码及点击暂停翻页', true], ['menu_pause_page', '左键双击网页空白处暂停翻页', '左键双击网页空白处暂停翻页', false] - ], menuId = [], webType = 0, curSite = {SiteTypeID: 0}, DBSite, SiteType, pausePage = true, pageNum = {now: 1, _now: 1}, locationChange = false, nowLocation = '', forumWebsite = ['cs.rin.ru', 'www.flyert.com', 'bbs.pediy.com', 'www.libaclub.com', 'tieba.baidu.com', 'www.cadtutor.net', 'www.theswamp.org', 'www.xuexiniu.com', 'bbs.xuexiniu.com']; + ], menuId = [], webType = 0, curSite = {SiteTypeID: 0}, DBSite, SiteType, pausePage = true, pageNum = {now: 1, _now: 1}, locationChange = false, nowLocation = '', forumWebsite = ['cs.rin.ru', 'www.flyert.com', 'bbs.pediy.com', 'www.libaclub.com', 'tieba.baidu.com', 'www.cadtutor.net', 'www.theswamp.org', 'www.xuexiniu.com', 'bbs.xuexiniu.com', 'www.taoguba.com.cn']; for (let i=0;i -1) { + curSite = DBSite.taoguba_t; + } else if (location.pathname.indexOf('/shenghuoba/') > -1) { + curSite = DBSite.taoguba_; + } else if (/\/bbs|zongban|dianzan|jinghua\//.test(location.pathname)) { + curSite = DBSite.taoguba; + }}, + pager: { + type: 1, + nextL: function() { + let next = getXpath('//div[contains(@class, "t_page01")]/a[contains(text(), "下一页")]'), next_ = '/'; + if (next) { + next = next.getAttribute('onclick').replace('gotoPage(','').replace(')','').split(','); + if (/\/dianzan|jinghua\//.test(location.pathname)) next_ = '-'; + if (parseInt(next[0]) <= parseInt(next[2])) {return (`${location.origin}/${location.pathname.split('/')[1]}/${next[0]}${next_}${next[1]}`)} + } + return ''; + }, + pageE: 'css;.p_list > .p_list01[class*="user_"]', + insertP: ['//div[@class="p_list"][./div[contains(@class, "user_")]]', 3], + replaceE: 'css;.t_page', + scrollD: 1000 + } + }, // 淘股吧论坛 + taoguba_: { + pager: { + type: 1, + nextL: function() { + let next = getCSS('#N_go_pageBtn'), next_ = location.pathname.split('/')[2].split('-')[0]; + if (next && (parseInt(next.dataset.now) + 1 <= parseInt(next.dataset.total))) { + if (!next_) next_ = 'H'; + return (`${location.origin}/shenghuoba/${next_}-${parseInt(next.dataset.now) + 1}`) + } + return ''; + }, + pageE: 'css;.lifeContent-topicList-item', + insertP: ['//div[@class="lifeContent-topicList"]//div[@class="lifeContent-topicList-item"][last()]', 4], + replaceE: 'css;.N_sortPage ', + scrollD: 1000 + } + }, // 淘股吧论坛 - 生活圈 + taoguba_t: { + pager: { + type: 1, + nextL: function() { + let next = getXpath('//div[contains(@class, "t_page01")]/a[contains(text(), "下一页")]'); + if (next) { + next = next.getAttribute('onclick').replace('gotoPageTopic(','').replace(')','').split(','); + if (parseInt(next[0]) <= parseInt(next[1])) {return (`${location.origin}/Article/${getCSS("#looktopicID").value}/${next[0]}`)} + } + return ''; + }, + pageE: 'css;div[id^="reply_"]', + insertP: ['css;#new_wrap_container', 3], + replaceE: 'css;.t_page', + scrollD: 1000 + }, + function: { + bF: src_bF, + pF: [0, 'img[data-original]', 'data-original'] + } + }, // 淘股吧论坛 - 帖子内 lowendtalk: { host: 'lowendtalk.com', pager: { From 98bc20a22a2c0588f9049b6619790b342678090a Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Wed, 17 Nov 2021 10:14:23 +0800 Subject: [PATCH 0002/1664] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20[PubMed]=20?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index a2766cf94..cdb0962c5 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.4.7 +// @version 3.4.8 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -4059,7 +4059,7 @@ pager: { type: 2, nextL: 'css;button.load-button.next-page', - nextText: 'Show more', + nextText: 'Show more results', scrollD: 1500 } }, // 学术 From df9ed26a633c17333c3a69537a9cf8bfc981f7f9 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Wed, 17 Nov 2021 12:31:46 +0800 Subject: [PATCH 0003/1664] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E5=8D=83?= =?UTF-8?q?=E5=BA=93=E7=BD=91]=E3=80=81[=E6=98=B5=E5=9B=BE=E7=BD=91]=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/Autopage.user.js b/Autopage.user.js index cdb0962c5..e5c93ea89 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.4.8 +// @version 3.4.9 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -1344,6 +1344,38 @@ pF: [0, 'img[data-original]', 'data-original'] } }, // 千图网 - 专题/收藏夹 + _588ku: { + host: '588ku.com', + insStyle: '.listlogin-box.listloginBox, .CLdialogV1, .editIndexEntry, .globalRSideB {display: none !important;}', + pager: { + type: 1, + nextL: '//ul[contains(@class, "page-list")]//a[text()="下一页"]', + pageE: 'css;.data-box .dataList, .data-box .data-list', + insertP: ['css;.data-box .dataList, .data-box .data-list', 3], + replaceE: 'css;ul.page-list', + scrollD: 2000 + }, + function: { + bF: src_bF, + pF: [0, 'img[data-original]', 'data-original'] + } + }, // 千库网 + nipic: { + host: ['www.nipic.com', 'soso.nipic.com'], + insStyle: 'li.search-works-item {display: none !important;}', + pager: { + type: 1, + nextL: '//a[@title="下一页" or text()="下一页"][not(contains(@class, "search-works-nextpage"))]', + pageE: 'css;ul#img-list-outer > li', + insertP: ['css;ul#img-list-outer', 3], + replaceE: 'css;.common-page-box, .common-seo-page-box', + scrollD: 2000 + }, + function: { + bF: src_bF, + pF: [0, 'img[data-original]', 'data-original'] + } + }, // 昵图网 pixabay: { host: 'pixabay.com', pager: { From 3e18ad18e3386a97a5457d612b37ab1a2bc56411 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Thu, 18 Nov 2021 13:08:57 +0800 Subject: [PATCH 0004/1664] =?UTF-8?q?=E8=A1=A5=E5=85=85=20[=E6=BC=AB?= =?UTF-8?q?=E7=94=BB=E7=8C=AB]=E3=80=81[=E6=8B=B7=E8=B4=9D=E6=BC=AB?= =?UTF-8?q?=E7=94=BB]=20=E5=85=B6=E4=BB=96=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index e5c93ea89..8268e7a12 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.4.9 +// @version 3.5.0 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -364,7 +364,7 @@ } }, // 百度 搜素 google: { - host: /.google./, + host: /\.google\./, functionStart: function() {if (location.pathname === '/search') { curSite = DBSite.google; } else if (location.pathname === '/scholar') { @@ -2498,7 +2498,7 @@ } }, // 动漫狂 - 分类/搜索页 manhuacat: { - host: 'www.manhuacat.com', + host: ['www.manhuacat.com', 'www.maofly.com'], functionStart: function() {if (/\/manga\/\d+\/.+\.html/.test(location.pathname)) { if (getCookie('is_pull') == 'true') { // 强制关闭 [下拉] 模式 document.cookie='is_pull=false; expires=Thu, 18 Dec 2031 12:00:00 GMT; path=/'; // 写入 Cookie 关闭 [下拉] 模式 @@ -2702,7 +2702,7 @@ } }, //动漫之家 - 日漫 - 最新更新 copymanga: { - host: ['copymanga.com', 'www.copymanga.com'], + host: /copymanga\./, functionStart: function() {if (location.pathname.indexOf('/chapter/') > -1) { curSite = DBSite.copymanga; } else if (location.pathname.indexOf('/comics') > -1) { @@ -4050,7 +4050,7 @@ } }, // 致美化 - 文章列表 lanzou: { - host: /\.lanzou[a-z]/, + host: /\.lanzou[a-z]\./, hiddenPN: true, pager: { type: 2, @@ -4586,7 +4586,7 @@ } }, // 妹子图 - 分类/搜索页 xiurenji: { - host: /.xiurenji./, + host: /\.xiurenji\./, functionStart: function() {insStyle('img[src$=".gif"]:not([src*="logo"]) {display: none !important;}'); if (location.pathname.indexOf('.html') > -1 && location.pathname.indexOf('/index') === -1) { curSite = DBSite.xiurenji; From bf556d763ae6601a4b979be05bd3ae54e2cb08c6 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Thu, 18 Nov 2021 17:43:52 +0800 Subject: [PATCH 0005/1664] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=8A=A0?= =?UTF-8?q?=E9=80=9F=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GithubEnhanced-High-Speed-Download.user.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/GithubEnhanced-High-Speed-Download.user.js b/GithubEnhanced-High-Speed-Download.user.js index 50843bf7e..2e336f99a 100644 --- a/GithubEnhanced-High-Speed-Download.user.js +++ b/GithubEnhanced-High-Speed-Download.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Github 增强 - 高速下载 -// @version 1.6.5 +// @version 1.6.6 // @author X.I.U // @description 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件、项目列表单文件快捷下载 (☁) // @match *://github.com/* @@ -45,9 +45,8 @@ ['https://gh.api.99988866.xyz', '美国 1'], ['https://github.91chifun.workers.dev', '美国 2'], ['https://gh.xiu2.xyz', '美国 3'], - ['https://gh.argv.cc', '美国 4'], + ['https://github.rc1844.workers.dev', '美国 4'], ['https://pd.zwc365.com/seturl', '美国 5'], - ['https://git.yumenaka.net', '美国 6'], ['https://download.fastgit.org', '日本'], ['https://ghproxy.com', '韩国'] ], @@ -64,8 +63,7 @@ ['https://raw.githubusercontent.com', 'Github 原生',''], ['https://cdn.jsdelivr.net','中国国内', '注意:该加速源存在缓存机制(24小时),所以文件可能不是最新。 注意:当前分支所有文件总文件大小超过 50MB 时,该加速源不可用。 注意:当前分支名为版本号格式时(如 v1.2.3),该高速下载链接因格式限制不可用。'], ['https://raw.fastgit.org','中国香港', '注意:单个文件太大时可能会提示超时(实时获取中),请重试。'], - ['https://cdn.staticaly.com','日本东京', '注意:该加速是全球 Anycast CDN,国内一般分配到日本节点。'], - ['https://ghproxy.com','韩国首尔', ''] + ['https://cdn.staticaly.com','日本东京', '注意:该加速是全球 Anycast CDN,国内一般分配到日本节点。'] ], svg = [ '', @@ -145,7 +143,8 @@ _html = `
`; for (let i=0;i`; for (let i=0;i Date: Thu, 18 Nov 2021 18:12:51 +0800 Subject: [PATCH 0006/1664] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81;=20=E7=A7=BB=E9=99=A4=20=E6=97=A7=E7=89=88=20Release?= =?UTF-8?q?=20=E6=A0=B7=E5=BC=8F=E7=9A=84=E6=94=AF=E6=8C=81=20(Github=20?= =?UTF-8?q?=E5=B7=B2=E5=AE=8C=E5=85=A8=E6=9B=B4=E6=96=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GithubEnhanced-High-Speed-Download.user.js | 138 +++++---------------- 1 file changed, 34 insertions(+), 104 deletions(-) diff --git a/GithubEnhanced-High-Speed-Download.user.js b/GithubEnhanced-High-Speed-Download.user.js index 2e336f99a..70e68fd49 100644 --- a/GithubEnhanced-High-Speed-Download.user.js +++ b/GithubEnhanced-High-Speed-Download.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Github 增强 - 高速下载 -// @version 1.6.6 +// @version 1.6.7 // @author X.I.U // @description 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件、项目列表单文件快捷下载 (☁) // @match *://github.com/* @@ -21,34 +21,28 @@ (function() { 'use strict'; - var backColor = '#ffffff'; - var fontColor = '#888888'; + var backColor = '#ffffff', fontColor = '#888888'; if (document.getElementsByTagName('html')[0].getAttribute('data-color-mode') === 'dark') { // 黑暗模式判断 if (document.getElementsByTagName('html')[0].getAttribute('data-dark-theme') === 'dark_dimmed') { - backColor = '#272e37'; - fontColor = '#768390'; + backColor = '#272e37'; fontColor = '#768390'; } else { - backColor = '#161a21'; - fontColor = '#97a0aa'; + backColor = '#161a21'; fontColor = '#97a0aa'; } } else if (document.getElementsByTagName('html')[0].getAttribute('data-color-mode') === 'auto') { - //console.log(window.getComputedStyle(document.body).backgroundColor) if (window.getComputedStyle(document.body).backgroundColor === 'rgb(34, 39, 46)') { - backColor = '#272e37'; - fontColor = '#768390'; + backColor = '#272e37'; fontColor = '#768390'; } else if (window.getComputedStyle(document.body).backgroundColor === 'rgb(13, 17, 23)') { - backColor = '#161a21'; - fontColor = '#97a0aa'; + backColor = '#161a21'; fontColor = '#97a0aa'; } } const download_url = [ - ['https://gh.api.99988866.xyz', '美国 1'], - ['https://github.91chifun.workers.dev', '美国 2'], - ['https://gh.xiu2.xyz', '美国 3'], + ['https://gh.api.99988866.xyz/https://github.com', '美国 1'], + ['https://github.91chifun.workers.dev/https://github.com', '美国 2'], + ['https://gh.xiu2.xyz/https://github.com', '美国 3'], ['https://github.rc1844.workers.dev', '美国 4'], - ['https://pd.zwc365.com/seturl', '美国 5'], + ['https://pd.zwc365.com/seturl/https://github.com', '美国 5'], ['https://download.fastgit.org', '日本'], - ['https://ghproxy.com', '韩国'] + ['https://ghproxy.com/https://github.com/', '韩国'] ], clone_url = [ ['https://hub.fastgit.org', '中国香港'], @@ -132,89 +126,28 @@ // Release function addRelease() { - let html = document.getElementsByClassName('Box-footer');//if (html.length == 0) return + let html = document.getElementsByClassName('Box-footer'); if (html.length == 0) return let divDisplay = ''; - if (html.length > 0) { - if (document.documentElement.clientWidth > 1000) {divDisplay = 'float: right;margin-top: -3px;margin-left: 8px;';}; // 调整小屏幕下样式 - Array.from(html).forEach(function (current) { - current.querySelectorAll('li.Box-row > a').forEach(function (_this) { - let href = _this.href.split(location.host), - url = [], - _html = `
`; - - for (let i=0;i${download_url[i][1]}` - } - _html += `
` - _this.insertAdjacentHTML('afterend', _html); - }); + if (document.documentElement.clientWidth > 1000) {divDisplay = 'float: right;margin-top: -3px;margin-left: 8px;';}; // 调整小屏幕时的样式 + Array.from(html).forEach(function (current) { + current.querySelectorAll('li.Box-row > a').forEach(function (_this) { + let href = _this.href.split(location.host), + url = [], + _html = `
`; + // 循环组合 URL 链接 + for (let i=0;i -1) url[i] = url[i].replace('https://download.fastgit.org','https://archive.fastgit.org') + } + // 循环生成 HTML 标签 + for (let i=0;i${download_url[i][1]}` + } + _html += `
` + _this.insertAdjacentHTML('afterend', _html); }); - } else if (document.getElementsByClassName('Box Box--condensed').length > 0) { - html = document.getElementsByClassName('Box Box--condensed') - if (document.documentElement.clientWidth > 1000) {divDisplay = 'display: flex;';} else {divDisplay = 'display: block;';} - Array.from(html).forEach(function (current) { - current.querySelectorAll('.d-flex.Box-body > a').forEach(function (_this) { - let href = _this.href.split(location.host), - url = [], - _html = `
`; - - for (let i=0;i${download_url[i][1]}` - } - _html += `
` - _this.nextElementSibling.insertAdjacentHTML('afterend', _html); - }); - // 修改[文件大小]元素样式 - document.querySelectorAll('.Box.Box--condensed small').forEach(el=>{el.style.cssText='display: flex; justify-content: flex-end; flex-grow: 1; margin-right: 8px;'}); - - - // Source Code - current.querySelectorAll('.d-block.Box-body > a').forEach(function (_this) { - let href = _this.href.split(location.host), - url = [], - _html = `
`; - - for (let i=0;i${download_url[i][1]}` - } - _html += `
` - _this.insertAdjacentHTML('afterend', _html); - }); - }); - // 修改 Source code 样式,使其和加速按钮并列一排 - document.querySelectorAll('div.d-block.py-1.py-md-2.Box-body.px-2').forEach(el=>{el.className='d-flex py-1 py-md-2 Box-body px-2'}); - } else { - return - } + }); } @@ -227,12 +160,9 @@ _html = ``; for (let i=0;i -1) url[i] = url[i].replace('https://download.fastgit.org','https://archive.fastgit.org') } for (let i=0;i Date: Fri, 19 Nov 2021 10:59:01 +0800 Subject: [PATCH 0007/1664] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E6=BC=AB?= =?UTF-8?q?=E7=94=BB=E6=9F=9C]=20=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 131 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 105 insertions(+), 26 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index 8268e7a12..490d946db 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.5.0 +// @version 3.5.1 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -2585,6 +2585,42 @@ scrollD: 1500 } }, // 漫画台 - 搜索页 + manhuagui: { + host: 'www.mhgui.com', + functionStart: function() {if (/\/comic\/\d+\/\d+\.html/.test(location.pathname)) { + if (!getXpath('//li[@class="pfunc"]/a[@class="current" and text()="双击"]')) getXpath('//li[@class="pfunc"]/a[text()="双击"]').click(); + pausePage = false; + setTimeout(manhuagui_init, 100); + curSite = DBSite.manhuagui; + } else if (location.pathname.indexOf('list/') > -1 || location.pathname.indexOf('/s/') > -1) { + curSite = DBSite.manhuagui_list; + }}, + insStyle: '.sub-btn, .tc {display: none !important;} #mangaBox > img {width: auto !important;height: auto !important;display: block !important;margin: 0 auto !important;}', + pager: { + type: 4, + nextL: manhuagui_nextL, + pageE: 'css;body > script:not([src])', + insertP: ['css;#mangaBox', 3], + insertE: manhuagui_insertE, + replaceE: 'css;title', + interval: 4000, + scrollD: 2500 + } + }, // 漫画柜 + manhuagui_list: { + pager: { + type: 1, + nextL: '//div[@class="pager"]/a[text()="下一页"]', + pageE: 'css;.book-result > ul > li, .book-list > ul > li', + insertP: ['css;.book-result > ul, .book-list > ul', 3], + replaceE: 'css;.pager', + scrollD: 1500 + }, + function: { + bF: src_bF, + pF: [0, 'img[data-src]', 'data-src'] + } + }, // 漫画台 - 分类/搜索页 manhuadb: { host: 'www.manhuadb.com', functionStart: function() {if (/\/manhua\/\d+\/.+\.html/.test(location.pathname)) { @@ -5287,7 +5323,7 @@ _img += ``; } getCSS('.img-content > img').remove(); - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } // [漫画猫] 获取下一页地址 @@ -5330,13 +5366,60 @@ _img += ``; } if (_img) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 当前页码 + 1 pageNum.now = pageNum._now + 1 } } + // [漫画柜] 初始化(将本话其余图片插入网页中) + function manhuagui_init() { + // hook imgDate 代码 + SMH.imgData = function(n) {window['imgDate'] = n;return{preInit:function(){}}} + // 重新执行本页的 imgDate 代码 + insScriptAll(curSite.pager.pageE); + let _img = '', imgPath = `${location.protocol}//i.hamreus.com${window['imgDate'].path}`; + //console.log(imgPath, window['imgDate']) + if (!(window['imgDate']) || !(imgPath)) return + // 遍历图片文件名数组,组合为 img 标签 + for (let i = 0; i < window['imgDate'].files.length; i++) { + _img += `` + } + // 插入并覆盖原来的一个图片 + getOne(curSite.pager.insertP[0]).innerHTML = _img; + pausePage = true; + } + // [漫画柜] 获取下一页地址 + function manhuagui_nextL() { + if (window['imgDate'].nextId == 0) return + var url = location.origin + location.pathname.replace(window['imgDate'].cid.toString(), window['imgDate'].nextId.toString()) + if (url === curSite.pageUrl) return + curSite.pageUrl = url + getPageElems(curSite.pageUrl); + } + // [漫画柜] 插入数据 + function manhuagui_insertE(pageElems, type) { + if (!pageElems) return + // 重新执行本页的 imgDate 代码 + insScriptAll(curSite.pager.pageE, document.body, pageElems); + let _img = '', imgPath = `${location.protocol}//i.hamreus.com${window['imgDate'].path}`; + //console.log(imgPath, window['imgDate']) + if (!(window['imgDate']) || !(imgPath)) return + // 遍历图片文件名数组,组合为 img 标签 + for (let i = 0; i < window['imgDate'].files.length; i++) { + _img += `` + } + // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); + // 添加历史记录 + window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); + document.title = pageElems.querySelector('title').textContent; + // 当前页码 + 1 + pageNum.now = pageNum._now + 1 + } + + // [漫画DB] 初始化(将本话其余图片插入网页中) function manhuadb_init() { let _img = '', @@ -5351,7 +5434,7 @@ let src = data.dataset.host + data.dataset.img_pre + json[i].img; _img += `` } - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } } }) @@ -5395,7 +5478,7 @@ if (src.indexOf('!p_c_c_') === -1) src += '!p_c_c_h' _img += `` }) - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 window.document.title = window.document.title.replace(/(\(第.+\))? - HiComic/, `(${getCSS('.chapter_name').textContent}) - HiComic`); // 修改网页标题(加上 第 X 话) } // [HiComic(嗨漫画)] 获取下一页地址 @@ -5426,7 +5509,7 @@ if (src.indexOf('!p_c_c_') === -1) src += '!p_c_c_h'; _img += `` } - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 当前页码 + 1 pageNum.now = pageNum._now + 1 } @@ -5439,7 +5522,7 @@ _img += ``; one.parentElement.remove(); }) - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } // [动漫之家] 获取下一页地址 @@ -5469,7 +5552,7 @@ _img += ``; } if (_img) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 添加历史记录 window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); @@ -5495,7 +5578,7 @@ _img += ``; one.parentElement.parentElement.remove(); }) - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } // [动漫之家-漫画] 获取下一页地址 @@ -5520,7 +5603,7 @@ _img += ``; } if (_img) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 添加历史记录 window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); @@ -5631,7 +5714,7 @@ } if (_img) { // 将 img 标签插入到网页中 - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 添加历史记录 window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); @@ -5671,7 +5754,7 @@ // 插入图片 setTimeout(function() { - getCSS(curSite.pager.insertP[0].replace('css;', '')).appendChild(document.createElement('img')).src = mhpicurl; + getOne(curSite.pager.insertP[0]).appendChild(document.createElement('img')).src = mhpicurl; // 添加历史记录 window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); @@ -5702,7 +5785,7 @@ _img += ``; } } - getCSS(curSite.pager.insertP[0].replace('css;', '')).innerHTML = _img; + getOne(curSite.pager.insertP[0]).innerHTML = _img; } // [乐语漫画] 获取下一页地址 @@ -5732,7 +5815,7 @@ } if (_img) { // 将 img 标签插入到网页中 - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 添加历史记录 window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); @@ -5754,7 +5837,7 @@ // [古风漫画网] 获取下一页地址 function gufengmh_nextL() { - let pageElems = getCSS(curSite.pager.pageE.replace('css;', '')); // 寻找数据所在元素 + let pageElems = getOne(curSite.pager.pageE); // 寻找数据所在元素 if (pageElems) { let comicUrl, nextId; var url = ''; @@ -5780,7 +5863,7 @@ let url = curSite.pageUrl; pageElems = getOne(curSite.pager.pageE, pageElems, pageElems); let chapterImages, chapterPath; - getCSS(curSite.pager.pageE.replace('css;', '')).innerText = pageElems.textContent; // 将当前网页内的数据所在元素内容改为刚刚获取的下一页数据内容,以便循环获取下一页 URL + getOne(curSite.pager.pageE).innerText = pageElems.textContent; // 将当前网页内的数据所在元素内容改为刚刚获取的下一页数据内容,以便循环获取下一页 URL pageElems.textContent.split(';').forEach(function (one){ // 分号 ; 分割为数组并遍历 //console.log(one) if (one.indexOf('chapterImages') > -1) { // 图片文件名数组 @@ -5798,7 +5881,7 @@ chapterImages.forEach(function (one2){ // 遍历图片文件名数组,组合为 img 标签 _img += '' }) - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 当前页码 + 1 pageNum.now = pageNum._now + 1 } @@ -5860,7 +5943,7 @@ _img += ``; } if (_img) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 添加历史记录 MANGABZ_PAGE += imgArr.length; @@ -5919,7 +6002,7 @@ _img += ``; } if (_img) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 // 添加历史记录 XMANHUA_PAGE += imgArr.length; @@ -5954,7 +6037,7 @@ function cocomanga_init() { let last = getCSS('.mh_comicpic:last-of-type'); if (last && last.getAttribute('p')) { - getCSS(curSite.pager.insertP[0].replace('css;', '')).innerHTML = ''; // 删除旧图片元素 + getOne(curSite.pager.insertP[0]).innerHTML = ''; // 删除旧图片元素 cocomanga_img(parseInt(last.getAttribute('p'))) // 插入新图片元素 } } @@ -5965,7 +6048,7 @@ for (let i=1; i<=totalImageCount; i++) { _img += `
`; } - getCSS(curSite.pager.insertP[0].replace('css;', '')).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } // [COCOMANGA 漫画] 获取下一页地址 function cocomanga_nextL() { @@ -6231,11 +6314,7 @@ if (typeof curSite.pager.nextL == 'function') { url = curSite.pager.nextL(); } else { - if (curSite.pager.nextL.slice(0,4) === 'css;') { - url = this.getFullHref(getCSS(curSite.pager.nextL.slice(4))); - } else { - url = this.getFullHref(getXpath(curSite.pager.nextL)); - } + url = this.getFullHref(getOne(curSite.pager.nextL)); } //console.log(url, curSite.pageUrl); if (url === '') return; From 70b40912d5ba4482dbf8da0c7ab24723f54d5927 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Fri, 19 Nov 2021 22:07:45 +0800 Subject: [PATCH 0008/1664] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20[Raw=20=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E4=B8=8B=E8=BD=BD(=E2=98=81)]=20=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?(Github=20=E6=9B=B4=E6=96=B0=E4=BA=86=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GithubEnhanced-High-Speed-Download.user.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/GithubEnhanced-High-Speed-Download.user.js b/GithubEnhanced-High-Speed-Download.user.js index 70e68fd49..5c852943c 100644 --- a/GithubEnhanced-High-Speed-Download.user.js +++ b/GithubEnhanced-High-Speed-Download.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Github 增强 - 高速下载 -// @version 1.6.7 +// @version 1.6.8 // @author X.I.U // @description 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件、项目列表单文件快捷下载 (☁) // @match *://github.com/* @@ -245,7 +245,7 @@ var mouseOverHandler = function(evt) { let elem = evt.currentTarget, aElm_new = elem.querySelectorAll('.fileDownLink'), - aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.color-icon-tertiary'); + aElm_now = elem.querySelectorAll('svg.octicon.octicon-file'); aElm_new.forEach(el=>{el.style.cssText = 'display: inline'}); aElm_now.forEach(el=>{el.style.cssText = 'display: none'}); }; @@ -254,7 +254,7 @@ var mouseOutHandler = function(evt) { let elem = evt.currentTarget, aElm_new = elem.querySelectorAll('.fileDownLink'), - aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.color-icon-tertiary'); + aElm_now = elem.querySelectorAll('svg.octicon.octicon-file'); aElm_new.forEach(el=>{el.style.cssText = 'display: none'}); aElm_now.forEach(el=>{el.style.cssText = 'display: inline'}); }; @@ -263,7 +263,7 @@ files.forEach(function(fileElm, i) { let trElm = fileElm.parentNode.parentNode, cntElm_a = trElm.querySelector('.css-truncate.css-truncate-target.d-block.width-fit a'), - cntElm_svg = trElm.querySelector('.mr-3.flex-shrink-0 svg.octicon.octicon-file.color-icon-tertiary'), + cntElm_svg = trElm.querySelector('.mr-3.flex-shrink-0 svg.octicon.octicon-file'), Name = cntElm_a.innerText, href = cntElm_a.attributes.href.nodeValue.replace(`https://${location.host}`,''); let href2 = href.replace('/blob/','/'), url, url_name, url_tip = ''; @@ -307,7 +307,7 @@ var mouseOverHandler = function(evt) { let elem = evt.currentTarget, aElm_new = elem.querySelectorAll('.fileDownLink'), - aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.color-icon-tertiary'); + aElm_now = elem.querySelectorAll('svg.octicon.octicon-file'); aElm_new.forEach(el=>{el.style.cssText = 'display: inline'}); aElm_now.forEach(el=>{el.style.cssText = 'display: none'}); }; @@ -316,7 +316,7 @@ var mouseOutHandler = function(evt) { let elem = evt.currentTarget, aElm_new = elem.querySelectorAll('.fileDownLink'), - aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.color-icon-tertiary'); + aElm_now = elem.querySelectorAll('svg.octicon.octicon-file'); aElm_new.forEach(el=>{el.style.cssText = 'display: none'}); aElm_now.forEach(el=>{el.style.cssText = 'display: inline'}); }; From a21badca2b62e2d7ae92d827e301cf31fc720315 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Fri, 19 Nov 2021 22:08:02 +0800 Subject: [PATCH 0009/1664] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[X-MOL=20-=20?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E9=A1=B5]=20=E6=94=AF=E6=8C=81;=20=E8=A1=A5?= =?UTF-8?q?=E5=85=85=20[=E6=BC=AB=E7=94=BB=E6=98=9F=E7=90=83]=20=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E5=9F=9F=E5=90=8D;=20=E4=BC=98=E5=8C=96=20=E5=A4=A7?= =?UTF-8?q?=E9=87=8F=E8=A7=84=E5=88=99;=20=E4=BC=98=E5=8C=96=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autopage.user.js | 866 +++++++++++++++-------------------------------- 1 file changed, 271 insertions(+), 595 deletions(-) diff --git a/Autopage.user.js b/Autopage.user.js index 490d946db..98b2b3c61 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 自动无缝翻页 -// @version 3.5.1 +// @version 3.5.2 // @author X.I.U // @description 无缝拼接下一页内容(瀑布流),目前支持:[所有「Discuz!、Flarum、phpBB、Xiuno、XenForo、DUX/XIU/D8/Begin(WP主题)」网站]、百度、谷歌、必应、搜狗、头条搜索、360 搜索、微信搜索、贴吧、豆瓣、微博、NGA、V2EX、B 站(Bilibili)、蓝奏云、煎蛋网、糗事百科、龙的天空、起点小说、IT之家、千图网、Pixabay、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、片库、茶杯狐、NO视频、低端影视、奈菲影视、音范丝、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、极简插件、小众软件、动漫狂、漫画猫、漫画 DB、动漫之家、拷贝漫画、包子漫画、古风漫画网、Mangabz、PubMed、GreasyFork、Github、StackOverflow(以上仅一小部分,更多的写不下了... // @match *://*/* @@ -97,6 +97,8 @@ scrollD: = 基准元素 - 可视区域底部 4 = 动态加载类网站(只能实现简单的) insertE: 插入元素的函数 + 5 = 插入 iframe 方式来加载下一页 + insStyle: 加载 iframe 前要插入的 CSS Style 样式 nextL: 下一页链接所在元素 pageE: 要获取的主体内容 insertP: 主体内容插入的位置 @@ -475,7 +477,7 @@ }, }, // DuckDuckGo 搜索 startpage: { - host: 'www.startpage.com', + host: ['startpage.com', 'www.startpage.com'], functionStart: function() {if (location.pathname.indexOf('/search') > -1) {curSite = DBSite.startpage;}}, pager: { type: 1, @@ -577,15 +579,17 @@ scrollD: 2000 }, function: { - bF: baidu_tieba_bF + bF: src_bF, + pF: [0, 'img[data-original]', 'data-original'] } }, // 百度贴吧 - 帖子列表 baidu_tieba_post: { insStyle: '.d_sign_split, img.j_user_sign, .d_author .d_pb_icons, .save_face_bg, .save_face_bg_2, li.d_name a.icon_tbworld, .lzl_cnt a.icon_tbworld {display: none !important;} a.p_author_face.j_frame_guide {background: none repeat scroll 0 0 #FFF !important;border: 1px solid #CCC !important;padding: inherit !important;} .red_text, .red-text, .vip_red, .vip-red, .vip_red:hover, .vip-red:hover, .vip_red:visited, .vip-red:visited {color: #2d64b3 !important;}', // 签名、印记、头像边框、VIP 元素 hiddenPN: true, pager: { - type: 4, - nextL: baidu_tieba_post_nextL, + type: 5, + nextL: '//li[contains(@class,"pb_list_pager")]/a[contains(text(),"下一页")]', + insStyle: '.topic_list_box, ul.tbui_aside_float_bar, .core_title_wrap_bright.tbui_follow_fixed.core_title_absolute_bright {display: none !important;}', scrollD: 1500 } }, // 百度贴吧 - 帖子内 @@ -742,7 +746,7 @@ scrollD: 1000 }, function: { - aF: nga_thread_aF + aF: function() {document.body.appendChild(document.createElement('script')).textContent = 'commonui.topicArg.loadAll();';} } }, // NGA - 各版块帖子列表 nga_read: { @@ -758,20 +762,20 @@ }, // NGA - 帖子内 v2ex_recent: { host: ['v2ex.com', 'www.v2ex.com'], - functionStart: function() {if (location.pathname === '/') { // 首页 + functionStart: function() {if (location.pathname === '/') { v2ex_aF('#Main a.topic-link:not([target])'); - } else if (location.pathname === '/recent') { // 最近主题页 + } else if (location.pathname === '/recent') { curSite = DBSite.v2ex_recent; v2ex_aF('#Main a.topic-link:not([target])'); - } else if (location.pathname === '/notifications') { // 提醒消息页 + } else if (location.pathname === '/notifications') { curSite = DBSite.v2ex_notifications; v2ex_aF('#Main a[href^="/t/"]:not([target])'); - } else if (location.pathname === '/balance') { // 账户余额页 + } else if (location.pathname === '/balance') { curSite = DBSite.v2ex_balance; - } else if (location.pathname.indexOf('/go/') > -1) { // 分类主题页 + } else if (location.pathname.indexOf('/go/') > -1) { curSite = DBSite.v2ex_go; v2ex_aF('#Main a.topic-link:not([target])'); - } else if (location.pathname.indexOf('/replies') > -1) { // 用户回复页 + } else if (location.pathname.indexOf('/replies') > -1) { curSite = DBSite.v2ex_replies; v2ex_aF('#Main a[href^="/t/"]:not([target])'); }}, @@ -1575,7 +1579,7 @@ host: 'mod.3dmgame.com', pager: { type: 1, - nextL: _3dmgame_mod_nextL, + nextL: function() {return getPage_nextL('//li[@class="page-list active"]/following-sibling::li[contains(@class, "page-list")]/a', 'Page=', /Page=\d+/)}, pageE: '//div[contains(@class, "game-mod-list") or contains(@class, "search-mod-list")] | //script[not(@src or @type)][contains(text(), ".game-mod-page") or contains(text(), ".search-mod-page")]', insertP: ['//div[contains(@class, "game-mod-wrap") or contains(@class, "search-mod ")]', 3], scriptT: 2, @@ -2385,10 +2389,11 @@ functionStart: function() {if (location.pathname != '/') {curSite = DBSite.assrt;};}, pager: { type: 1, - nextL: assrt_nextL, - pageE: 'css;.resultcard > div:not(#top-banner):not(#bottom-banner)', + nextL: function() {return getPage_nextL('css;#pl-current+a', 'page=', /page=\d+/);}, + pageE: 'css;.resultcard > div:not(#top-banner):not(#bottom-banner):not(.pagelinkcard)', insertP: ['css;.pagelinkcard', 1], replaceE: 'css;.pagelinkcard', + history: true, scrollD: 1000 } }, // 射手网(字幕) @@ -2666,7 +2671,7 @@ document.cookie='display_mode=1; expires=Thu, 18 Dec 2031 12:00:00 GMT; path=/'; // 写入 Cookie 开启 [上下滚动阅读] 模式 location.reload(); // 刷新网页 } - setTimeout(dmzj_init, 100); + setTimeout(function() {dmzj_init('.comic_wraCon > a > img')}, 100); curSite = DBSite.dmzj; } else if (location.pathname.indexOf('/category') > -1 || location.pathname.indexOf('/update') > -1) { curSite = DBSite.dmzj_list; @@ -2676,7 +2681,7 @@ insStyle: 'p.mh_curr_page, .btmBtnBox, .float_code, #floatCode {display: none !important;} .comic_wraCon > img {display: block !important;margin: 0 auto !important; border: none !important; padding: 0 !important; max-width: 99% !important; height: auto !important;}', // 隐藏中间的页数信息 pager: { type: 4, - nextL: dmzj_nextL, + nextL: 'css;span.next > a', insertP: ['css;.comic_wraCon', 3], insertE: dmzj_insertE, replaceE: 'css;.wrap_last_mid, .wrap_last_head, title', @@ -2711,7 +2716,7 @@ functionStart: function() {if (/\/\d+\.shtml/.test(location.pathname)) { let chapterScroll = getCSS('#qiehuan_txt') // 强制为 [上下滚动阅读] 模式 if (chapterScroll && chapterScroll.textContent === '切换到上下滚动阅读') {chapterScroll.click();} - setTimeout(dmzj_manhua_init, 100); + setTimeout(function() {dmzj_init('#center_box > .inner_img img[src]')}, 100); curSite = DBSite.dmzj_manhua; } else if (location.pathname.indexOf('/update') > -1) { curSite = DBSite.dmzj_manhua_update; @@ -2719,7 +2724,7 @@ insStyle: 'p.curr_page, .btmBtnBox, .float_code, #floatCode {display: none !important;} #center_box > img {display: block !important;margin: 0 auto !important; border: none !important; padding: 0 !important; max-width: 99% !important; height: auto !important;}', // 隐藏中间的页数信息 pager: { type: 4, - nextL: dmzj_manhua_nextL, + nextL: 'css;#next_chapter', insertP: ['css;#center_box', 3], insertE: dmzj_manhua_insertE, replaceE: 'css;.display_graybg, title', @@ -2748,8 +2753,9 @@ hiddenPN: true, insStyle: '.upMember, .comicContainerAds, .footer {display: none !important;} body, html {height: auto !important;}', pager: { - type: 4, - nextL: copymanga_nextL, + type: 5, + nextL: 'css;.comicContent-next > a', + insStyle: 'h4.header, h4.header +div[style*="fixed"] {display: none !important;}', history: true, scrollD: 3000 } @@ -2769,7 +2775,7 @@ } }, // 拷贝漫画 - 分类页 mhxqiu: { - host: 'www.mhxqiu.com', + host: /\.mhxqiu/, functionStart: function() {if (/\/\d+\.html/.test(location.pathname)) { // 阅读页 curSite = DBSite.mhxqiu; } else if (/\/\d+\/$/.test(location.pathname)) { // 目录页 @@ -2780,7 +2786,7 @@ insStyle: '.imgFloat_1, .imgFloat_2, .main_control, span.comic-ft {display: none !important;} html, body, #mainView {height: auto !important;} body.view .main ul.comic-contain li{margin:0 auto !important;} .comic-contain .loaded{box-shadow: none !important;}', pager: { type: 4, - nextL: mhxqiu_nextL, + nextL: 'css;#mainControlNext', insertP: ['css;#comicContain', 3], insertE: mhxqiu_insertE, replaceE: 'css;.main_control, h1.chaptername_title, span.title-comicHeading, title', @@ -2801,10 +2807,10 @@ fffdm: { host: 'manhua.fffdm.com', functionStart: function() {if (location.pathname.split('/').length === 4) {curSite = DBSite.fffdm;}}, - insStyle: '#footer, #header {display: none !important;}', + insStyle: '#footer, #header {display: none !important;} #mhimg0 img {display: block !important;margin: 0 auto !important;}', pager: { type: 4, - nextL: fffdm_nextL, + nextL: '//a[contains(text(), "下一页") or contains(text(), "下一頁") or contains(text(), "下一话") or contains(text(), "下一話")]', insertP: ['css;#mhimg0', 3], insertE: fffdm_insertE, replaceE: 'css;.navigation, #weizhi, h1, title', @@ -2843,7 +2849,7 @@ insStyle: '.mh_select, .mh_comicpic > p, mh_headpager {display: none !important;} .mh_comicpic > img{width: 100% !important; height: auto !important;}', pager: { type: 4, - nextL: leyuman_nextL, + nextL: 'css;#xurl', insertP: ['css;.mh_comicpic', 3], insertE: leyuman_insertE, replaceE: 'css;.mh_headpager, .mh_readtitle, title', @@ -2916,7 +2922,8 @@ scrollD: 2000 }, function: { - bF: szcdmj_bF + bF: src_bF, + pF: [0, 'img[data-original]', 'data-original'] } }, // 砂之船动漫家 szcdmj_list: { @@ -2932,7 +2939,7 @@ mangabz: { host: ['mangabz.com', 'www.mangabz.com'], functionStart: function() {if (/\/m\d+/.test(location.pathname)) { - setTimeout(mangabz_init, 500); + setTimeout(mangabz_init, 1500); curSite = DBSite.mangabz; } else if (/\/\d+bz\//.test(location.pathname)) { if (getCSS('.detail-list-form-more')) getCSS('.detail-list-form-more').click(); @@ -2947,7 +2954,7 @@ insertE: mangabz_insertE, replaceE: 'css;p.top-title, body > .container > div:not([id]), title', interval: 500, - scrollD: 1000 + scrollD: 2000 } }, // Mangabz 漫画 mangabz_list: { @@ -2963,7 +2970,7 @@ xmanhua: { host: ['xmanhua.com', 'www.xmanhua.com'], functionStart: function() {if (/\/m\d+/.test(location.pathname)) { - setTimeout(mangabz_init, 500); + setTimeout(mangabz_init, 1500); curSite = DBSite.xmanhua; } else if (/\/\d+xm\//.test(location.pathname)) { if (getCSS('.detail-list-form-more')) getCSS('.detail-list-form-more').click(); @@ -2979,7 +2986,7 @@ insertE: xmanhua_insertE, replaceE: 'css;.reader-title, body > .container > div:not([id]), title', interval: 500, - scrollD: 1500 + scrollD: 2500 } }, // Xmanhua 漫画 xmanhua_list: { @@ -3008,10 +3015,10 @@ } else if (location.pathname === '/search') { curSite = DBSite.cocomanga_search; }}, - insStyle: '.mh_readend, .mh_footpager, .mh_readmode {display: none !important;} .mh_comicpic img {cursor: unset !important;}', + insStyle: '.mh_readend, .mh_footpager, .mh_readmode {display: none !important;} .mh_comicpic img {cursor: unset !important;} .mh_comicpic img {min-height: 150px;}', pager: { type: 4, - nextL: cocomanga_nextL, + nextL: '//a[contains(@class, "read_page_link") and contains(string(), "下一章")][not(contains(@href, "javascript"))]', insertP: ['css;#mangalist', 3], insertE: cocomanga_insertE, replaceE: 'css;.mh_readtitle, .mh_headpager > a.mh_prevbook, .mh_readend, head > title', @@ -3022,7 +3029,7 @@ cocomanga_list: { pager: { type: 1, - nextL: cocomanga_list_nextL, + nextL: function() {return getPage_nextL('css;.fed-page-info a.fed-btns-green+a[onclick]', 'page=', /page=\d+/)}, pageE: 'css;ul.fed-list-info > li', insertP: ['css;ul.fed-list-info', 3], replaceE: 'css;.fed-page-info', @@ -3036,7 +3043,7 @@ cocomanga_search: { pager: { type: 1, - nextL: cocomanga_list_nextL, + nextL: function() {return getPage_nextL('css;.fed-page-info a.fed-btns-green+a[onclick]', 'page=', /page=\d+/)}, pageE: 'css;dl.fed-deta-info', insertP: ['css;.fed-page-info', 1], replaceE: 'css;.fed-page-info', @@ -4146,12 +4153,12 @@ }, // 学术 x_mol: { host: 'www.x-mol.com', - functionStart: function() {if (location.pathname.indexOf('/search/q') > -1) {curSite = DBSite.x_mol;}}, + functionStart: function() {if (location.pathname.indexOf('/search/q') > -1 || location.pathname.indexOf('/paper/') > -1) {curSite = DBSite.x_mol;}}, pager: { type: 1, - nextL: x_mol_mod_nextL, - pageE: 'css;.magazine-senior-search-results-list > ul > li', - insertP: ['css;.magazine-senior-search-results-list > ul', 3], + nextL: function() {return getPage_nextL('css;.pagination li.active+li > a', 'pageIndex=', /pageIndex=\d+/)}, + pageE: 'css;.magazine-senior-search-results-list > ul > li, .magazine-model-content-new > ul > li', + insertP: ['css;.magazine-senior-search-results-list > ul, .magazine-model-content-new > ul', 3], replaceE: 'css;.pagination', history: true, scrollD: 2000 @@ -4853,6 +4860,7 @@ //console.log(curSite); pageLoading(); // 自动无缝翻页 + // -------------------------------------------------------- // [Discuz! 论坛] 判断各版块帖子列表类型 function discuzForum() { @@ -4921,48 +4929,33 @@ } - // 插入 Style 样式 - function insStyle(style) { - document.lastElementChild.appendChild(document.createElement('style')).textContent = style; - } - - - // 通用型插入前函数(加载图片) - function src_bF(pageElems, css) { - pageElems.forEach(function (one) { - if (css[0] == 0) { // src 图片 - one.querySelectorAll(css[1]).forEach(function (now) { - now.src = now.getAttribute(css[2]); - }); - } else if (css[0] == 1) { // 背景图片 - one.querySelectorAll(css[1]).forEach(function (now) { - now.style.backgroundImage = 'url("' + now.getAttribute(css[2]) + '")'; - }); - } - }); - return pageElems - } - - // [头条搜索] 的插入前函数(过滤相关搜索) function toutiao_bF(pageElems) { - for (let i = 0; i < pageElems.length; i++) { - let now = pageElems[i].querySelector('div[class*="-header"]') - if (now && now.textContent === '相关搜索') { - pageElems.splice(i,1) - } - } + if (getXpath('//div[contains(@class,"-header") and string()="相关搜索"]', pageElems[pageElems.length - 1])) pageElems[pageElems.length - 1].style.display = 'none'; return pageElems } // [Startpage] 获取下一页地址 function startpage_nextL() { - let form = getXpath('//div[contains(@class, "pagination ")]/form[./button[@class="pagination__next-prev-button next"]]'); + let form = getXpath('//div[contains(@class, "pagination ")]/form[./button[@class="pagination__next-prev-button next"]]'), value; if (form) { - let action = form.action, value = ''; // 获取提交表单 URL form.querySelectorAll('input[name]').forEach(function(input) {value += input.name + '=' + input.value + '&';}) // 生成表单参数 - value = encodeURI(value.replace(/&$/,'')); // 清理最后一个 & 符号,并替换页码 + value = encodeURI(value.replace(/&$/,'')); // 清理最后一个 & 符号 + if (form.action && value) return (form.action + '?' + value) + } + return ''; + } + + + // [SkrBT] 获取下一页地址 + function skrbt_nextL() { + let page = getCSS('a[onclick][aria-label="Next"]'); + if (page) {page = /(?<=\()\d+(?=\))/.exec(page.onclick)[0];} else {return '';} // 获取下一页页码 + if (page) { + let action = getCSS('#search-form').action, value = ''; // 获取提交表单 URL + getAllCSS('#search-form input[name]').forEach(function(input) {value += input.name + '=' + input.value + '&';}) // 生成表单参数 + value = encodeURI(value.replace(/&$/,'').replace(/p=\d+/,'p=' + page)); // 清理最后一个 & 符号,并替换页码 if (action && value) return (action + '?' + value) } return ''; @@ -4979,26 +4972,12 @@ if (button) { button.onclick = function(){ let button2 = getCSS('div.edui-btn.edui-btn-fullscreen.edui-btn-name-portrait'); - if (button2) { - button2.click(); - } else { - alert('提示:登录后才能发帖!'); - } + if (button2) {button2.click();} else {alert('提示:登录后才能发帖!');} return false; } } } } - // [百度贴吧] 的插入前函数(加载图片) - function baidu_tieba_bF(pageElems) { - pageElems.forEach(function (one) { - one.querySelectorAll('img.threadlist_pic[data-original]').forEach(function (now) { - now.src = now.dataset.original; - now.style.display = 'inline'; - }) - }); - return pageElems - } // [百度贴吧] 获取下一页地址 function baidu_tieba_nextL() { let next = getCSS('a.next.pagination-item'); @@ -5024,7 +5003,7 @@ // 字符串格式化并转为 Element 元素 var temp_baidu_tieba = document.createElement('div'); temp_baidu_tieba.innerHTML = JSON.parse(scriptText).content; // 插入前执行函数 - pageElems = curSite.function.bF(getAll(curSite.pager.pageE, temp_baidu_tieba, temp_baidu_tieba)); + pageElems = curSite.function.bF(getAll(curSite.pager.pageE, temp_baidu_tieba, temp_baidu_tieba), curSite.function.pF); // 插入元素 pageElems.forEach(function (one) {toElement.insertAdjacentElement(addTo, one);}); // 当前页码 + 1 @@ -5041,12 +5020,6 @@ } - // [NGA(玩家社区)] 的插入后函数(加载各版块帖子列表样式) - function nga_thread_aF() { - document.body.appendChild(document.createElement('script')).textContent = 'commonui.topicArg.loadAll();'; - } - - // [V2EX] 的插入后函数(新标签页打开链接) function v2ex_aF(css) { let links = getAllCSS(css);if (!links) return @@ -5060,10 +5033,6 @@ if (next && next.getAttribute('aria-disabled') === 'false') { page = getCSS('li.ant-pagination-item-active[title]'); if (page && page.title) { - if (curSite.pager.interval) { - let _SiteTypeID = curSite.SiteTypeID; curSite.SiteTypeID = 0; - setTimeout(function(){curSite.SiteTypeID = _SiteTypeID;}, curSite.pager.interval) - } return (location.origin + location.pathname + '?page=' + ++page.title); } } @@ -5071,53 +5040,9 @@ } - // [3DM MOD] 获取下一页地址 - function _3dmgame_mod_nextL() { - let nextNum = getXpath('//li[@class="page-list active"]/following-sibling::li[contains(@class, "page-list")]/a'); - var url = ''; - if (nextNum && nextNum.textContent) { - nextNum = 'Page=' + nextNum.textContent; - if (location.search) { - let search = location.search.replace(/(&)?Page=\d+(&)?/, ''); - if (search === '?') { - url += location.origin + location.pathname + search + nextNum; - } else { - url += location.origin + location.pathname + search + '&' + nextNum; - } - } else { - url += location.origin + location.pathname + '?' + nextNum; - } - } - //console.log(url) - return url - } - - - // [X-MOL] 获取下一页地址 - function x_mol_mod_nextL() { - let nextNum = getCSS('.pagination li.active+li > a'); - var url; - if (nextNum && nextNum.textContent) { - if (location.search) { - let search; - if (location.search.indexOf('pageIndex=') > -1) { - search = location.search.replace(/pageIndex=\d+/, 'pageIndex=' + nextNum.textContent); - } else { - search = location.search + '&pageIndex=' + nextNum.textContent; - } - url = location.origin + location.pathname + search; - } - } - //console.log(url) - return url - } - - // [游民星空-攻略] 的插入前函数(移除下一页底部的 "更多相关内容请关注:xxx" 文字) function gamersky_gl_bF(pageElems) { - pageElems.forEach(function (one) { - if (one.tagName === 'P' && one.textContent.indexOf('更多相关内容请关注') > -1) {one.style.display = 'none';} - }); + pageElems.forEach(function (one) {if (one.tagName === 'P' && one.textContent.indexOf('更多相关内容请关注') > -1) {one.style.display = 'none';}}); return pageElems } @@ -5236,31 +5161,14 @@ if (next && next.className.indexOf('disabled') === -1) { let oldList = getCSS('tbody.row-hover').innerHTML; if (oldList) { - // 点击下一页 next.click(); - // 当前页码 + 1 - pageNum.now = pageNum._now + 1 - // 插入到列表头部 - getCSS('tbody.row-hover').insertAdjacentHTML('afterbegin', oldList); + pageNum.now = pageNum._now + 1; + getCSS('tbody.row-hover').insertAdjacentHTML('afterbegin', oldList); // 插入到列表头部 } } } - // [SkrBT] 获取下一页地址 - function skrbt_nextL() { - let page = getCSS('a[onclick][aria-label="Next"]'); - if (page) {page = /(?<=\()\d+(?=\))/.exec(page.onclick)[0];} else {return '';} // 获取下一页页码 - if (page) { - let action = getCSS('#search-form').action, value = ''; // 获取提交表单 URL - getAllCSS('#search-form input[name]').forEach(function(input) {value += input.name + '=' + input.value + '&';}) // 生成表单参数 - value = encodeURI(value.replace(/&$/,'').replace(/p=\d+/,'p=' + page)); // 清理最后一个 & 符号,并替换页码 - if (action && value) return (action + '?' + value) - } - return ''; - } - - // [BTHaha] 的插入前函数(隐藏底部元素) function bthaha_bF(pageElems) { pageElems.forEach(function (one) { @@ -5271,20 +5179,6 @@ } - // [射手网] 获取下一页地址 - function assrt_nextL() { - let nextXPAHT = '//a[@id="pl-nav"][contains(text(), ">")]' - let url = getXpath(nextXPAHT); - if (url) { - url = /(?<=\()\d+(?=,)/.exec(url.href)[0] - if (url) { - return (location.origin + location.pathname + location.search.replace(/(&)?page=\d+$/,'') + '&page=' + url); - } - } - return ''; - } - - // [LRepacks] 的插入前函数(调整 class) function lrepacks_bF(pageElems) { pageElems.forEach(function (one) { @@ -5299,12 +5193,10 @@ // [漫画狂] 获取下一页地址 function cartoonmad_nextL() { - let nextXPAHT = '//a[@class="pages"][contains(text(),"下一頁")]', - nextPXPATH = '//a[@class="pages"][contains(string(),"下一話")]' - let url = getXpath(nextXPAHT); + let url = getXpath('//a[@class="pages"][contains(text(),"下一頁")]'); if (url) { if (url.getAttribute('href') === 'thend.asp') { - url = getXpath(nextPXPATH) + url = getXpath('//a[@class="pages"][contains(string(),"下一話")]') if (url) return url.href; pausePage = false; GM_notification({text: `注意:该网站早期漫画(如海贼王、柯南)因为网站自身问题而无法翻至下一话(仅限于显示为 [第 X 卷]/[下一卷] 的)。\n因此需要手动去 [目录页] 进入下一卷!`, timeout: 10000}); @@ -5319,11 +5211,8 @@ // [漫画猫] 初始化(显示本话所以图片) function manhuacat_init() { let _img = ''; - for (let now of img_data_arr) { - _img += ``; - } - getCSS('.img-content > img').remove(); - getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 + for (let now of img_data_arr) {_img += ``;} + getOne(curSite.pager.insertP[0]).innerHTML = _img; } // [漫画猫] 获取下一页地址 @@ -5347,27 +5236,14 @@ if (type === 'url') { // 获取下一页链接 manhuacat_nextL(pageElems, type); return } - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - } + addHistory(pageElems); + replaceElement(pageElems); // 插入图片 let _img = '', _img_arr = LZString.decompressFromBase64(getXpath('//body/script[not(@src)][contains(text(), "img_data")]').textContent.split('"')[1]).split(','), vg_r_data = getCSS('.vg-r-data');; - for (let now of _img_arr) { - _img += ``; - } + for (let now of _img_arr) {_img += ``;} if (_img) { getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - // 当前页码 + 1 pageNum.now = pageNum._now + 1 } } @@ -5383,9 +5259,7 @@ //console.log(imgPath, window['imgDate']) if (!(window['imgDate']) || !(imgPath)) return // 遍历图片文件名数组,组合为 img 标签 - for (let i = 0; i < window['imgDate'].files.length; i++) { - _img += `` - } + for (let i = 0; i < window['imgDate'].files.length; i++) {_img += ``;} // 插入并覆盖原来的一个图片 getOne(curSite.pager.insertP[0]).innerHTML = _img; pausePage = true; @@ -5407,39 +5281,29 @@ //console.log(imgPath, window['imgDate']) if (!(window['imgDate']) || !(imgPath)) return // 遍历图片文件名数组,组合为 img 标签 - for (let i = 0; i < window['imgDate'].files.length; i++) { - _img += `` - } - // 将 img 标签插入到网页中 + for (let i = 0; i < window['imgDate'].files.length; i++) {_img += ``;} getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - document.title = pageElems.querySelector('title').textContent; - // 当前页码 + 1 + addHistory(pageElems); pageNum.now = pageNum._now + 1 } - // [漫画DB] 初始化(将本话其余图片插入网页中) + // [漫画 DB] 初始化(将本话其余图片插入网页中) function manhuadb_init() { - let _img = '', - data = getCSS('.vg-r-data'), imgDate; + let _img = '', data = getCSS('.vg-r-data'), imgDate; if (!data) return getAllCSS(curSite.pager.pageE.replace('css;', '')).forEach(function (one) { if (one.tagName === 'SCRIPT' && one.textContent.indexOf('var img_data =') > -1) { let json = JSON.parse(window.atob(one.textContent.split("'")[1])); if (json) { let _img = ''; - for (let i = 0; i < json.length; i++) { // 遍历图片文件名数组,组合为 img 标签 - let src = data.dataset.host + data.dataset.img_pre + json[i].img; - _img += `` - } + for (let i = 0; i < json.length; i++) {_img += ``;} getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 } } }) } - // [漫画DB] 获取下一页地址 + // [漫画 DB] 获取下一页地址 function manhuadb_nextL() { let nextArr = getAllCSS('a.fixed-a-es'), next; var url = ''; @@ -5454,16 +5318,11 @@ curSite.pageUrl = url getPageElems(curSite.pageUrl); } - // [漫画DB] 插入数据 + // [漫画 DB] 插入数据 function manhuadb_insertE(pageElems, type) { if (!pageElems) return - let oriE = getAllCSS(curSite.pager.pageE.replace('css;', '')), - repE = getAll(curSite.pager.pageE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - // 当前页码 + 1 + if (replaceElement(pageElems, curSite.pager.pageE, curSite.pager.pageE)) { + addHistory(pageElems); pageNum.now = pageNum._now + 1 manhuadb_init(); // 将刚刚替换的图片插入网页中 } @@ -5499,10 +5358,9 @@ getCSS('.next_chapter').id = 'None'; getCSS('.next_chapter').classList.add('end'); } + curSite.pageUrl =`https://www.hicomic.net/chapters/${pageElems.results.chapter.uuid}/contents` getCSS('.chapter_name').textContent = pageElems.results.chapter.name; // 修改漫画标题 - let title = window.document.title.replace(/(\(第.+\))? - HiComic/, `(${pageElems.results.chapter.name}) - HiComic`) - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, title, curSite.pageUrl); // 添加历史记录 - window.document.title = title; // 修改当前网页标题为下一话的标题 + addHistory(pageElems, window.document.title.replace(/(\(第.+\))? - HiComic/, `(${pageElems.results.chapter.name}) - HiComic`)); let _img = ''; for (let i = 0; i < pageElems.results.chapter.contents.length; i++) { // 遍历图片文件名数组,组合为 img 标签 let src = pageElems.results.chapter.contents[i].url; @@ -5510,30 +5368,15 @@ _img += `` } getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - // 当前页码 + 1 pageNum.now = pageNum._now + 1 } // [动漫之家] 初始化(调整本话其余图片) - function dmzj_init() { + function dmzj_init(css) { let _img = ''; - getAllCSS('.comic_wraCon > a > img').forEach(function (one) { - _img += ``; - one.parentElement.remove(); - }) - getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - - } - // [动漫之家] 获取下一页地址 - function dmzj_nextL() { - let next; - next = getCSS('span.next > a') - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - getPageElems(curSite.pageUrl); - } + getAllCSS(css).forEach(function (one) {_img += ``;}) + getOne(curSite.pager.insertP[0]).innerHTML = _img; } // [动漫之家] 插入数据 function dmzj_insertE(pageElems, type) { @@ -5553,42 +5396,8 @@ } if (_img) { getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - // 当前页码 + 1 - pageNum.now = pageNum._now + 1 - } - } - } - - - // [动漫之家-漫画] 初始化(调整本话其余图片) - function dmzj_manhua_init() { - let _img = ''; - getAllCSS('#center_box > .inner_img img[src]').forEach(function (one) { - _img += ``; - one.parentElement.parentElement.remove(); - }) - getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - - } - // [动漫之家-漫画] 获取下一页地址 - function dmzj_manhua_nextL() { - let next; - next = getCSS('#next_chapter') - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - getPageElems(curSite.pageUrl); + addHistory(pageElems); + if (replaceElement(pageElems)) pageNum.now = pageNum._now + 1 } } // [动漫之家-漫画] 插入数据 @@ -5604,103 +5413,12 @@ } if (_img) { getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - // 当前页码 + 1 - pageNum.now = pageNum._now + 1 - } - } - } - - - // [百度贴吧 - 帖子内] 加载下一页 - function baidu_tieba_post_nextL() { - let next; - next = getXpath('//li[contains(@class,"pb_list_pager")]/a[contains(text(),"下一页")]') - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - insStyle('topic_list_box, ul.tbui_aside_float_bar, .core_title_wrap_bright.tbui_follow_fixed.core_title_absolute_bright {display: none !important;}'); - insIframe(curSite.pageUrl); - } - } - - - // [拷贝漫画] 加载下一页 - function copymanga_nextL() { - let next; - next = getCSS('.comicContent-next > a') - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - insStyle('h4.header, h4.header +div[style*="fixed"] {display: none !important;}'); - insIframe(curSite.pageUrl); - } - } - - - // 插入 iframe 加载下一页 - function insIframe(src) { - // 停用当前页面翻页 - curSite.SiteTypeID = 0; - // 当滚动条到底部时(即完全显示 iframe 框架),隐藏当前页面的滚动条 - window.addEventListener('scroll', function (e) { - let scrollTop = document.documentElement.scrollTop || document.body.scrollTop, - scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight, - clientHeight = document.documentElement.clientHeight || document.body.clientHeight - if (scrollTop + clientHeight + 10 >= scrollHeight) { - if (!getCSS('#xiu-scroll')) { - let newStyle = document.createElement('style'); newStyle.id = 'xiu-scroll'; - document.lastElementChild.appendChild(newStyle).textContent = 'html::-webkit-scrollbar {width: 0 !important;height: 0 !important;} html {scrollbar-width: none !important;}'; - } - } else { - if (getCSS('#xiu-scroll')) { - getCSS('#xiu-scroll').remove(); - } - } - //console.log(`${scrollTop} + ${clientHeight} >= ${scrollTop + clientHeight} / ${scrollHeight}`) - }, false); - - // 创建 iframe - let iframe = document.createElement('iframe'); - iframe.style = 'position: absolute; width: 100%; height: 100%; border: none;'; - iframe.src = src; - - // 添加历史记录 - if (curSite.pager.history) { - // 加载完成后才继续 - iframe.onload = function() { - let title_ = iframe.contentWindow.document.title; - if (!title_) {title_ = window.top.document.title;}; - window.top.history.pushState(`{title: ${document.title}, url: ${location.href}}`, title_, curSite.pageUrl); - window.top.document.title = iframe.contentWindow.document.title - }; + addHistory(pageElems); + if (replaceElement(pageElems)) pageNum.now = pageNum._now + 1 } - - // 插入 iframe - document.lastElementChild.appendChild(iframe); } - // [漫画星球] 获取下一页地址 - function mhxqiu_nextL() { - let next = getCSS('#mainControlNext'); - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - //console.log(curSite.pageUrl) - getPageElems(curSite.pageUrl); - } - } // [漫画星球] 插入数据 function mhxqiu_insertE(pageElems, type) { if (!pageElems) return @@ -5709,40 +5427,17 @@ // 插入图片 let _img = ''; - for (let now of newImgs) { - _img += `
  • `; - } + for (let now of newImgs) {_img += `
  • `;} if (_img) { // 将 img 标签插入到网页中 getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 当前页码 + 1 + addHistory(pageElems); pageNum.now = pageNum._now + 1 - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - } + replaceElement(pageElems) } } - // [风之动漫] 获取下一页地址 - function fffdm_nextL() { - let next = getXpath('//a[contains(text(), "下一页") or contains(text(), "下一话")]'); - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - getPageElems(curSite.pageUrl); - } - } // [风之动漫] 插入数据 function fffdm_insertE(pageElems, type) { if (!pageElems) return @@ -5755,21 +5450,9 @@ // 插入图片 setTimeout(function() { getOne(curSite.pager.insertP[0]).appendChild(document.createElement('img')).src = mhpicurl; - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 当前页码 + 1 + addHistory(pageElems); pageNum.now = pageNum._now + 1 - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - } + replaceElement(pageElems) }, 100) } } @@ -5788,16 +5471,6 @@ getOne(curSite.pager.insertP[0]).innerHTML = _img; } - // [乐语漫画] 获取下一页地址 - function leyuman_nextL() { - let next = getCSS('#xurl'); - if (next) { - if (next.href === curSite.pageUrl) return - curSite.pageUrl = next.href; - //console.log(curSite.pageUrl) - getPageElems(curSite.pageUrl); - } - } // [乐语漫画] 插入数据 function leyuman_insertE(pageElems, type) { if (!pageElems) return @@ -5816,21 +5489,9 @@ if (_img) { // 将 img 标签插入到网页中 getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); - - // 添加历史记录 - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, pageElems.querySelector('title').textContent, curSite.pageUrl); - - // 当前页码 + 1 + addHistory(pageElems); pageNum.now = pageNum._now + 1 - - // 替换元素 - let oriE = getAllCSS(curSite.pager.replaceE.replace('css;', '')), - repE = getAll(curSite.pager.replaceE, pageElems, pageElems); - if (oriE.length === repE.length) { - for (let i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - } + replaceElement(pageElems) } } @@ -5871,37 +5532,19 @@ } else if (one.indexOf('chapterPath') > -1) { // 图片文件路径 chapterPath = one.split('"')[1]; } else if (one.indexOf('pageTitle') > -1) { // 网页标题 - let title = one.split('"')[1]; - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, title, url); // 添加历史记录 - window.document.title = title; // 修改当前网页标题为下一页的标题 + addHistory(pageElems, one.split('"')[1]); } }) if (chapterImages && chapterPath) { let _img = ''; - chapterImages.forEach(function (one2){ // 遍历图片文件名数组,组合为 img 标签 - _img += '' - }) + chapterImages.forEach(function (one2){_img += '';}) getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - // 当前页码 + 1 pageNum.now = pageNum._now + 1 } } } - // [砂之船动漫家] 的插入前函数(加载图片) - function szcdmj_bF(pageElems) { - pageElems.forEach(function (one) { - let now = one.querySelector('img[data-original]') - if (now) { - now.src = now.dataset.original; - now.style.display = 'inline'; - } - }); - return pageElems - } - - // [Mangabz 漫画] 初始化(调整本话图片) function mangabz_init() { let showimage = getCSS('#showimage'), @@ -5919,11 +5562,7 @@ function mangabz_nextL() { var url = ''; if (MANGABZ_PAGE === MANGABZ_IMAGE_COUNT) { // 下一话 - url = getXpath('//a[./img[contains(@src, "icon_xiayizhang")]]') - if (url === curSite.pageUrl) return - curSite.pageUrl = url - //console.log(curSite.pageUrl) - getPageElems(curSite.pageUrl); // 访问下一话 URL 获取 + if (getE_nextL('//a[./img[contains(@src, "icon_xiayizhang")]]')) getPageElems(curSite.pageUrl); // 访问下一话 URL 获取 } else { // 下一页 if (!mkey) var mkey = ''; url = location.origin + location.pathname + 'chapterimage.ashx' + `?cid=${MANGABZ_CID}&page=${MANGABZ_PAGE + 1}&key=${(mkey)}&_cid=${MANGABZ_CID}&_mid=${MANGABZ_MID}&_dt=${MANGABZ_VIEWSIGN_DT}&_sign=${MANGABZ_VIEWSIGN}` @@ -5936,37 +5575,21 @@ // [Mangabz 漫画] 插入数据 function mangabz_insertE(pageElems, type) { if (pageElems) { - if (type === 'Next') { + if (type === 'Next') { // 下一页 let imgArr = eval(pageElems), _img = ''; - for (let now of imgArr) { - _img += ``; - } + for (let now of imgArr) {_img += ``;} if (_img) { getOne(curSite.pager.insertP[0]).insertAdjacentHTML(getAddTo(curSite.pager.insertP[1]), _img); // 将 img 标签插入到网页中 - - // 添加历史记录 MANGABZ_PAGE += imgArr.length; - window.history.pushState(`{title: ${document.title}, url: ${location.href}}`, document.title, location.origin + MANGABZ_CURL.substring(0, MANGABZ_CURL.length - 1) + '-p' + MANGABZ_PAGE + '/'); + addHistory(pageElems, document.title, location.origin + MANGABZ_CURL.substring(0, MANGABZ_CURL.length - 1) + '-p' + MANGABZ_PAGE + '/'); } - } else { + } else { // 下一话 // 插入