// ==UserScript== // @icon https://tva1.sinaimg.cn/large/008i3skNgy1gssioj9haig3040040glg.gif // @name 百度文库-精简&优化 // @namespace wenku.taozhiyu.gitee.io // @version 0.3.19 // @description 删除主页广告、邀请、垃圾内容 // @author 涛之雨 // @home-url https://greasyfork.org/zh-CN/scripts/422847 // @match *://wenku.baidu.com/* // @grant GM_addStyle // @grant unsafeWindow // @license GPL-3.0-only // @run-at document-start // ==/UserScript== /**********************************************\ * V 0.3.19 * 唔,鸽了好久,终于抽空修复了文本复制的问题 * 顺便把图标的直链改成了不限速的新浪图床。。。 * 本来打算做免VIP查看全部文章的来着,结果网页更新了,bug消失了,还好还没做φ(〃'▽'〃) * V 0.3.18 * 自己做了一个比较好看的图标(复制的问题预计下次有空就可以解决了) * 添加“自动阅读”的vip判定(非VIP不可继续阅读按钮) * V 0.3.17 * 修复“继续阅读”按钮误删操作 * V 0.3.16 * 修复拦截弹窗 * V 0.3.15 * 修复自动弹出购买页的bug * 暂时未解决VIP复制的问题 * V 0.3.14 * 解!锁!免!VIP!复!制!(似乎又是全网最优雅的解锁复制方案) * 规范化插件命名空间(如果重复安装请手动删除旧版本) * 移除“滚屏”按钮(感觉没必要了。。。因为解锁复制了) * 修复ctrl+p无内容(解锁vip了) * V 0.3.13 * 新增屏蔽“兴趣”弹窗 * V 0.3.12 * 新增“自动滚屏”按钮(位于右下角)(主要用于ctrl+p渲染页面使用) * 点击后自动滚屏,再次点击后停止滚屏 * 滚动过程中:向上滚动页面,滚动暂停;向下滚动则会继续滚动 * 新增页面对打印的优化(包括移除防止打印、删除顶部栏、缩放界面等) * 修复了一个未识别到的广告 * V 0.3.11 * 新增对于【工具箱】引导的拦截 * V 0.3.10 * 添加对新版开屏弹窗的支持 * V 0.3.9 * 修复新弹窗未屏蔽的bug * V 0.3.8 * 修复新弹窗未屏蔽的bug * 修复部分页面广告、logo未删除的bug,等 * V 0.3.7 * 移除文件页的水印 * 对文库搜索页添加适配 * 首页banner广告改为固定图片 * 移除首页bd恰饭内容(推荐,限时降价,VIP推荐等) * 修改脚本运行的时机,以减少延时感 * V 0.3.6 * 因仅word支持背景色,暂时移除 * V 0.3.5 * 添加背景色 * V 0.3.4 * 删除文章尾部版权说明 * V 0.3.3 * 版本号错乱,强制升级 * V 0.3.2 * 修复按钮判断逻辑错误! * V 0.3.1 * 修复不能自动展开文章的bug * 添加未登录的逻辑算法 * 新增对于屏蔽登录框配置的保存 * 新增点击【登陆】按钮还原的算法 * V 0.2.2 * 添加GPL-3.0-only协议 * V 0.2.1 * 锁定隐藏首页“邀请好友”banner * 实现免VIP全屏阅读 * 全局滚动条美化 * 修改文库页面的图标 * 重构去除广告代码 * 屏蔽文章末尾的结束提示(因为会遮盖部分界面) * 自动加载全部页面 * 移除主题按钮 * V 0.1.1 * 初版,删除精简大部分垃圾、广告等 * TODO : 实现免VIP全屏阅读 * TODO : 免VIP复制等 \************************************************/ //旧版图标https://edu-wenku.bdimg.com/v1/na/0807/%E6%96%87%E5%BA%93APPicon-1603434254133.png (function() { 'use strict'; const w=unsafeWindow||window; const saveInfo=(a)=>{ localStorage.setItem("taozhiyuWKBeautify", JSON.stringify(a)); }; const getInfo=()=>{ return JSON.parse(localStorage.getItem("taozhiyuWKBeautify")); }; let isautorun=false,step=100,timer=30,windowY=0; let info=(getInfo()&&Object.keys(getInfo()).length>0)?getInfo():{"noLogin":0}; function checkmodule(argument) { var moduleJson = { "(": ")", "[": "]", "{": "}", "\'": "\'", "\"": "\"" }; var testStr = argument; var tempSaveArray = testStr.replace(/\\./g, "").match(/['"\[\]\(\)\{\}]/g); if (tempSaveArray.length !== 0) { var isdan = false; var isshuang = false; for (var j = 0; j < tempSaveArray.length; j < 0 ? j = 0 : j++) { if (j > 0 && moduleJson[tempSaveArray[j - 1]] !== undefined && moduleJson[tempSaveArray[j - 1]] == tempSaveArray[j]) { tempSaveArray.splice(j - 1, 2); j -= 2; isdan = false; isshuang = false; continue; } if (isdan || isshuang) { var ischanged = false; if (isdan) { tempSaveArray.splice(j, 1); if (tempSaveArray[j] === "\'") { isdan = false; } ischanged = true; } if (isshuang) { tempSaveArray.splice(j, 1); if (tempSaveArray[j] === "\"") { isshuang = false; } ischanged = true; } if (ischanged) { j--; continue; } } else if (tempSaveArray[j] == "\"") { isshuang = true; } else if (tempSaveArray[j] == "\'") { isdan = true; } } if (tempSaveArray.length) { return false; } else { return true; } } else { return true; } } function retmatchtimes(i, endchar) { var txt = "([^" + endchar + "]*" + endchar + "){" + String(i) + "}"; return txt; } function getFullFunctions(argument, exp, endchar = "\\}") { var matchingtimes = 0; try { var ret = ""; while (matchingtimes <= 1000) { matchingtimes++; var tmp = argument.match(new RegExp(exp + retmatchtimes(matchingtimes, endchar), "gm")); if (tmp === null) break; if (checkmodule(tmp[0])) { ret = tmp[0]; break; } } return ret; } catch (e) { console.log(e); return ""; } } (w.webpackJsonp=[]).tao=w.webpackJsonp.push; w.webpackJsonp.push = (a) => { for (var x in a[1]) { var e = a[1][x].toString(); if (e.match(/canCopy\s*:/)) { debugger var b = getFullFunctions(e, "canCopy\\s*:\\s*function\\s*\\([^\\)]+\\)\\s*\\{"), d = e.match(/function\s*\(([^,]+),([^,]+),([^)]+)\)/); e = e.replace(b, "canCopy:(t)=>true");//劫持复制 a[1][x] = new Function(d[1], d[2], d[3], e.substring(e.indexOf("{") + 1, e.length - 1)); break; } } w.webpackJsonp.tao(a); }; const changeFavicon = link => { let $favicon = document.querySelector('link[rel="shortcut icon"]'); let $favicon1 = document.querySelector('link[rel="icon"]'); $favicon?$favicon.href = link:""; $favicon1?$favicon1.href = link:""; if(!($favicon||$favicon1)){ $favicon = document.createElement("link"); $favicon.rel = "icon"; $favicon.href = link; document.head.appendChild($favicon); } }; setTimeout(()=>{ w.pageData&&w.pageData.vipInfo&&(w.pageData.vipInfo.global_vip_status=2); //修改logo changeFavicon("https://tva1.sinaimg.cn/large/008i3skNgy1gssioj9haig3040040glg.gif"); },1000); const killLogin=(iskill=true)=>{ if(iskill){ GM_addStyle(` .涛之雨劫持登录style, .pop-mask, .tang-foreground, .left-login, .tang-background, #passport-login-pop{ display:none!important width:0!important; overflow:hidden!important; z-index:-99999!important; }`); document.querySelector(".user-icon-wrap").onclick=(a)=>{ killLogin(false); }; }else{ info.noLogin=0; saveInfo(info); var s=document.getElementsByTagName('style'); for(var e=0; e=0){ s[e].remove(); } } } }; //.vip-layer-inner, //.pay-layer1509-wrapper, // [class*=pay-]{ // display:none!important; // width:0!important; // overflow:hidden!important; // } GM_addStyle(`.bottom-pop-wrap, .experience-card-wrap, .experience-card-dialog-wrap, .experience-card-bar-wrap, .doc-price-voucher-wrap, .experience-card-content, .vip-member-pop-content, .copyright-wrap, .edit-subscription-dialog-wrapper.mod, .cover-img-ie8, .user-guide-mask, .opening-season-dialog, [class*=pay-], .vip-wrapper, .client-wrapper, .privilege-merging-dialog-wrap, .notice-info-wrap, .dialog-wraper, .active-dialog-wrapper, .client-download-wrap, .product, .red-text.bold-text, #fengchaoad, .tousu, .new-vip-card-position, .top-recommend-dsp-ad, .woniu-wrap, .topicBox, .search-topicBox-wrap, .author-organizition-wrapper, .search-aside-adWrap, #mywenku, .doc-pack-wrapper, .vip-content-wrapper, .promotion-wrapper, .user-card-wrapper, .slide-wrapper, .bg-wrapper, .slide-circle-wrapper, .operate-wrapper, .voucher-pop-tip, .theme-wap, .experience-card-wrap, .convert-btn-point, .try-end-fold-page, .bottom-pop-wrap, .pure-guide-dialog, .vip-card-wrap, .vip-pop-wrap, .inner-vip, .vip-pop-wrap, .inner-vip, .hx-bottom-wrapper, .hx-recom-wrapper, .qr-wrapper, .feedback-wrapper, .hx-right-wrapper.sider-edge, .app-btn, .hx-warp, .client-btn-wrap, .relative-doc-ad-wrapper, .red-point, .tips, .ex-wrapper, .vip-activity-wrap-new, .bz-doc-tool-dialog-fix, .fixed-activity-bar, .hx-warp, .operation-wrapper, .reader-page > div:nth-last-child(1), .ppt-page-item > div:nth-last-child(1), .doc-tool-dialog-wrapper{ display:none!important; width:0!important; overflow:hidden!important; } /*:last-of-type:nth-last-child(1)*/ .header-wrapper{ background-repeat: no-repeat; background-position: 50% 0; background-size: cover; height: 100%; background-image: url(https://edu-wenku.bdimg.com/v1/pc/2020%E4%BA%8C%E7%BA%A7%E9%A1%B5/%E5%AD%A6%E5%89%8D%E6%95%99%E8%82%B2-1584342432680.png)!important; } .product-line-wrap{ float: left; padding-left: 22px; } .red-dot,.red-dot:after{ background-color:unset!important; } .small-btn-wrap{ float:unset!important; } .bg-items-wrapper{ margin-left:0!important; } body{ overflow-y: scroll!important; } ::-webkit-scrollbar-track{ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px;background-color: #F5F5F5; } ::-webkit-scrollbar{ width: 8px; height: 8px; background-color: #F5F5F5; } ::-webkit-scrollbar-thumb{ border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #c1c1c1; } /*打印屏蔽*/ @media print { body {display: unset!important} .reader-topbar,.lazy-load{display:none} .content-wrapper{padding:0} /*屏蔽导出脚本*/ .crx_bdwk_down_wrap{display:none} } /*滚动按钮*/ .backtop-wrapper #autoroll { margin-bottom: 5px; width: 40px; height: 40px; border-radius: 6px; border: 1px solid #f5f5f5; background-size: 40px 40px; background-repeat: no-repeat; background-image: url("data:image/gif;base64,R0lGODlhMAAwAHAAACH5BAEAAPwALAAAAAAwADAAhwAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAABVMwBVZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMwDVZgDVmQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZjMrmTMrzDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmTOqzDOq/zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YrAGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2aqAGaqM2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5mAZpmAmZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmcxVzMxV/8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzMzV/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r//9VAP9VM/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP/VM//VZv/Vmf/VzP/V////AP//M///Zv//mf//zP///wAAAAAAAAAAAAAAAAjPAPcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3MixI0QAAAqC9JhwJEGQIUkaNDkQZUqVLV8KdClTJcuZIVHCxCkypU6YN/ex/Eky6M2gFmsaVbrxqNKaHIku3flzKtWRVq8S5bkTZ9auW4VCBfq0q9mzaNOqXSt2q1OvNGOGRRg35kmfNIe6XPiWq9+/X3vetUu4sFjBdPO+7Gs48N28jcsaPpxYZGTEfykfNHp58GSknzuLzuy5ZU/QSOuWZPp4bOq9bGPLnk27tsaAADs="); } .backtop-wrapper #autoroll:hover { filter: drop-shadow(2px 3px 5px black); } .backtop-wrapper #autoroll.btnon { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAXIaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwMiA3OS4xNjQ0NjAsIDIwMjAvMDUvMTItMTY6MDQ6MTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDUtMDZUMTM6MzA6NTUrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDUtMDZUMTM6MzA6NTUrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTA1LTA2VDEzOjMwOjU1KzA4OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE5MWU4MzdjLTY3NTItNWM0OC05MDgyLThiNDg3ZGYyYTQ1NSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjc5OGYzMGM0LTEzMmYtZWU0YS1hNzIwLTFjZjc4YTA5ZTczYSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmRlNjMxZmZmLWY3NDEtNzY0NS1iZGRhLWQ2MmIzMjg4NjlhNCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmRlNjMxZmZmLWY3NDEtNzY0NS1iZGRhLWQ2MmIzMjg4NjlhNCIgc3RFdnQ6d2hlbj0iMjAyMS0wNS0wNlQxMzozMDo1NSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTFlODM3Yy02NzUyLTVjNDgtOTA4Mi04YjQ4N2RmMmE0NTUiIHN0RXZ0OndoZW49IjIwMjEtMDUtMDZUMTM6MzA6NTUrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7H2v9ZAAABoklEQVRoQ+2ajXHCMAxG7XQT+rMQXYTuURgEulB7HaVAPhNdhJqaYumwnOPdBS5gWj1LVkqdeOgJAy8fm/AznrrkIcbwuVwNZyEkgRYCl3y/vqXnDg+tBQ8ed+v0HJ936wMX6PoUgdOjHyjCPYsV5dSxJZCCR+AYBClPB2JCbDTBALF3++GEwGCvyNgQe1oDBE+PV2Rpnwm0yF2Ag95M/VmSe0/DzTNgLVGlhCwlqq0BK4mbC9CfAMBCokoGLCWqlZCVRDUBwCVKKRKw7CJaieIMeJFQlZClRClFApZdREtxBrxIqErIg4RKAGi7iBa1AKgpYSIAaknExfbd/xdhBv6Vwr/cm2WgFneB2jQvkF3EUxcn2W1ozKXXL13o+Odzv3d2i3gyA/+dVXDNWELzGbmX0VwG5GxnBWDND4/Mu42iFuXhjXlnwCNyg+OqNgrw3l+vc3Lllvv5YKph0Nj5Xcie+gzIjT7PYJeS9vIw+81lQG5E9kJyWZwsUWueDr4/TCD2Zu+VgNDXcjWWECxbgYIHv263oVNvC5tmGmUz3m4TwhGnXEZREtuo9wAAAABJRU5ErkJggg=="); } `); let a=setInterval(()=>{ let b=document.querySelector(".read-all") if(b){ if(document.querySelector(".fold-no-vip-page-text")===null)b.click();//以后想办法解决这个vip的问题 clearInterval(a); } // b=document.querySelector(".btn-know"); // if(b){ // b.click(); // } },100); let b=setInterval(()=>{ if(document.querySelector(".no-login")){ clearInterval(b); if(info.noLogin===0){//0未知 let c=setInterval(()=>{ if(!document.querySelector(".pop-mask,#passport-login-pop")){return;} clearInterval(c); if(confirm('是否屏蔽登录窗口?\n本浏览器本网站将一直有效,\n如需[登录]或[清除设置]请\n\n【点击右上角的登陆按钮】')){ info.noLogin=1; saveInfo(info); killLogin(); }else{ info.noLogin=2; saveInfo(info); } },100); }else if(info.noLogin===1){//屏蔽 killLogin(); } } },100); setTimeout(()=>{ clearInterval(b); let d=document.querySelector(".small-btn-wrap"); if(d){ const a=document.createElement("span"); a.innerHTML="【涛之雨】插件解锁复制"; a.style='color: #666;font-size: 14px;font-family: PingFangSC-Regular;'; d.append(a); } document.querySelector("body").addEventListener("copy", a=>{ try { a.clipboardData.setData("text", a.target.value.replace(/\n-{56}\n作者:(.|\n)+/,"")); a.preventDefault(); } catch (a) { console.log("去除尾巴失败o(╥﹏╥)o");} }); },2000); /*护眼色 > div #reader-container{ background-color: rgb(199 237 204); }*/ })();