diff --git a/Autopage.user.js b/Autopage.user.js index c2ccf5173..8d4913b67 100644 --- a/Autopage.user.js +++ b/Autopage.user.js @@ -3,10 +3,10 @@ // @name:zh-CN 自动无缝翻页 // @name:zh-TW 自動無縫翻頁 // @name:ru Автостраничник -// @version 6.6.73 +// @version 6.6.75 // @author X.I.U // @description ⭐Append the next page content to the bottom seamlessly (like a waterfall, Unlimited scrolling, no need to manually click on the next page) ⭐, support various forums, social networking, games, comics, novels, academics, search engines (Google, Bing, Yahoo...) and other websites~ -// @description:zh-CN ⭐无缝加载 下一页内容 至网页底部(类似瀑布流,无限滚动,无需手动点击下一页)⭐,目前支持:【所有「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-CN ⭐无缝加载 下一页内容 至网页底部(类似瀑布流,无限滚动,无需手动点击下一页)⭐,支持各论坛、社交、游戏、漫画、小说、学术、搜索引擎(Google、Bing、Yahoo...) 等网站~ // @description:zh-TW ⭐無縫加載 下一頁內容 至網頁底部(類似瀑布流,无限滚动,無需手働點擊下一頁)⭐,支持各論壇、社交、遊戲、漫畫、小說、學術、搜索引擎(Google、Bing、Yahoo...) 等網站~ // @description:ru ⭐Плавно добавляет содержимое следующей страницы к нижней части (как водопад, неограниченная прокрутка, не нужно вручную нажимать на следующую страницу) ⭐, поддерживает различные форумы, соцсети, игры, комиксы, романы, научные статьи, поисковики (Google, Bing, Yahoo...) и другие сайты~ // @match *://*/* @@ -327,7 +327,9 @@ } - if (getCSS('a.next, a.next-page')) { + if (getCSS('a.next.page-numbers, a.next-page.page-numbers')) { + DBSite.wp_article.pager.nextL = 'a.next.page-numbers, a.next-page.page-numbers' + } else if (getCSS('a.next, a.next-page')) { DBSite.wp_article.pager.nextL = 'a.next, a.next-page' } else if (getCSS('a[rel="next" i], a[aria-label="next" i], a[aria-label="下一个"].page-link, a[aria-label="Next Page" i], a[aria-label="下一页"], a[rel="下一页"], a[title="下一页"], a[aria-label="下一頁"], a[rel="下一頁"], a[title="下一頁"]')) { DBSite.wp_article.pager.nextL = 'a[rel="next" i], a[aria-label="next" i], a[aria-label="下一个"].page-link, a[aria-label="Next Page" i], a[aria-label="下一页"], a[rel="下一页"], a[title="下一页"], a[aria-label="下一頁"], a[rel="下一頁"], a[title="下一頁"]' @@ -409,7 +411,7 @@ console.info(`[自动无缝翻页] - <笔趣阁 1 - 手机版> 模板的小说网站`); return 201; } else if (getCSS('#txt, .txt') && getCSS('#pb_next, .url_next') && getCSS('.chapter-control, .chapter-page-btn')) { 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="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(), "下一节")][not(starts-with(@href,"javascript:"))]')) { + } else if ((getCSS('meta[name="description" i][content*="小说"], meta[name="description" i][content*="章节"], meta[name="description" i][content*="阅读"], 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(), "下一节")][not(starts-with(@href,"javascript:"))]')) { let biquge3_pageE= ['[id="chapter_content" i]','[class~="chapter_content" i]','[id="chaptercontent" i]','[class~="chaptercontent" i]','[class~="read_chapterdetail" 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]','[id="acontent" i]','[class~="acontent" i]','[id="contentbox" i]','.container>.con'] 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;} @@ -565,6 +567,9 @@ function: { url: ()=> { if (!indexOF('/post/') && !getCSS('#comments, .comments-area, #disqus_thread')) { curSite = DBSite.wp_article; + if (!getCSS(DBSite.wp_article.pager.replaceE)){ // 如果没找到常见的页码父元素,则删除 replaceE 让脚本自行判断 + delete curSite.pager.replaceE + } // 自适应瀑布流样式 setTimeout(()=>{if (getOne(curSite.pager.pageE).style.cssText.indexOf('position: absolute') != -1){insStyle(curSite.pager.pageE + '{position: static !important; float: left !important; height: '+ parseInt(getCSS(curSite.pager.pageE).offsetHeight * 1.1) + 'px !important;}');}}, 1500); } diff --git a/DarkMode.user.js b/DarkMode.user.js index 61f237e65..bc83ea2f7 100644 --- a/DarkMode.user.js +++ b/DarkMode.user.js @@ -3,13 +3,14 @@ // @name:zh-CN 护眼模式 // @name:zh-TW 護眼模式 // @name:ru Тёмный режим -// @version 1.5.5 +// @version 1.5.8 // @author X.I.U // @description Simple and effective network-wide eye protection mode (night mode, dark mode, black mode) // @description:zh-CN 简单有效的全网通用护眼模式(夜间模式、暗黑模式、深色模式) // @description:zh-TW 簡單有效的全網通用護眼模式(夜間模式、暗黑模式、深色模式) // @description:ru Простой и эффективный режим защиты глаз по всей сети (ночной режим, тёмный режим, чёрный режим) // @match *://*/* +// @exclude https://live.bilibili.com/* // @icon data:image/png;base64,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 // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand @@ -440,14 +441,14 @@ clearInterval(timer); // 取消定时器(每 5 毫秒一次的) setTimeout(function(){ // 为了避免太快 body 的 CSS 还没加载上,先延迟 150 毫秒(缺点就是可能会出现短暂一闪而过的暗黑滤镜) console.log('[护眼模式] html:', window.getComputedStyle(document.lastElementChild).backgroundColor, 'body:', window.getComputedStyle(document.body).backgroundColor) - if (window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgba(0, 0, 0, 0)' && !(document.querySelector('head>meta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches)) { - // 如果 body 没有 CSS 背景颜色(或是在资源页 且 浏览器为白天模式),那就需要添加一个背景颜色,否则影响滤镜效果 + if (!(checkChallenge()) && window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgba(0, 0, 0, 0)' && !(document.querySelector('head>meta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches)) { + // 如果不是在 (CF CDN 的人机验证页面 且 浏览器为暗黑模式) 或 body 没有 CSS 背景颜色(或是在资源页 且 浏览器为白天模式),那就需要添加一个背景颜色,否则影响滤镜效果 let style_Add2 = document.createElement('style'); style_Add2.id = 'XIU2DarkMode2'; document.lastElementChild.appendChild(style_Add2).textContent = style_00; - } else if ((document.querySelector('head>meta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches) || (document.querySelector('html[class*=dark], html[data-dark-theme*=dark], html[data-theme*=dark], html[data-color-mode*=dark], body[class*=dark]')) || (window.getComputedStyle(document.body).backgroundColor === 'rgb(0, 0, 0)') || (getColorValue(document.body) > 0 && getColorValue(document.body) < 898989) || (getColorValue(document.lastElementChild) > 0 && getColorValue(document.lastElementChild) < 898989) || (window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgb(0, 0, 0)')) { - // 如果是在资源页 且 浏览器为暗黑模式,或 html/body 元素包含 dark 标识,或底色为黑色 (等于0,0,0) 或深色 (小于 89,89,89),就停用本脚本滤镜 + } else if (checkChallenge() || (document.querySelector('head>meta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches) || (document.querySelector('html[class*=dark], html[data-dark-theme*=dark], html[data-theme*=dark], html[data-color-mode*=dark], body[class*=dark]')) || (window.getComputedStyle(document.body).backgroundColor === 'rgb(0, 0, 0)') || (getColorValue(document.body) > 0 && getColorValue(document.body) < 898989) || (getColorValue(document.lastElementChild) > 0 && getColorValue(document.lastElementChild) < 898989) || (window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgb(0, 0, 0)')) { + // 如果是在 (CF CDN 的人机验证页面 且 浏览器为暗黑模式) 或 (资源页 且 浏览器为暗黑模式),或 html/body 元素包含 dark 标识,或底色为黑色 (等于0,0,0) 或深色 (小于 89,89,89),就停用本脚本滤镜 if (menu_value('menu_autoRecognition')) { // 排除自带暗黑模式的网页 (beta) for (let i=0;imeta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches) || (document.querySelector('html[class*=dark], html[data-dark-theme*=dark], html[data-theme*=dark], html[data-color-mode*=dark], body[class*=dark]')) || (window.getComputedStyle(document.body).backgroundColor === 'rgb(0, 0, 0)') || (getColorValue(document.body) > 0 && getColorValue(document.body) < 898989) || (getColorValue(document.lastElementChild) > 0 && getColorValue(document.lastElementChild) < 898989) || (window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgb(0, 0, 0)')) { - // 如果是在资源页 且 浏览器为暗黑模式,或 html/body 元素包含 dark 标识,或底色为黑色 (等于0,0,0) 或深色 (小于 89,89,89),就停用本脚本滤镜 + if (checkChallenge() || (document.querySelector('head>meta[name="color-scheme"],head>link[href^="resource:"]') && window.matchMedia('(prefers-color-scheme: dark)').matches) || (document.querySelector('html[class*=dark], html[data-dark-theme*=dark], html[data-theme*=dark], html[data-color-mode*=dark], body[class*=dark]')) || (window.getComputedStyle(document.body).backgroundColor === 'rgb(0, 0, 0)') || (getColorValue(document.body) > 0 && getColorValue(document.body) < 898989) || (getColorValue(document.lastElementChild) > 0 && getColorValue(document.lastElementChild) < 898989) || (window.getComputedStyle(document.body).backgroundColor === 'rgba(0, 0, 0, 0)' && window.getComputedStyle(document.lastElementChild).backgroundColor === 'rgb(0, 0, 0)')) { + // 如果是在 (CF CDN 的人机验证页面 且 浏览器为暗黑模式) 或 (资源页 且 浏览器为暗黑模式),或 html/body 元素包含 dark 标识,或底色为黑色 (等于0,0,0) 或深色 (小于 89,89,89),就停用本脚本滤镜 if (menu_value('menu_autoRecognition')) { // 排除自带暗黑模式的网页 (beta) for (let i=0;imeta[content*="https://challenges.cloudflare.com"]') && document.querySelector('body>script[nonce]')) + } + // 获取背景颜色值 function getColorValue(e) { let rgbValueArry = window.getComputedStyle(e).backgroundColor.replace(/rgba|rgb|\(|\)| /g, '').split (',') diff --git a/GithubEnhanced-High-Speed-Download.user.js b/GithubEnhanced-High-Speed-Download.user.js index 68285de55..cced16688 100644 --- a/GithubEnhanced-High-Speed-Download.user.js +++ b/GithubEnhanced-High-Speed-Download.user.js @@ -3,18 +3,13 @@ // @name:zh-CN Github 增强 - 高速下载 // @name:zh-TW Github 增強 - 高速下載 // @name:ru Улучшение GitHub – быстрое скачивание -// @version 2.6.37 +// @version 2.6.39 // @author X.I.U // @description High-speed download of Git Clone/SSH, Release, Raw, Code(ZIP) and other files (Based on public welfare), project list file quick download (☁) // @description:zh-CN 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、项目列表单文件快捷下载 (☁) // @description:zh-TW 高速下載 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、項目列表單文件快捷下載 (☁) // @description:ru Высокоскоростная загрузка Git Clone/SSH, выпусков, изначальных файлов, кода (ZIP) и других файлов (на основе общественного благосостояния), быстрая загрузка файлов из списка проектов (☁) // @match *://github.com/* -// @match *://hub.whtrys.space/* -// @match *://dgithub.xyz/* -// @match *://kkgithub.com/* -// @match *://github.site/* -// @match *://github.store/* // @match *://bgithub.xyz/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACEUExURUxpcRgWFhsYGBgWFhcWFh8WFhoYGBgWFiUlJRcVFRkWFhgVFRgWFhgVFRsWFhgWFigeHhkWFv////////////r6+h4eHv///xcVFfLx8SMhIUNCQpSTk/r6+jY0NCknJ97e3ru7u+fn51BOTsPCwqGgoISDg6empmpoaK2srNDQ0FhXV3eXcCcAAAAXdFJOUwCBIZXMGP70BuRH2Ze/LpIMUunHkpQR34sfygAAAVpJREFUOMt1U+magjAMDAVb5BDU3W25b9T1/d9vaYpQKDs/rF9nSNJkArDA9ezQZ8wPbc8FE6eAiQUsOO1o19JolFibKCdHGHC0IJezOMD5snx/yE+KOYYr42fPSufSZyazqDoseTPw4lGJNOu6LBXVUPBG3lqYAOv/5ZwnNUfUifzBt8gkgfgINmjxOpgqUA147QWNaocLniqq3QsSVbQHNp45N/BAwoYQz9oUJEiE4GMGfoBSMj5gjeWRIMMqleD/CAzUHFqTLyjOA5zjNnwa4UCEZ2YK3khEcBXHjVBtEFeIZ6+NxYbPqWp1DLKV42t6Ujn2ydyiPi9nX0TTNAkVVZ/gozsl6FbrktkwaVvL2TRK0C8Ca7Hck7f5OBT6FFbLATkL2ugV0tm0RLM9fedDvhWstl8Wp9AFDjFX7yOY/lJrv8AkYuz7fuP8dv9izCYH+x3/LBnj9fYPBTpJDNzX+7cAAAAASUVORK5CYII= // @grant GM_registerMenuCommand @@ -39,40 +34,23 @@ const download_url_us = [ ['https://gh.h233.eu.org/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@X.I.U/XIU2] 提供'], //['https://gh.api.99988866.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.com/hunshcn/gh-proxy] 提供'], // 官方演示站用的人太多了 - //['https://ghproxy.1888866.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [WJQSERVER-STUDIO/ghproxy] 提供'],//挂了 - ['https://rapidgit.jjda.de5.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [热心网友] 提供'], - ['https://gh.ddlc.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@mtr-static-official] 提供'], // Error 1027 - //['https://gh2.yanqishui.work/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@HongjieCN] 提供'], // 错误 - //['https://dl.ghpig.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [feizhuqwq.com] 提供'], // ERR_SSL_VERSION_OR_CIPHER_MISMATCH - //['https://gh.flyinbug.top/gh/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [Mintimate] 提供'], // 错误 - //['https://gh.con.sh/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.con.sh] 提供'], // Suspent due to abuse report. - //['https://ghps.cc/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghps.cc] 提供'], // 提示 blocked + //['https://rapidgit.jjda.de5.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [热心网友] 提供'],//挂了,522超时 + ['https://gh.ddlc.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@mtr-static-official] 提供'], ['https://gh-proxy.org/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.com] 提供'], //['https://hk.gh-proxy.org/https://github.com', '其他', '[中国香港] - 该公益加速源由 [gh-proxy.com] 提供'], ['https://cdn.gh-proxy.org/https://github.com', '其他', '[Fastly CDN] - 该公益加速源由 [gh-proxy.com] 提供'], ['https://edgeone.gh-proxy.org/https://github.com', '其他', '[edgeone] - 该公益加速源由 [gh-proxy.com] 提供'], ['https://cors.isteed.cc/github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@Lufs\'s] 提供'], - //['https://hub.gitmirror.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [GitMirror] 提供'], // 域名无解析 - //['https://down.sciproxy.com/github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [sciproxy.com] 提供'], // 522 ['https://ghproxy.it/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@yionchilau] 提供'], - //['https://github.site', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供'], // 挂了 - //['https://github.store', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供'], // 挂了 - //['https://gh.jiasu.in/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@0-RTT] 提供'], // 404 ['https://github.boki.moe/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [blog.boki.moe] 提供'], - //['https://github.moeyy.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [moeyy.cn] 提供'], // 墙了 - ['https://gh-proxy.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.net] 提供'], - //['https://github.yongyong.online/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.yongyong.online] 提供'], // 空白 - //['https://ghdd.862510.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghdd.862510.xyz] 提供'], // turnstile token missing ['https://gh.jasonzeng.dev/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.jasonzeng.dev] 提供'], ['https://gh.monlor.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.monlor.com] 提供'], - ['https://fastgit.cc/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [fastgit.cc] 提供'], - ['https://github.tbedu.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.tbedu.top] 提供'], - //['https://github.geekery.cn/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.geekery.cn] 提供'], // 下载认证信息 用户名:123123 密 码:123123 - ['https://firewall.lxstd.org/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [firewall.lxstd.org] 提供'], + //['https://fastgit.cc/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [fastgit.cc] 提供'], // 挂了 + //['https://github.tbedu.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.tbedu.top] 提供'],//挂了 DNS_PROBE_FINISHED_NXDOMAIN + ['https://github.geekery.cn/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.geekery.cn] 提供'], ['https://github.ednovas.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.ednovas.xyz] 提供'], ['https://ghfile.geekertao.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghfile.geekertao.top] 提供'], - ['https://ghp.keleyaa.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghp.keleyaa.com] 提供'], // Error 1027 - //['https://github.wuzhij.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.wuzhij.com] 提供'], // 404 + ['https://ghp.keleyaa.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghp.keleyaa.com] 提供'], ['https://gh.chjina.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.chjina.com] 提供'], ['https://ghpxy.hwinzniej.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghpxy.hwinzniej.top] 提供'], ['https://cdn.crashmc.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [cdn.crashmc.com] 提供'], @@ -80,28 +58,19 @@ ['https://gitproxy.mrhjx.cn/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gitproxy.mrhjx.cn] 提供'], ['https://ghproxy.cxkpro.top/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghproxy.cxkpro.top] 提供'], ['https://gh.xxooo.cf/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.xxooo.cf] 提供'], - ['https://github.limoruirui.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.limoruirui.com] 提供'], - ['https://gh.idayer.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.idayer.com] 提供'], // Error 1027 - //['https://gh.zwnes.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.zwnes.xyz] 提供'], // 超时 - ['https://gh.llkk.cc/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.llkk.cc] 提供'], + ['https://gh.idayer.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh.idayer.com] 提供'], ['https://down.npee.cn/?https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [npee社区] 提供'], ['https://raw.ihtw.moe/github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [raw.ihtw.moe] 提供'], ['https://xget.xi-xu.me/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.com/xixu-me/Xget] 提供'], - //['https://dgithub.xyz', '美国', '[美国 西雅图] - 该公益加速源由 [dgithub.xyz] 提供'], // 证书挂了 - //['https://gh-proxy.ygxz.in/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@一个小站 www.ygxz.in] 提供'], // 被蔷 - ['https://gh.nxnow.top/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [gh.nxnow.top] 提供'], ['https://gh.zwy.one/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [gh.zwy.one] 提供'], ['https://ghproxy.monkeyray.net/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [ghproxy.monkeyray.net] 提供'], - ['https://gh.xx9527.cn/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [gh.xx9527.cn] 提供'], //], download_url = [ // 为了缓解非美国公益节点压力(考虑到很多人无视前面随机的美国节点),干脆也将其加入随机 - //['https://ghproxy.net/https://github.com', '英国', '[英国伦敦] - 该公益加速源由 [ghproxy.net] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], // 挂了 + ['https://ghproxy.net/https://github.com', '其他', '[英国伦敦] - 该公益加速源由 [ghproxy.net] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], ['https://ghfast.top/https://github.com', '其他', '[日本、韩国、新加坡、美国、德国等](CDN 不固定) - 该公益加速源由 [ghproxy.link] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], ['https://wget.la/https://github.com', '其他', '[中国香港、中国台湾、日本、美国等](CDN 不固定) - 该公益加速源由 [ucdn.me] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], //['https://hub.glowp.xyz/https://github.com', '其他', '[中国香港] - 该公益加速源由 [hub.glowp.xyz] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], - //['https://kkgithub.com', '其他', '[中国香港、日本、韩国、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供 提示:希望大家尽量多使用美国节点(每次随机 负载均衡), 避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'], // 404 ], clone_url = [ ['https://gitclone.com', '国内', '[中国 国内] - 该公益加速源由 [GitClone] 提供 - 缓存:有 - 首次比较慢,缓存后较快'], - //['https://kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供'], // 超时 //['https://gitdl.cn/https://github.com', '香港', '[中国香港] - 该公益加速源由 [gitdl] 提供'], // 输出文件错误 //['https://gitproxy.click/https://github.com', '香港', '[中国 香港] - 该公益加速源由 [gitproxy.click] 提供'], //['https://cdn.moran233.xyz/https://github.com', '香港', '[中国 香港] - 该公益加速源由 [cdn.moran233.xyz] 提供'], @@ -116,36 +85,21 @@ //['https://g.blfrp.cn/https://github.com', '日本', '[日本 东京] - 该公益加速源由 [g.blfrp.cn] 提供'], //['https://raw.bgithub.xyz', '荷兰', '[荷兰] - 该公益加速源由 [bgithub.xyz] 提供 - 缓存:有'], //['https://ghproxy.1888866.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [WJQSERVER-STUDIO/ghproxy] 提供'], - //['https://github.moeyy.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [moeyy.cn] 提供'], // 墙了 - //['https://gh-proxy.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.net] 提供'], //['https://rapidgit.jjda.de5.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [热心网友] 提供'], - //['https://github.yongyong.online/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.yongyong.online] 提供'], - //['https://ghdd.862510.xyz/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghdd.862510.xyz] 提供'], - //['https://hub.gitmirror.com/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [GitMirror] 提供'], // 域名无解析 //['https://gh-proxy.org/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.com] 提供'], //['https://cdn.gh-proxy.org/https://github.com', '其他', '[Fastly CDN] - 该公益加速源由 [gh-proxy.com] 提供'], //['https://edgeone.gh-proxy.org/https://github.com', '其他', '[edgeone] - 该公益加速源由 [gh-proxy.com] 提供'], //['https://ghproxy.it/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@yionchilau] 提供'], - //['https://github.site', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供'], // 挂了 - //['https://github.store', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供'], // 挂了 - //['https://gh.jiasu.in/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@0-RTT] 提供'], // 404 - //['https://github.boki.moe/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [blog.boki.moe] 提供'], - //['https://raw.ihtw.moe/github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [raw.ihtw.moe] 提供'], - //['https://xget.xi-xu.me/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.com/xixu-me/Xget] 提供'], - //['https://dgithub.xyz', '美国', '[美国 西雅图] - 该公益加速源由 [dgithub.xyz] 提供'], - //['https://gh-proxy.ygxz.in/https://github.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@一个小站 www.ygxz.in] 提供'], // 被蔷 - //['https://hub.scholar.rr.nu', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供'], // 证书到期 ], clone_ssh_url = [ ['ssh://git@ssh.github.com:443/', 'Github 原生', '[日本、新加坡等] - Github 官方提供的 443 端口的 SSH(依然是 SSH 协议),适用于限制访问 22 端口的网络环境'], //['git@ssh.fastgit.org:', '香港', '[中国 香港] - 该公益加速源由 [FastGit] 提供'], // 挂了 //['git@git.zhlh6.cn:', '美国', '[美国 洛杉矶]'] // 挂了 ], raw_url = [ ['https://raw.githubusercontent.com', 'Github 原生', '[日本 东京] - 缓存:无(或很短)'], - //['https://raw.kkgithub.com', '香港 1', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供 - 缓存:有'], // 超时 //['https://jsd.proxy.aks.moe/gh', '香港 2', '[中国 香港] - 该公益加速源由 [cdn.akass.cn] 提供'], // 证书错误 ['https://wget.la/https://raw.githubusercontent.com', '香港 1', '[中国香港、中国台湾、日本、美国等](CDN 不固定) - 该公益加速源由 [ucdn.me] 提供 - 缓存:无(或很短)'], ['https://hk.gh-proxy.org/https://raw.githubusercontent.com', '香港 2', '[中国香港] - 该公益加速源由 [gh-proxy.com] 提供 - 缓存:有(官方注明 2 小时)'], - ['https://hub.glowp.xyz/https://raw.githubusercontent.com', '香港 3', '[中国香港] - 该公益加速源由 [hub.glowp.xyz] 提供 - 缓存:有'], + //['https://hub.glowp.xyz/https://raw.githubusercontent.com', '香港 3', '[中国香港] - 该公益加速源由 [hub.glowp.xyz] 提供 - 缓存:有'], //域名到期失效 //['https://gitproxy.click/https://raw.githubusercontent.com', '香港', '[中国 香港] - 该公益加速源由 [gitproxy.click] 提供'], // 输出错误 //['https://cdn.moran233.xyz/https://raw.githubusercontent.com', '香港', '[中国 香港] - 该公益加速源由 [cdn.moran233.xyz] 提供'], // 404 //['https://gitdl.cn/https://raw.githubusercontent.com', '香港 3', '[中国香港] - 该公益加速源由 [gitdl] 提供 - 缓存:有'], // 输出文件错误 @@ -160,30 +114,6 @@ //['https://raw.bgithub.xyz', '荷兰', '[荷兰] - 该公益加速源由 [bgithub.xyz] 提供 - 缓存:有'], //['https://gcore.jsdelivr.net/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [JSDelivr CDN] 提供 - 缓存:有 - 不支持大小超过 50 MB 的文件 - 不支持版本号格式的分支名(如 v1.2.3)'], // 变成 美国 Cloudflare CDN 了 //['https://jsdelivr.b-cdn.net/gh', '其他', '[中国香港、中国台湾、日本、新加坡等](CDN 不固定) - 该公益加速源由 [@rttwyjz] 提供 - 缓存:有'], // 疑似 SNI 阻断 - //['https://xget.xi-xu.me/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.com/xixu-me/Xget] 提供'], - //['https://ghproxy.1888866.xyz/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [WJQSERVER-STUDIO/ghproxy] 提供'], - //['https://github.moeyy.xyz/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [moeyy.cn] 提供 - 缓存:有(约 10 分钟)'], // 墙了 - //['https://gh-proxy.net/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.net] 提供'], - //['https://rapidgit.jjda.de5.net/https://github.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [热心网友] 提供'], - //['https://github.yongyong.online/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [github.yongyong.online] 提供'], - //['https://ghdd.862510.xyz/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [ghdd.862510.xyz] 提供'], - //['https://raw.cachefly.998111.xyz', '其他 4', '[新加坡、日本、印度等](Anycast CDN 不固定) - 该公益加速源由 [@XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX0] 提供 - 缓存:有(约 12 小时)'], // 证书到期 - //['https://ghproxy.it/https://raw.githubusercontent.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@yionchilau] 提供 - 缓存:无(或很短)'], - //['https://raw.github.site', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供 - 缓存:无(或很短)'], // 挂了 - //['https://raw.github.store', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@yionchilau] 提供 - 缓存:无(或很短)'], // 挂了 - //['https://gh.jiasu.in/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [@0-RTT] 提供'], // 404 - //['https://github.boki.moe/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [blog.boki.moe] 提供 - 缓存:无(或很短)'], - //['https://gh-proxy.org/https://raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [gh-proxy.com] 提供 - 缓存:有'], - //['https://cdn.gh-proxy.org/https://raw.githubusercontent.com', '其他', '[Fastly CDN] - 该公益加速源由 [gh-proxy.com] 提供'], - //['https://edgeone.gh-proxy.org/https://raw.githubusercontent.com', '其他', '[edgeone] - 该公益加速源由 [gh-proxy.com] 提供'], - //['https://cdn.githubraw.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [githubraw.com] 提供 - 缓存:有(几乎永久)'], - //['https://raw.dgithub.xyz', '美国', '[美国 西雅图] - 该公益加速源由 [dgithub.xyz] 提供 - 缓存:无(或很短)'], - //['https://gh-proxy.ygxz.in//https://raw.githubusercontent.com', '美国', '[美国 洛杉矶] - 该公益加速源由 [@一个小站 www.ygxz.in] 提供 - 缓存:无(或很短)'], // 被蔷 - //['https://raw.nuaa.cf', '美国', '[美国 洛杉矶] - 该公益加速源由 [FastGit 群组成员] 提供'], // 证书到期 - //['https://raw.yzuu.cf', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供'], // 证书到期 - //['https://hub.gitmirror.com/raw.githubusercontent.com', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [GitMirror] 提供 - 缓存:无(或很短)'], // 域名无解析 - //['https://jsdelivr-cdn.pencilnavrp.990989.xyz/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [PencilNavigator] 提供 - 缓存:有'], - //['https://git.yumenaka.net/https://raw.githubusercontent.com', '美国', '[美国 圣何塞]'], // 连接超时 ], svg = [ '' ], style = ['padding:0 6px; margin-right: -1px; border-radius: 2px; background-color: var(--XIU2-background-color); border-color: var(--borderColor-default); font-size: 11px; color: var(--XIU2-font-color);']; @@ -259,7 +189,7 @@ if (target.tagName === 'DIV' && target.dataset.viewComponent === 'true' && target.classList[0] === 'Box') addRelease(); } } - } else if (document.querySelector('#repository-container-header:not([hidden])')) { // 项目首页 + } else if (document.querySelector('#repo-title-component')) { // 项目首页 for (const mutation of mutationsList) { for (const target of mutation.addedNodes) { if (target.nodeType !== 1) return @@ -575,4 +505,4 @@ window.dispatchEvent(new Event('urlchange')) }); } -})(); \ No newline at end of file +})(); diff --git a/Zhihu-Beautification.user.js b/Zhihu-Beautification.user.js index 584671e36..92c3a6708 100644 --- a/Zhihu-Beautification.user.js +++ b/Zhihu-Beautification.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 知乎美化 -// @version 1.5.20 +// @version 1.5.24 // @author X.I.U // @description 宽屏显示、暗黑模式(4种)、暗黑模式跟随浏览器、屏蔽首页活动广告、隐藏文章开头大图、调整图片最大高度、向下翻时自动隐藏顶栏 // @match *://www.zhihu.com/* @@ -13,6 +13,7 @@ // @grant GM_getValue // @grant GM_setValue // @grant GM_notification +// @grant window.onurlchange // @sandbox JavaScript // @license GPL-3.0 License // @run-at document-start @@ -27,9 +28,9 @@ ['menu_widescreenDisplay', '宽屏显示', '勾选 = 该页面开启宽屏显示(刷新后查看效果)', ''], ['menu_widescreenDisplayIndex', '首页', '宽屏显示', true], ['menu_widescreenDisplayQuestion', '问题页', '宽屏显示', true], - ['menu_widescreenDisplaySearch', '搜索页、话题页、圈子', '宽屏显示', true], + ['menu_widescreenDisplaySearch', '搜索页、话题页', '宽屏显示', true], ['menu_widescreenDisplayCollection', '收藏页', '宽屏显示', true], - ['menu_widescreenDisplayPost', '文章页', '宽屏显示', false], + ['menu_widescreenDisplayPost', '文章页(暂不可用)', '宽屏显示', false], ['menu_widescreenDisplayPeople', '用户主页', '用户主页', false], ['menu_widescreenDisplayWidth', '宽屏宽度', '宽屏宽度 (默认 1000)', '1000'], ['menu_darkMode', '暗黑模式', '暗黑模式', true], @@ -43,7 +44,11 @@ if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])}; } registerMenuCommand(); + if (window.onurlchange === undefined) {addUrlChangeEvent();} // Tampermonkey v4.11 版本添加的 onurlchange 事件 grant,可以监控 pjax 等网页的 URL 变化 addStyle(); + window.addEventListener('urlchange', function(){ // 网页 URL 动态变化后再次执行(针对在任何页面搜索时) + if (menu_value('menu_widescreenDisplaySearch') && (location.pathname === '/search' || location.pathname.indexOf('/club/') > -1 || location.pathname.indexOf('/topic/') > -1)) {addStyle()}; + }) // 向下翻时自动隐藏顶栏 if (menu_value('menu_hideTitle')) setTimeout(hideTitle, 2000); @@ -217,19 +222,19 @@ html[data-theme=light] .AppHeader-notifications:not([aria-label=通知])>div:fir @media only screen and (max-width: ${Number(GM_getValue('menu_widescreenDisplayWidth'))+50}px) {.Topstory-container {width: 97% !important;}} `, style_widescreenDisplayQuestion = `/* 宽屏显示 - 问题页 */ -.Question-mainColumn, .ListShortcut, .QuestionWaiting-mainColumn {width: inherit !important;} +.QuestionWaiting-mainColumn {width: inherit !important;} .Question-mainColumn+div,[data-za-detail-view-path-module="RightSideBar"], .Question-sideColumn, .GlobalSideBar {display: none !important;} .QuestionWaiting-mainColumn {margin-right: 0 !important;} -.Question-main {width: ${GM_getValue('menu_widescreenDisplayWidth')}px;} -@media only screen and (max-width: ${Number(GM_getValue('menu_widescreenDisplayWidth'))+50}px) {.Question-main {width: auto !important;}} -@media only screen and (max-width: ${GM_getValue('menu_widescreenDisplayWidth')-100}px) {.Question-main {width: 98.5% !important;}} +.Question-mainColumn, .ListShortcut {width: ${GM_getValue('menu_widescreenDisplayWidth')}px; margin: auto!important;} +@media only screen and (max-width: ${Number(GM_getValue('menu_widescreenDisplayWidth'))+50}px) {.Question-mainColumn, .ListShortcut {width: auto !important;}} +@media only screen and (max-width: ${GM_getValue('menu_widescreenDisplayWidth')-100}px) {.Question-mainColumn, .ListShortcut {width: 98.5% !important;}} .AuthorInfo {max-width: 100% !important;} `, style_widescreenDisplaySearch = `/* 宽屏显示 - 搜索页 */ -.SearchMain, .ContentLayout-mainColumn, .Club-mainColumn, .Post-mainColumn, [data-za-detail-view-path-module=TopicItem]>div:first-child {width: inherit !important;} -.SearchMain+div, .ContentLayout-sideColumn, .Card.QuestionHeaderTopicMeta, .ClubSideBar, [data-za-detail-view-path-module=TopicItem]>div:not(:first-child) {display: none !important;} -.Search-container, .ContentLayout, .Club-container, .Post-container, [data-za-detail-view-path-module=TopicItem] {width: ${GM_getValue('menu_widescreenDisplayWidth')}px;} -@media only screen and (max-width: ${Number(GM_getValue('menu_widescreenDisplayWidth'))+50}px) {.Search-container, .ContentLayout, .Club-container, .Post-container, [data-za-detail-view-path-module=TopicItem] {width: 97.5% !important;}} +.SearchMain, .App-main>[data-za-detail-view-path-module=TopicItem]>div:first-child {width: inherit !important;} +.SearchMain+div, .App-main>[data-za-detail-view-path-module=TopicItem]>div:not(:first-child) {display: none !important;} +.Search-container, .App-main>[data-za-detail-view-path-module=TopicItem] {width: ${GM_getValue('menu_widescreenDisplayWidth')}px;} +@media only screen and (max-width: ${Number(GM_getValue('menu_widescreenDisplayWidth'))+50}px) {.Search-container, .App-main>[data-za-detail-view-path-module=TopicItem] {width: 97.5% !important;}} `, style_widescreenDisplayCollection = `/* 宽屏显示 - 收藏页 */ .CollectionsDetailPage-mainColumn {width: inherit !important;} @@ -262,6 +267,8 @@ html[data-theme=light] .AppHeader-notifications:not([aria-label=通知])>div:fir .ztext .content_image, .ztext .origin_image, .GifPlayer img {max-height: 500px !important;width: auto !important;} `, style_darkMode_1 = `/* 暗黑模式(方案 1) */ +/* 首页工具条宽度 */ +html[data-theme=dark] .Card.TopstoryItem.TopstoryItem-isRecommend .ContentItem-actions, .Card.TopstoryItem.TopstoryItem-isFollow .ContentItem-actions {margin: 0 -16px -10px;} /* 右上角 通知/私信 红点颜色 */ html[data-theme=dark] .AppHeader-notifications:not([aria-label=通知])>div:first-of-type, html[data-theme=dark] .AppHeader-messages:not([aria-label=私信])>div:first-of-type {color: #ffffff !important;border: 2px solid #2d333b !important;} /* 文字颜色 */ @@ -523,7 +530,7 @@ html {filter: brightness(65%) sepia(30%) !important; background-image: url();} // 获取知乎 Cookie 中的主题类型 function getTheme() { - let name = 'theme=', + let name = 'themeApp=', ca = document.cookie.split(';'); for (let i=0; i function pushState(){ + var ret = f.apply(this, arguments); + window.dispatchEvent(new Event('pushstate')); + window.dispatchEvent(new Event('urlchange')); + return ret; + })(history.pushState); + + history.replaceState = ( f => function replaceState(){ + var ret = f.apply(this, arguments); + window.dispatchEvent(new Event('replacestate')); + window.dispatchEvent(new Event('urlchange')); + return ret; + })(history.replaceState); + + window.addEventListener('popstate',()=>{ + window.dispatchEvent(new Event('urlchange')) + }); + } })(); \ No newline at end of file diff --git a/Zhihu-Enhanced.user.js b/Zhihu-Enhanced.user.js index 609f538f6..07258f8a1 100644 --- a/Zhihu-Enhanced.user.js +++ b/Zhihu-Enhanced.user.js @@ -3,11 +3,11 @@ // @name:zh-CN 知乎增强 // @name:zh-TW 知乎增強 // @name:ru Улучшение Zhihu -// @version 2.3.27 +// @version 2.3.32 // @author X.I.U // @description A more personalized Zhihu experience~ -// @description:zh-CN 移除登录弹窗、屏蔽指定类别(视频、盐选、文章、想法、关注[赞同/关注了XX]等)、屏蔽低赞/低评回答、屏蔽用户、屏蔽关键词、默认收起回答、快捷收起回答/评论(左键两侧)、快捷回到顶部(右键两侧)、区分问题文章、移除高亮链接、净化搜索热门、净化标题消息、展开问题描述、显示问题作者、默认高清原图(无水印)、置顶显示时间、完整问题时间、直达问题按钮、默认站外直链... -// @description:zh-TW 移除登錄彈窗、屏蔽指定類別(視頻、鹽選、文章、想法、關注[贊同/關注了XX]等)、屏蔽低贊/低評回答、屏蔽用戶、屏蔽關鍵詞、默認收起回答、快捷收起回答/評論、快捷回到頂部、區分問題文章、移除高亮鏈接、默認高清原圖(無水印)、默認站外直鏈... +// @description:zh-CN 移除登录弹窗、屏蔽指定类别(视频、盐选、文章、想法、关注[赞同/关注了XX]等)、屏蔽低赞/低评、屏蔽用户、屏蔽关键词、默认收起回答、快捷收起回答/评论(左键两侧)、快捷回到顶部(右键两侧)、区分问题文章、移除高亮链接、净化搜索热门、净化标题消息、展开问题描述、显示问题作者、默认高清原图(无水印)、置顶显示时间、完整问题时间、直达问题按钮、默认站外直链... +// @description:zh-TW 移除登錄彈窗、屏蔽指定類別(視頻、鹽選、文章、想法、關注[贊同/關注了XX]等)、屏蔽低贊/低評、屏蔽用戶、屏蔽關鍵詞、默認收起回答、快捷收起回答/評論、快捷回到頂部、區分問題文章、移除高亮鏈接、默認高清原圖(無水印)、默認站外直鏈... // @description:ru Более персонализированный опыт пользования сайтом Zhihu~ // @match *://www.zhihu.com/* // @match *://zhuanlan.zhihu.com/* @@ -36,7 +36,7 @@ var menu_ALL = [ ['menu_collapsedAnswer', '一键收起回答/评论', '一键收起回答/评论', true], ['menu_collapsedNowAnswer', '快捷收起回答/评论 (点击两侧空白处)', '快捷收起回答/评论', true], ['menu_backToTop', '快捷回到顶部 (右键两侧空白处)', '快捷回到顶部', true], - ['menu_blockLowCount', '屏蔽低赞低评', '设置要屏蔽 低于多少赞同/评价 的回答(默认不需要留空即可)
(例如设置 0 则无人赞同/评价的回答会被屏蔽
(例如设置 20 则赞同/评价数量低于 20 的回答会被屏蔽
(修改后,后续加载的回答会立即生效,但不影响当前网页已有内容', ''], + ['menu_blockLowCount', '屏蔽低赞低评', '设置要屏蔽 低于多少赞同/评价 的回答/文章(默认不需要留空即可)
(例如设置 0 则无人赞同/评价的回答/文章会被屏蔽
(例如设置 20 则赞同/评价数量低于 20 的回答/文章会被屏蔽
(修改后,后续加载的回答/文章会立即生效,但不影响当前网页已有内容', ''], ['menu_blockLowUpvoteCount', '最低赞同数 [首页]', '最低赞同数(首页)', ''], ['menu_blockLowCommentCount', '最低评价数 [首页]', '最低评价数(首页)', ''], ['menu_blockLowUpvoteCountQuestion', '最低赞同数 [问题页]', '最低赞同数(问题页)', ''], @@ -248,8 +248,8 @@ function collapsedAnswer() { //console.log('1111', document.querySelector('.CornerAnimayedFlex')) if (document.querySelector('.CornerAnimayedFlex') && !document.getElementById('collapsed-button')) { // 向网页中插入收起全部回答按钮+样式+绑定点击事件 - document.head.appendChild(document.createElement('style')).textContent = '.CornerButton{margin-bottom:8px !important;}.CornerButtons{bottom:45px !important;}'; - document.querySelector('.CornerAnimayedFlex').insertAdjacentHTML('afterBegin', ''); + document.head.appendChild(document.createElement('style')).textContent = '.CornerButton{margin-bottom:8px !important;}.CornerButtons{bottom:25px !important;} .CornerAnimayedFlex {height: auto;}'; + document.querySelector('.CornerAnimayedFlex').insertAdjacentHTML('afterBegin', ''); document.getElementById('collapsed-button').onclick = function () { // 收起所有评论(悬浮的 [收起评论]) @@ -295,119 +295,122 @@ function collapsedAnswer() { function collapsedNowAnswer(selectors) { backToTop(selectors) // 快捷回到顶部 if (!menu_value('menu_collapsedNowAnswer')) return - document.querySelector(selectors).onclick = function(event){ - if (event.target == this) { - // 下面这段主要是 [收起回答],顺便 [收起评论](如果展开了的话) - let rightButton = document.querySelector('.ContentItem-actions.Sticky.RichContent-actions.is-fixed.is-bottom') - if (rightButton) { // 悬浮在底部的 [收起回答](此时正在浏览回答内容 [中间区域]) - // 固定的 [收起评论](先看看是否展开评论) - let commentCollapseButton = rightButton.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') - //console.log('111') - if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click(); - // 再去收起回答 - rightButton = rightButton.querySelector('.ContentItem-rightButton[data-zop-retract-question]') - //console.log('222') - if (rightButton) rightButton.click(); - - } else { // 固定在回答底部的 [收起回答](此时正在浏览回答内容 [尾部区域]) - - // 悬浮的 [收起评论](此时正在浏览评论内容 [中间区域]) - //if (getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container'))) {getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container')).click();console.log('asfaf')} - - let answerCollapseButton_ = false; - for (let el of document.querySelectorAll('.ContentItem-rightButton[data-zop-retract-question]')) { // 遍历所有回答底部的 [收起] 按钮 - if (isElementInViewport(el)) { // 判断该 [收起] 按钮是否在可视区域内 - // 固定的 [收起评论](先看看是否展开评论,即存在 [收起评论] 按钮) - let commentCollapseButton = el.parentNode.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') - // 如果展开了评论,就收起评论 - //console.log('333') - //if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click(); - if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) { - commentCollapseButton.click(); - if (!isElementInViewport(commentCollapseButton)) scrollTo(0,el.offsetTop+50) - } - //console.log('444') - el.click() // 再去收起回答 - answerCollapseButton_ = true; // 如果找到并点击收起了,就没必要执行下面的代码了(可视区域中没有 [收起回答] 时) - break - } - } - // 针对完全看不到 [收起回答] 按钮时(如 [头部区域],以及部分明明很长却不显示悬浮横条的回答) - if (!answerCollapseButton_) { - for (let el of document.querySelectorAll('.List-item, .Card.AnswerCard, .Card.TopstoryItem')) { // 遍历所有回答主体元素 - if (isElementInViewport_(el)) { // 判断该回答是否在可视区域内 + let element = document.querySelector(selectors) + if (element) { + element.onclick = function(event){ + if (event.target == this) { + // 下面这段主要是 [收起回答],顺便 [收起评论](如果展开了的话) + let rightButton = document.querySelector('.ContentItem-actions.Sticky.RichContent-actions.is-fixed.is-bottom') + if (rightButton) { // 悬浮在底部的 [收起回答](此时正在浏览回答内容 [中间区域]) + // 固定的 [收起评论](先看看是否展开评论) + let commentCollapseButton = rightButton.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') + //console.log('111') + if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click(); + // 再去收起回答 + rightButton = rightButton.querySelector('.ContentItem-rightButton[data-zop-retract-question]') + //console.log('222') + if (rightButton) rightButton.click(); + + } else { // 固定在回答底部的 [收起回答](此时正在浏览回答内容 [尾部区域]) + + // 悬浮的 [收起评论](此时正在浏览评论内容 [中间区域]) + //if (getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container'))) {getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container')).click();console.log('asfaf')} + + let answerCollapseButton_ = false; + for (let el of document.querySelectorAll('.ContentItem-rightButton[data-zop-retract-question]')) { // 遍历所有回答底部的 [收起] 按钮 + if (isElementInViewport(el)) { // 判断该 [收起] 按钮是否在可视区域内 // 固定的 [收起评论](先看看是否展开评论,即存在 [收起评论] 按钮) - let commentCollapseButton = el.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') + let commentCollapseButton = el.parentNode.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') // 如果展开了评论,就收起评论 - //console.log('555',commentCollapseButton) + //console.log('333') + //if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click(); if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) { commentCollapseButton.click(); if (!isElementInViewport(commentCollapseButton)) scrollTo(0,el.offsetTop+50) } - let answerCollapseButton__ = el.querySelector('.ContentItem-rightButton[data-zop-retract-question]'); - //console.log('666') - if (answerCollapseButton__) answerCollapseButton__.click() // 再去收起回答 + //console.log('444') + el.click() // 再去收起回答 + answerCollapseButton_ = true; // 如果找到并点击收起了,就没必要执行下面的代码了(可视区域中没有 [收起回答] 时) break } } - } - } - - // 下面这段只针对 [收起评论](如果展开了的话) - let commentCollapseButton_ = false, commentCollapseButton__ = false; - // 悬浮的 [收起评论](此时正在浏览评论内容 [中间区域]) - let commentCollapseButton = getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container')) - if (commentCollapseButton) { - //console.log('777', commentCollapseButton) - commentCollapseButton.click(); - } else { // 固定的 [收起评论](此时正在浏览评论内容 [头部区域]) - let commentCollapseButton_1 = document.querySelectorAll('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type, .ContentItem-action > button.Button.Button--plain.Button--withIcon.Button--withLabel:first-of-type') - if (commentCollapseButton_1.length > 0) { - for (let el of commentCollapseButton_1) { - if (el.textContent.indexOf('收起评论') > -1) { - if (isElementInViewport(el)) { - //console.log('888') - el.click() - commentCollapseButton_ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 [收起评论] 时) + // 针对完全看不到 [收起回答] 按钮时(如 [头部区域],以及部分明明很长却不显示悬浮横条的回答) + if (!answerCollapseButton_) { + for (let el of document.querySelectorAll('.List-item, .Card.AnswerCard, .Card.TopstoryItem')) { // 遍历所有回答主体元素 + if (isElementInViewport_(el)) { // 判断该回答是否在可视区域内 + // 固定的 [收起评论](先看看是否展开评论,即存在 [收起评论] 按钮) + let commentCollapseButton = el.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') + // 如果展开了评论,就收起评论 + //console.log('555',commentCollapseButton) + if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) { + commentCollapseButton.click(); + if (!isElementInViewport(commentCollapseButton)) scrollTo(0,el.offsetTop+50) + } + let answerCollapseButton__ = el.querySelector('.ContentItem-rightButton[data-zop-retract-question]'); + //console.log('666') + if (answerCollapseButton__) answerCollapseButton__.click() // 再去收起回答 break } } } } - if (commentCollapseButton_ == false) { // 可视区域中没有 [收起评论] 时(此时正在浏览评论内容 [头部区域] + [尾部区域](不上不下的,既看不到固定的 [收起评论] 又看不到悬浮的 [收起评论])),需要判断可视区域中是否存在评论元素 - let commentCollapseButton_1 = document.querySelectorAll('.Comments-container') + + // 下面这段只针对 [收起评论](如果展开了的话) + let commentCollapseButton_ = false, commentCollapseButton__ = false; + // 悬浮的 [收起评论](此时正在浏览评论内容 [中间区域]) + let commentCollapseButton = getXpath('//button[text()="收起评论"]',document.querySelector('.Comments-container')) + if (commentCollapseButton) { + //console.log('777', commentCollapseButton) + commentCollapseButton.click(); + } else { // 固定的 [收起评论](此时正在浏览评论内容 [头部区域]) + let commentCollapseButton_1 = document.querySelectorAll('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type, .ContentItem-action > button.Button.Button--plain.Button--withIcon.Button--withLabel:first-of-type') if (commentCollapseButton_1.length > 0) { for (let el of commentCollapseButton_1) { - if (isElementInViewport(el)) { - let parentElement = findParentElement(el, 'List-item') || findParentElement(el, 'Card '), - commentCollapseButton = parentElement.querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') - if (commentCollapseButton.textContent.indexOf('收起评论') > -1) { - //console.log('999') - commentCollapseButton.click() - if (!isElementInViewport(commentCollapseButton)) {console.log(parentElement,parentElement.offsetTop,parentElement.offsetHeight);scrollTo(0,parentElement.offsetTop+parentElement.offsetHeight-50)} - commentCollapseButton__ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 评论元素 时) + if (el.textContent.indexOf('收起评论') > -1) { + if (isElementInViewport(el)) { + //console.log('888') + el.click() + commentCollapseButton_ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 [收起评论] 时) break } } } } - if (commentCollapseButton__ == false) { // 如果上面的都没找到,那么就尝试寻找评论末尾的 [评论回复框] - let commentCollapseButton_2 = document.querySelectorAll('.Editable-content') - if (commentCollapseButton_2.length > 0) { - for (let el of commentCollapseButton_2) { + if (commentCollapseButton_ == false) { // 可视区域中没有 [收起评论] 时(此时正在浏览评论内容 [头部区域] + [尾部区域](不上不下的,既看不到固定的 [收起评论] 又看不到悬浮的 [收起评论])),需要判断可视区域中是否存在评论元素 + let commentCollapseButton_1 = document.querySelectorAll('.Comments-container') + if (commentCollapseButton_1.length > 0) { + for (let el of commentCollapseButton_1) { if (isElementInViewport(el)) { let parentElement = findParentElement(el, 'List-item') || findParentElement(el, 'Card '), - commentCollapseButton = parentElement.querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') - //console.log(commentCollapseButton) + commentCollapseButton = parentElement.querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') if (commentCollapseButton.textContent.indexOf('收起评论') > -1) { - //console.log('101010') + //console.log('999') commentCollapseButton.click() if (!isElementInViewport(commentCollapseButton)) {console.log(parentElement,parentElement.offsetTop,parentElement.offsetHeight);scrollTo(0,parentElement.offsetTop+parentElement.offsetHeight-50)} + commentCollapseButton__ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 评论元素 时) break } } } } + if (commentCollapseButton__ == false) { // 如果上面的都没找到,那么就尝试寻找评论末尾的 [评论回复框] + let commentCollapseButton_2 = document.querySelectorAll('.Editable-content') + if (commentCollapseButton_2.length > 0) { + for (let el of commentCollapseButton_2) { + if (isElementInViewport(el)) { + let parentElement = findParentElement(el, 'List-item') || findParentElement(el, 'Card '), + commentCollapseButton = parentElement.querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type') + //console.log(commentCollapseButton) + if (commentCollapseButton.textContent.indexOf('收起评论') > -1) { + //console.log('101010') + commentCollapseButton.click() + if (!isElementInViewport(commentCollapseButton)) {console.log(parentElement,parentElement.offsetTop,parentElement.offsetHeight);scrollTo(0,parentElement.offsetTop+parentElement.offsetHeight-50)} + break + } + } + } + } + } } } } @@ -419,10 +422,13 @@ function collapsedNowAnswer(selectors) { // 回到顶部(监听点击事件,鼠标右键点击网页两侧空白处) function backToTop(selectors) { if (!menu_value('menu_backToTop')) return - document.querySelector(selectors).oncontextmenu = function(event){ - if (event.target == this) { - event.preventDefault(); - window.scrollTo(0,0) + let element = document.querySelector(selectors) + if (element) { + element.oncontextmenu = function(event){ + if (event.target == this) { + event.preventDefault(); + window.scrollTo(0,0) + } } } } @@ -448,7 +454,7 @@ function isElementInViewport_(el) { } -// 屏蔽低赞/低评回答 +// 屏蔽低赞/低评回答/文章 function blockLowCount(type) { switch(type) { case 'index': @@ -461,14 +467,16 @@ function blockLowCount(type) { blockLowCount_('.List-item', 'List-item', 'menu_blockLowUpvoteCountQuestion', 'menu_blockLowCommentCountQuestion'); break; } + console.log(type) function blockLowCount_(className1, className2, menuUpvote, menuComment) { // 前几条因为是直接加载的,而不是动态插入网页的,所以需要单独判断 function blockLowCount_now() { document.querySelectorAll(className1).forEach(function(item1){ - blockLowCount_1(item1,menuUpvote,'meta[itemprop=upvoteCount]'); - blockLowCount_1(item1,menuComment,'meta[itemprop=commentCount]'); + console.log(item1) + blockLowCount_1(item1,menuUpvote,'upvote_num'); + blockLowCount_1(item1,menuComment,'comment_num'); }) } @@ -483,8 +491,8 @@ function blockLowCount(type) { for (const target of mutation.addedNodes) { if (target.nodeType != 1) return if (target.className === className2) { - blockLowCount_1(target,menuUpvote,'meta[itemprop=upvoteCount]'); - blockLowCount_1(target,menuComment,'meta[itemprop=commentCount]'); + blockLowCount_1(target,menuUpvote,'upvote_num'); + blockLowCount_1(target,menuComment,'comment_num'); } } } @@ -494,18 +502,17 @@ function blockLowCount(type) { } - function blockLowCount_1(item1, menu, css) { + function blockLowCount_1(item, menu, type) { if (GM_getValue(menu)) { - let item = item1.querySelector(css); - //console.log(item) - if (item && item.content && Number(item.content) < Number(GM_getValue(menu))) { - if (menu.indexOf('Upvote') !== -1) { - console.log('已屏蔽低赞回答:', item.content + '<' + GM_getValue(menu), item1, type); - } else { - console.log('已屏蔽低评回答:', item.content + '<' + GM_getValue(menu), item1, type); + let item_ContentItem = item.querySelector('.ContentItem') + if (item_ContentItem && item_ContentItem.dataset.zaExtraModule) { + let item2 = JSON.parse(item_ContentItem.dataset.zaExtraModule); + //console.log(item2) + if (item2 && item2.card.content && Number(item2.card.content[type]) < Number(GM_getValue(menu))) { + console.log('已屏蔽' + (type === 'upvote_num' ? '低赞':'低评') + (item_ContentItem.classList.contains('AnswerItem') ? '回答':'文章') + ':', item2.card.content[type] + '<' + GM_getValue(menu), item); + item.hidden = true; + item.style.display = 'none'; } - item1.hidden = true; - item1.style.display = 'none'; } } } @@ -1681,10 +1688,10 @@ function switchHomeRecommend() { if (location.pathname.indexOf('question') > -1 && location.href.indexOf('/log') == -1) { // 回答页 // if (location.pathname.indexOf('waiting') == -1) { collapsedNowAnswer('.QuestionPage'); // 收起当前回答 + 快捷返回顶部 - collapsedNowAnswer('.Question-main'); // 收起当前回答 + 快捷返回顶部 + collapsedNowAnswer('.QuestionPage>#AnswerFormPortalContainer+div>div:first-child'); //收起当前回答 + 快捷返回顶部 questionRichTextMore(); // 展开问题描述 if (location.pathname.indexOf('answer') == -1) { // 问题页而不是回答页 - blockLowCount('question'); // 屏蔽低赞/低评回答 + blockLowCount('question'); // 屏蔽低赞/低评回答/文章 } else { // 将回答页的的查看全部回答选项去掉默认的点击事件改成静态链接,为了避免功能交叉混乱 document.querySelectorAll('div.Card.ViewAll>a').forEach((a)=>{a.outerHTML = a.outerHTML;}) } @@ -1761,14 +1768,14 @@ function switchHomeRecommend() { document.lastElementChild.appendChild(document.createElement('style')).textContent = '.Topstory-container {min-height: 1500px;}'; if (menu_value('menu_blockTypeVideo')) document.lastChild.appendChild(document.createElement('style')).textContent = `.Card .ZVideoItem-video, nav.TopstoryTabs > a[aria-controls="Topstory-zvideo"] {display: none !important;}`; - collapsedNowAnswer('main div'); // 收起当前回答 + 快捷返回顶部 - collapsedNowAnswer('.Topstory-container'); // 收起当前回答 + 快捷返回顶部 + collapsedNowAnswer('.App-main .Topstory'); // 收起当前回答 + 快捷返回顶部 + collapsedNowAnswer('.App-main .Topstory-container'); // 收起当前回答 + 快捷返回顶部 if (location.pathname !== '/column-square'){ // 不是首页 - 专栏时 setInterval(function(){topTime_('.TopstoryItem', 'ContentItem-meta')}, 300); // 置顶显示时间 addTypeTips(); // 区分问题文章 addToQuestion(); // 直达问题按钮 if (location.pathname == '/') { // 推荐 - blockLowCount('index'); // 屏蔽低赞/低评回答 + blockLowCount('index'); // 屏蔽低赞/低评回答/文章 blockUsers('index'); // 屏蔽指定用户 blockKeywords('index'); // 屏蔽指定关键词 blockType(); // 屏蔽指定类别(视频/文章等) @@ -1776,7 +1783,7 @@ function switchHomeRecommend() { blockKeywords('index'); // 屏蔽指定关键词 blockHotOther(); // 屏蔽热榜杂项 } else if (location.pathname == '/follow') { // 关注 - blockLowCount('follow'); // 屏蔽低赞/低评回答 + blockLowCount('follow'); // 屏蔽低赞/低评回答/文章 blockUsers('follow'); // 屏蔽指定用户 blockKeywords('follow'); // 屏蔽指定关键词 blockType(); // 屏蔽指定类别(视频/文章等) diff --git a/other/Autopage/rules.json b/other/Autopage/rules.json index 007d80478..62a1fe04f 100644 --- a/other/Autopage/rules.json +++ b/other/Autopage/rules.json @@ -309,43 +309,6 @@ "pageE": ".text-result, .image-wrapper" } }, - "百度贴吧 - 搜索页": { - "host": "tieba.baidu.com", - "url": "/^\\/f\\/search\\/res/", - "pager": { - "nextL": "a.next", - "pageE": ".s_post_list > div", - "replaceE": ".pager" - } - }, - "百度贴吧 - 帖子内": { - "host": ["tieba.baidu.com","jump2.bdimg.com"], - "url": "if (location.hostname == 'jump2.bdimg.com') location.hostname = 'tieba.baidu.com'; return (fun.indexOF('/p/')) ", - "iframe": true, - "thread": true, - "style": ".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,.topic_list_box.topic-fixed {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;}", - "pager": { - "type": 5, - "nextL": "//li[contains(@class,'pb_list_pager')]/a[text()='下一页']", - "style": "ul.tbui_aside_float_bar,.core_title_wrap_bright.tbui_follow_fixed.core_title_absolute_bright {display: none !important;}" - } - }, - "百度贴吧": { - "host": "tieba.baidu.com", - "url": "/^\\/f/", - "style": "img.j_retract {margin-top: 0 !important;margin-bottom: 0 !important;}", - "history": false, - "pager": { - "nextL": "js; if (fun.getCSS('a.next.pagination-item')) return (fun.getCSS('a.next.pagination-item').href + '&pagelets=frs-list%2Fpagelet%2Fthread&pagelets_stamp=' + new Date().getTime())", - "pageE": "//script[contains(text(),'Bigpipe.register(\"frs-list/pagelet/thread_list\", ')]", - "insertP": ["#thread_list",3], - "interval": 2000, - "scrollD": 3000 - }, - "function": { - "bF": "let scriptText = pageE[0].textContent.replace('Bigpipe.register(\"frs-list/pagelet/thread_list\", ',''); scriptText = scriptText.slice(0,scriptText.indexOf(').')); let temp = document.createElement('div'); temp.innerHTML = JSON.parse(scriptText).content; fun.getCSS('#frs_list_pager').innerHTML = fun.getCSS('#frs_list_pager',temp).innerHTML; return fun.src_bF(fun.getAllCSS('#thread_list>li',temp))" - } - }, "豆瓣": { "host": "movie.douban.com", "url": "/^\\/(explore|tv\\/)/", @@ -943,6 +906,15 @@ "replaceE": ".pagination" } }, + "TFW2005": { + "host": "www.tfw2005.com", + "url": "if(fun.indexOF(/^\\/boards\\/forums\\//)){rule.blank=3;}else if(fun.indexOF(/^\\/boards\\/threads\\//)){rule.pager.pageE='ol#messageList>li';rule.thread=true;}else{return false;};return true", + "pager": { + "nextL": ".PageNav .currentPage+a[href], .PageNav .currentPage+a+span>span>a:first-child", + "pageE": "ol.discussionListItems>li", + "replaceE": ".PageNav" + } + }, "CPC中文印刷社区": { "host": "www.cnprint.org", "url": "if(fun.indexOF(/^\\/bbs\\/forumdisplay\\.php/)){rule.blank=3;return true;}else if(fun.indexOF(/^\\/bbs\\/showthread\\.php/)){return true;}", @@ -1012,7 +984,7 @@ } }, "北+": { - "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east)-plus\\.(net|org)$/","bbs.imoutolove.me"], + "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east|blue)-plus\\.(net|org)$/","bbs.imoutolove.me"], "url": "return (fun.lp() == '/thread.php' || fun.lp() == '/search.php')", "pager": { "nextL": "//div[@class='pages']/ul/li[./b]/following-sibling::li[1][not(@class)]/a[not(text()='»')]", @@ -1021,7 +993,7 @@ } }, "北+ - 图墙": { - "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east)-plus\\.(net|org)$/","bbs.imoutolove.me"], + "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east|blue)-plus\\.(net|org)$/","bbs.imoutolove.me"], "url": "return (fun.lp() == '/thread_new.php')", "style": "img.lazy {display: inline !important;}", "pager": { @@ -1034,7 +1006,7 @@ } }, "北+ - 帖子内": { - "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east)-plus\\.(net|org)$/","bbs.imoutolove.me"], + "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east|blue)-plus\\.(net|org)$/","bbs.imoutolove.me"], "url": "return (fun.lp() == '/read.php')", "thread": true, "pager": { @@ -1044,7 +1016,7 @@ } }, "北+ - 用户页": { - "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east)-plus\\.(net|org)$/","bbs.imoutolove.me"], + "host": ["/^((www|bbs)\\.)?(soul|snow|south|spring|summer|north|white|level|east|blue)-plus\\.(net|org)$/","bbs.imoutolove.me"], "url": "return (fun.lp() == '/u.php' && (fun.indexOF('action-topic-','s') || fun.indexOF('action-post-','s')))", "pager": { "nextL": "//div[@class='pages']/ul/li[./b]/following-sibling::li[1][not(@class)]/a[not(text()='»')]", @@ -1219,6 +1191,16 @@ "replaceE": ".pagination:not(#breadcrumb_multipage_popup)" } }, + "kaspersky 论坛": { + "host": "forum.kaspersky.com", + "url": "/^\\/forum\\//", + "blank": 3, + "pager": { + "nextL": ".ipsPagination_next>a", + "pageE": ".ipsDataItem", + "replaceE": "div[data-role=tablePagination]>.ipsPagination" + } + }, "ptt.cc": { "host": "www.ptt.cc", "url": "/^\\/bbs\\/.+\\/index/", @@ -1254,7 +1236,7 @@ "iframe": true, "pager": { "type": 5, - "nextL": "a[aria-disabled='false'][class*='filterProps-Styled-Component'][href]:last-child" + "nextL": "button[aria-current=true]+a:not([aria-disabled])" } }, "Pixiv - 用户作品页": { @@ -1264,7 +1246,7 @@ "style": "ul[class*='-1 ']>li {display: inline !important;} #root{margin-bottom: -125px;} ul>li>button[class^='sc-'][style='background-color: rgb(0,0,0);'],a[href^='/premium/lead/lp'] {display: none !important;}", "pager": { "type": 5, - "nextL": "a[aria-disabled='false'][class*='filterProps-Styled-Component'][href]:last-child" + "nextL": "span.charcoal-pagination-button[aria-current=page]+a.charcoal-pagination-button" } }, "Pixiv - 手机版 - 分类页": { @@ -1274,7 +1256,7 @@ "iframe": true, "pager": { "type": 5, - "nextL": "a.next" + "nextL": "button[aria-current=true]+a" } }, "Pixiv - 手机版 - 用户作品页": { @@ -2103,28 +2085,6 @@ "replaceE": "//a[contains(@class,'active')]/.." } }, - "Steam 创意工坊 - 项目列表": { - "host": "steamcommunity.com", - "url": "return (fun.indexOF('/workshop/browse') || fun.indexOF('/myworkshopfiles/'))", - "pager": { - "nextL": "//a[@class='pagebtn' and text()='>']", - "pageE": ".workshopBrowseItems>*,.workshopItemSubscription,.workshopItemSubscription+script", - "replaceE": ".workshopBrowsePaging,.workshopBrowsePagingWithBG", - "scriptT": 2 - } - }, - "Steam 社区 - 活动评论": { - "host": "steamcommunity.com", - "url": "return (fun.indexOF(/eventcomments\\/\\d/))", - "style": ".forum_paging_controls", - "history": true, - "pager": { - "nextL": "js; return fun.getNextUP('ctp=',/ctp=\\d+/,location.pathname,'2',fun.getCSS('span.commentthread_pagelinks>a:last-child').textContent)", - "pageE": ".commentthread_comments>.commentthread_comment", - "replaceE": ".forum_paging .forum_paging_summary", - "scriptT": 1 - } - }, "小霸王其乐无穷": { "host": "www.yikm.net", "blank": 3, @@ -2144,6 +2104,18 @@ "replaceE": "ul.page-numbers" } }, + "NS头号玩家": { + "host": ["nsthwj.cn","nsthwj.vip"], + "url": "return fun.isPager()", + "pager": { + "nextL": "a.page-next", + "pageE": ".posts-warp>div.col", + "replaceE": ".pagination" + }, + "function": { + "bF": "return fun.src_bF(pageE,[1,'a[data-bg]','data-bg'])" + } + }, "4K 游戏网": { "host": "4k-w.com", "url": "return (fun.indexOF('/game/') || fun.indexOF('s=','s'))", @@ -2845,15 +2817,6 @@ "pageE": ".download>tbody>tr:not(:nth-last-child(-n+2))" } }, - "Knaben": { - "host": "knaben.eu", - "url": "/^\\/(search|browse)\\//", - "blank": 3, - "pager": { - "nextL": "#nextPage", - "pageE": "tbody>tr" - } - }, "idope": { "host": "/^idope\\..+/", "url": "/^\\/torrent-list\\//", @@ -2864,7 +2827,7 @@ } }, "Kickass Torrents": { - "host": ["kickasss.to","katcr.to","kickasstorrent.cr"], + "host": ["kickasss.to","katcr.to","kickasstorrent.cr","kickass.torrentbay.st"], "url": "return (fun.lp() != '/' && !fun.indexOF('.html') && !fun.indexOF('/popular'))", "blank": 3, "pager": { @@ -2903,6 +2866,25 @@ "replaceE": ".search_stat" } }, + "EXT Torrents": { + "host": "ext.to", + "url": "/^\\/browse\\//", + "blank": 3, + "pager": { + "nextL": ".pages>li.active+li>a", + "pageE": ".found-content-block table>tbody>tr", + "replaceE": ".pages" + } + }, + "Knaben": { + "host": "knaben.org", + "url": "/^\\/(search|browse)\\//", + "pager": { + "nextL": "#nextPage", + "pageE": ".table.caption-top>tbody>tr", + "replaceE": ".pageNumbers" + } + }, "BTDig": { "host": "btdig.com", "url": "/^\\/search/", @@ -3498,7 +3480,7 @@ } }, "包子漫画": { - "host": ["www.czmanga.com","cn.czmanga.com","www.webmota.com","cn.webmota.com","cn.baozimh.com","cn.baozimhcn.com","tw.baozimhcn.com","cn.dzmanga.com","tw.dzmanga.com","www.twmanga.com","www.kukuc.co","cn.kukuc.co"], + "host": ["www.baozimh.com","cn.baozimh.com","www.bzmgcn.com","cn.bzmgcn.com","www.czmanga.com","cn.czmanga.com","www.webmota.com","cn.webmota.com","cn.baozimh.com","cn.baozimhcn.com","tw.baozimhcn.com","cn.dzmanga.com","tw.dzmanga.com","www.twmanga.com","www.kukuc.co","cn.kukuc.co","cn.cnbzmg.com","tw.cnbzmg.com"], "url": "if (fun.indexOF('/chapter/')) {return true;} else if (fun.indexOF('/comic/')) {if (fun.getCSS('#button_show_all_chatper')) {fun.getCSS('#button_show_all_chatper').click();}}", "style": "#footer,#header {display: none !important;} .header,.bottom-bar {opacity: 0.3;}", "history": true, @@ -4016,11 +3998,11 @@ }, "爱下电子书": { "host": "ixdzs8.com", - "url": "/^\\/read\\/.+\\.html$/", + "url": "return (fun.indexOF(/^\\/read\\/.+\\.html$/) || fun.isPager())", "pager": { - "nextL": ".chapter-next", - "pageE": ".page-content>section", - "replaceE": "chapter-act" + "nextL": ".chapter-next, .num.current+a", + "pageE": ".page-content>section, .u-list>li", + "replaceE": ".chapter-act, .page" } }, "飘天文学": { @@ -4175,6 +4157,17 @@ "forceHTTPS": true } }, + "oop.tw": { + "host": "www.oop.tw", + "url": "/^\\/areada\\//", + "pager": { + "type": 6, + "nextL": "#next_url", + "pageE": "#article>p", + "replaceE": ".reading-nav", + "scrollD": 5000 + } + }, "必读推荐": { "host": "www.bidutuijian.com", "url": "/^\\/books\\/.+\\/(?:(?!0000)\\d{4})\\.html/", @@ -4356,7 +4349,7 @@ "url": "return (fun.lp() == '/' && !location.search)", "pager": { "type": 2, - "nextL": ".active .load-more", + "nextL": ".gh-load-more>button", "interval": 1000, "scrollD": 4000 } @@ -5429,9 +5422,9 @@ "url": "return (fun.indexOF(/\\/(scripts|feedback)$/) || fun.indexOF(/\\/scripts\\/(by-site|libraries|code-search)/) || (fun.indexOF('/discussions') && !fun.indexOF(/\\/\\d+/)))", "blank": 3, "pager": { - "nextL": "a.next_page", + "nextL": "a[aria-current=page]+a", "pageE": "ol#browse-script-list>li,.script-discussion-list,.discussion-list>div", - "replaceE": ".pagination" + "replaceE": ".pagy" } }, "OpenUserJS": { @@ -5706,6 +5699,17 @@ "replaceE": ".numeric_pages" } }, + "AnimeCharactersDataBase - ux_search": { + "host": "www.animecharactersdatabase.com", + "url": "/^\\/ux_search\\.php/", + "blank": 3, + "pager": { + "type": 3, + "nextL": "#uxthumbs>.flexcontainer>a.flexitem.bg2.fgw.pad:last-child", + "pageE": "#uxthumbs>a", + "replaceE": "#uxthumbs>.flexcontainer" + } + }, "新片场": { "host": "www.xinpianchang.com", "url": "return (fun.lp() != '/')", @@ -5774,6 +5778,16 @@ "scriptT": 0 } }, + "Hpoi手办维基": { + "host": "www.hpoi.net", + "url": "/^\\/hobby\\/all/", + "pager": { + "nextL": "js; return fun.getNextEP('.hpoi-page-active+li:not(.hpoi-pagination-ellipsis)>a, .hpoi-page-active+li.hpoi-pagination-ellipsis+li:not(.hpoi-pagination-ellipsis)>a','page=',/page=\\d+/)", + "pageE": ".hpoi-glyphicons-list>li", + "replaceE": ".hpoi-pagination", + "scrollD": 1000 + } + }, "资本市场电子化信息披露平台": { "host": "eid.csrc.gov.cn", "url": "/\\/\\d+\\/index/", @@ -5944,7 +5958,7 @@ }, "Xvideos": { "host": ["www.xnxx.com","www.xvideos.com"], - "url": "return fun.isPager('p,r')", + "url": "if(fun.isPager('p,r')){if(fun.indexOF(/^\\/best\\//)){rule.pager.pageE='.mozaique>*,head>script:not([src]),head>script[src$=\\'/runtime.bundle.js\\']';rule.pager.scriptT=2;rule.function.aF='';};return true;}", "blank": 3, "pager": { "nextL": "a.next-page,a.next", @@ -6135,6 +6149,16 @@ "replaceE": ".pages" } }, + "2048 论坛": { + "host": "hjd2048.com", + "url": "/\\/thread\\.php/", + "style": "tr[onmouseover]", + "pager": { + "nextL": ".pages>b+a", + "pageE": "#ajaxtable>tbody[style]>tr", + "replaceE": ".pages" + } + }, "M系镜像": { "host": "mirror.chromaso.net", "url": "if(fun.indexOF(/^\\/thread\\/.+/)){rule.thread=true;rule.pager.pageE='.container>.mm-post';return true;}else if(fun.indexOF(/^\\/(forum|search)\\/.+/)){rule.blank=3;return true;}", @@ -6463,8 +6487,18 @@ "replaceE": ".pagination" } }, + "18AV": { + "host": ["18av.mm-cg.com","/^mjv\\d{3}\\.com$/"], + "url": "return fun.isPager()", + "blank": 3, + "pager": { + "nextL": ".previous-next a", + "pageE": ".post", + "replaceE": ".pagination-row" + } + }, "JavBooks": { - "host": ["javbooks.com","jmvbt.com","/^[a-z]{2}\\d{4}\\.com$/"], + "host": ["javbooks.com","jmvbt.com","/^jkk\\d{3}\\.com$/"], "url": "return (fun.isTitle('Javbooks') && !fun.indexOF('/content_'))", "blank": 3, "pager": { @@ -6683,7 +6717,7 @@ } }, "hanime1": { - "host": "hanime1.me", + "host": ["hanime1.me","hanimeone.me"], "url": "/^\\/search/", "blank": 3, "pager": { @@ -6697,7 +6731,7 @@ } }, "hanime1 - 漫画 - 分类页": { - "host": "hanime1.me", + "host": ["hanime1.me","hanimeone.me"], "url": "return (fun.lp() == '/comics' || fun.indexOF(/^\\/(tags|artists|characters|parodies|groups)\\//))", "blank": 3, "pager": { @@ -6712,7 +6746,7 @@ } }, "hanime1 - 漫画": { - "host": "hanime1.me", + "host": ["hanime1.me","hanimeone.me"], "url": "/^\\/comic\\/\\d+\\/\\d/", "style": "#current-page-image {display: block !important; margin: 0 auto !important; max-height: calc(250vh) !important;}", "pager": { @@ -7201,6 +7235,49 @@ "replaceE": ".wp-pagenavi" } }, + "JComic": { + "host": "jcomic.net", + "url": "/^\\/page\\//", + "pager": { + "nextL": "//div[@class='container']//a/button[text()='下一章']/..", + "pageE": ".container>.container+.row.col-lg-12.col-md-12.col-xs-12>img", + "replaceE": ".container>.row.col-lg-12.col-md-12.col-xs-12:first-child" + } + }, + "JComic - cat": { + "host": "jcomic.net", + "url": "/^\\/cat\\//", + "pager": { + "nextL": ".pagination>.active+li>a", + "pageE": "body>.container>div>.row.col-lg-4.col-md-6.col-xs-12", + "replaceE": ".pagination" + } + }, + "色漫天堂": { + "host": "smtt6.com", + "url": "/^\\/man-hua-yue-du\\//", + "pager": { + "nextL": "//div[@class='positionFooter']//a[text()='下一章']", + "pageE": "#conch-content img.lazy", + "replaceE": ".positionFooter", + "scrollD": 4000 + }, + "function": { + "bF": "return fun.src_bF(pageE)" + } + }, + "色漫天堂 - 分类页": { + "host": "smtt6.com", + "url": "/^\\/man-hua-lei-bie/", + "pager": { + "nextL": "//li[@class='hl-hidden-xs']/a[@class='active']/../following-sibling::li[1]/a", + "pageE": "ul.hl-vod-list>li", + "replaceE": ".hl-page-wrap" + }, + "function": { + "bF": "return fun.src_bF(pageE,[1,'a[data-original]','data-original'])" + } + }, "鸟鸟韩漫": { "host": ["/^nnhanman\\.[a-z]+/","/^nnhanman\\d\\.com/","/^nnhm\\d\\.[a-z]+/"], "url": "/^\\/comic\\/.+\\/chapter-\\d+\\.html/", @@ -7304,7 +7381,7 @@ } }, "爱妹子": { - "host": "xx.knit.bid", + "host": ["xx.knit.bid","www.lovecutes.com"], "url": "return fun.getCSS('li.active+li>a')", "blank": 4, "pager": { @@ -7328,6 +7405,7 @@ "pager": { "nextL": ".next", "pageE": ".wp-block-image>img", + "insertP": [".content-main",3], "replaceE": ".simple-page-nav" }, "function": { @@ -7566,6 +7644,12 @@ "replaceE": "#dm-fy" } }, + "凸凹吧 tuao.cc": { + "host": ["www.tuao.cc","www.nnao.cc","www.24ao.cc"], + "url": "if(fun.indexOF(/^\\/Articles\\/Content\\//)){let d=document.querySelector('#imgData');if(d&&d.value){let a=d.value.split('|');if(a.length>4){const container=document.getElementById('pageContainer');let i=4;const timer=setInterval(()=>{if(i>=a.length){clearInterval(timer);return};const img=document.createElement('img');img.src=atob(a[i]);container.appendChild(img);i++},1000)};return true};}", + "style": "#pagination,body>div:last-of-type,ins", + "hiddenPN": true + }, "仙女图": { "host": "www.xiannvtu.com", "url": "/^\\/v\\//", @@ -7791,13 +7875,16 @@ } }, "黑料网": { - "host": ["18hlw.com","www.hlwxx.com","/.*/"], + "host": ["heiliao.com","18hlw.com","www.hlwxx.com","/.*/"], "url": "return (!fun.indexOF('/archives/') && fun.isTitle('黑料网') && fun.isPager())", "style": ".video-item {height: auto !important;} #notice_container, .infomation, .addbox{display: none !important;}", "blank": 3, "pager": { + "type": 6, "nextL": "a.next", - "pageE": ".video-item" + "pageE": ".video-item", + "loadTime": 800, + "scrollD": 3000 } }, "子夜动漫/七味网 类通用规则": {