├── .gitignore ├── 5.0- ├── 1x1.gif ├── 2x2.png ├── 32x32.png ├── 3x2.png ├── Wechat.js ├── YTB_TST.txt ├── addthis_widget.js ├── amazon_ads.js ├── ampproject_v0.js ├── chartbeat.js ├── disqus_embed.js ├── disqus_forums_embed.js ├── doubleclick_instream_ad_status.js ├── echo_request_value.js ├── echo_response_value.js ├── empty ├── fuckadblock.js ├── google-analytics_analytics.js ├── google-analytics_cx_api.js ├── google-analytics_ga.js ├── google-analytics_inpage_linkid.js ├── googlesyndication_adsbygoogle.js ├── googletagmanager_gtm.js ├── googletagservices_gpt.js ├── hd-main.js ├── ligatus_angular-tag.js ├── monkeybroker.js ├── nano-setInterval-booster.js ├── nano-setTimeout-booster.js ├── no-floc.js ├── nobab.js ├── noeval-silent.js ├── noeval.js ├── nofab.js ├── noop-0.1s.mp3 ├── noop-0.1s.mp4 ├── noop-1s.mp4 ├── noop.html ├── noop.js ├── noop.txt ├── nowebrtc.js ├── outbrain-widget.js ├── popads-dummy.js ├── popads.js ├── pornhub.js ├── renren.js ├── scorecardresearch_beacon.js └── window.open-defuser.js ├── AD ├── 1x1.gif ├── 2x2.png ├── 32x32.png ├── 3x2.png ├── YouTube.js ├── addthis_widget.js ├── amazon_ads.js ├── ampproject_v0.js ├── chartbeat.js ├── disqus_embed.js ├── disqus_forums_embed.js ├── doubleclick_instream_ad_status.js ├── empty ├── google-analytics_analytics.js ├── google-analytics_cx_api.js ├── google-analytics_ga.js ├── google-analytics_inpage_linkid.js ├── googlesyndication_adsbygoogle.js ├── googletagmanager_gtm.js ├── googletagservices_gpt.js ├── hd-main.js ├── ligatus_angular-tag.js ├── monkeybroker.js ├── nano-setInterval-booster.js ├── nano-setTimeout-booster.js ├── nobab.js ├── noeval-silent.js ├── noeval.js ├── nofab.js ├── noop-0.1s.mp3 ├── noop-1s.mp4 ├── noop.html ├── noop.js ├── noop.txt ├── outbrain-widget.js ├── popads-dummy.js ├── popads.js ├── scorecardresearch_beacon.js └── window.open-defuser.js ├── CERT └── cert_tr.sh ├── CSS └── sizzle_mini.js ├── H5- └── ad_player.js ├── KP- ├── AR.js ├── Remove_AD.js ├── YouTube_ skip.js ├── baidu_ad.js ├── disable_qq_beacon.js ├── fuck.ts ├── fuck_css_mini.js ├── fuckcss.js ├── fuckcss.min.js ├── hack_plus.user.js ├── hide.js ├── hide_mini.js ├── hide_w.js ├── iqiyi.js ├── mars-.js ├── mars.js ├── null.jpg ├── pcweb.wonder.js ├── playersdk.js ├── setup.js ├── sizzle_mini ├── skip_video_h5.js ├── test.txt ├── youku_skip_ad.js └── youtube_css.js ├── README.md ├── backup ├── daily.txt ├── daily.txt.md5 ├── koolproxy.txt ├── koolproxy.txt.md5 ├── kp.dat ├── kp.dat.md5 └── test.txt ├── binary ├── KoolProxy_Readme ├── KoolProxy_Readme.docx ├── install │ ├── koolproxy_AX32.tar.gz │ ├── koolproxy_X86.tar.gz │ ├── koolproxy_arm380.tar.gz │ ├── koolproxy_arm384.tar.gz │ └── koolproxy_hnd.tar.gz └── v3.8.5 │ ├── aarch64 │ ├── arm │ ├── mips │ ├── mipsel │ ├── x86 │ └── x86_64 ├── daily.txt ├── daily.txt.md5 ├── docs └── image │ ├── 80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif │ ├── alipay.jpg │ ├── koolproxy_rules.jpg │ └── wechat.jpg ├── koolproxy.conf ├── koolproxy.conf.md5 ├── koolproxy.txt ├── koolproxy.txt.md5 ├── kp.dat ├── kp.dat.md5 ├── md5.sh ├── swf ├── 17173.in.Live.swf ├── 17173.in.Vod.swf ├── 17173.out.Live.swf ├── 17173.out.Vod.swf ├── 17173_in_20150522.swf ├── 17173_out_20150522.swf ├── iqiyi5.swf ├── ku6-p.swf ├── ku6.swf └── test.txt ├── tool ├── Router_Dog.apk ├── koolproxy_ipset.conf ├── koolproxy_ipset.conf.md ├── koolproxy_ipset_ip.list ├── koolproxy_ipset_ip.md ├── koolproxy_white_ip_update.list ├── koolproxy_white_ip_update.md ├── koolproxy_white_update.conf ├── koolproxy_white_update.conf.md ├── node_modules.tar.gz ├── packages │ ├── node-npm_v12.19.0-1_x86_64.ipk │ ├── node_v12.19.0-1_x86_64.ipk │ └── signdog.md5 ├── signdog ├── signdog.md5 └── upx ├── upload_rules.txt ├── user.txt └── video_fuck ├── adguard.js ├── blank.m4v ├── fuck.mp4 ├── fuck_II.mp4 ├── null.mp3 ├── skip_youtube.js └── twitch_ad.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /5.0-/1x1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/1x1.gif -------------------------------------------------------------------------------- /5.0-/2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/2x2.png -------------------------------------------------------------------------------- /5.0-/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/32x32.png -------------------------------------------------------------------------------- /5.0-/3x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/3x2.png -------------------------------------------------------------------------------- /5.0-/Wechat.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj.advertisement_num = 0; 3 | obj.advertisement_info = []; 4 | delete obj.appid; 5 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /5.0-/YTB_TST.txt: -------------------------------------------------------------------------------- 1 | !!!!!!KoolProxy 5.0 experimental rules!!!!!!! 2 | !!!!!!Separation filter core!!!!!!! 3 | &traceId=*&union_lens=lensId:*$reload=&af=1&pid=mm_18780958_10950171_55588314$enable>>>>password 4 | //AyIGZRprFDJWWA1FBCVbV0IUWVALHFRBEwQAQB1AWQkFa0NLSWVcfBILYFAEUR8oVkdpW1V6HGUOHjdSGVsWCyIFVh5dHQsQDl0raxUBIkw7GmsVCxIHXB5eFAASN1UfXRAEFg9XGl0dAxI3UhtSJQIXD10TXhELExtcHlwVARU3ZStYJTIiB1UrWyVdVloIK1kUAxYO$TR>>>>password 5 | //PXFG&p=AyIGZRprFDJWWA1FBCVbV0IUWVALHFRBEwQAQB1AWQkFa0NLSWVcfBILYFAEUR8oVkdpW1V6HGUOHjdSGVsWCyIFVh5dHQsQDl0raxUBIkw7GmsVCxIHXB5eFAASN1UfXRAEFg9XGl0dAxI3UhtSJQIXD10TXhELExtcHlwVARU3ZStYJTIiB1UrWyVdVloIK1kUAxYO$TR>>>>password 6 | /^https://ai\.youtube.com\/\Wpid\W(?!.*mm_18780958).*/$reload=https://ai.koolproxy.com/?pid=mm_18780958_10950171_55588314{(1)}{(2)}{(3)(skip)}{(time)} 7 | ||https://ads.doubleclick.net 8 | ||https://s.ytimg.com 9 | ||https://ad.youtube.com 10 | ||https://ads.youtube.com 11 | ||https://clients1.google.com 12 | ||https://dts.innovid.com 13 | ||https://googleads4.g.doubleclick.net 14 | ||https://pagead2.googlesyndication.com 15 | ||https://pixel.moatads.com 16 | ||https://rtd.tubemogul.com 17 | ||https://s.innovid.com 18 | ||https://pubads.g.doubleclick.net 19 | ||https://ssl.google-analytics.com 20 | ||https://www-google-analytics.l.google.com 21 | ||https://stats.g.doubleclick.net 22 | ||https://clients.l.google.com 23 | ||https://pagead.l.doubleclick.net 24 | ||https://www-googletagmanager.l.google.com 25 | ||https://googleadapis.l.google.com 26 | ||https://s0.2mdn.net 27 | ||https://googleads.g.doubleclick.net 28 | ||https://files.adform.net 29 | ||https://secure-ds.serving-sys.com 30 | ||https://securepubads.g.doubleclick.net 31 | ||https://s.youtube.com 32 | ||https://2975c.v.fwmrm.net 33 | ||https://static.doubleclick.net 34 | ||https://googleadservices.com 35 | ||https://ad-g.doubleclick.net 36 | ||https://ad.doubleclick.net 37 | ||https://ad.mo.doubleclick.net 38 | ||https://doubleclick.net 39 | ||https://pagead.googlesyndication.com 40 | ||https://pagead1.googlesyndication.com 41 | ||https://www.googleadservices.com 42 | ||https://youtube-nocookie.com 43 | ||https://www.youtube-nocookie.com 44 | ||https://analytic-google.com 45 | ||https://www.analytic-google.com 46 | ||https://www.googletagservices.com 47 | ||https://fwmrm.net 48 | ||https://innovid.com 49 | ||https://2mdn.net 50 | ||https://fwmrm.net 51 | ||https://innovid.com 52 | ||https://2mdn.net -------------------------------------------------------------------------------- /5.0-/addthis_widget.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.addthis = { 27 | addEventListener: noopfn, 28 | button: noopfn, 29 | init: noopfn, 30 | layers: noopfn, 31 | ready: noopfn, 32 | sharecounters: { 33 | getShareCounts: noopfn 34 | }, 35 | toolbox: noopfn, 36 | update: noopfn 37 | }; 38 | })(); 39 | -------------------------------------------------------------------------------- /5.0-/amazon_ads.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | if ( amznads ) { 25 | return; 26 | } 27 | var w = window; 28 | var noopfn = function() { 29 | ; 30 | }.bind(); 31 | var amznads = { 32 | appendScriptTag: noopfn, 33 | appendTargetingToAdServerUrl: noopfn, 34 | appendTargetingToQueryString: noopfn, 35 | clearTargetingFromGPTAsync: noopfn, 36 | doAllTasks: noopfn, 37 | doGetAdsAsync: noopfn, 38 | doTask: noopfn, 39 | detectIframeAndGetURL: noopfn, 40 | getAds: noopfn, 41 | getAdsAsync: noopfn, 42 | getAdForSlot: noopfn, 43 | getAdsCallback: noopfn, 44 | getDisplayAds: noopfn, 45 | getDisplayAdsAsync: noopfn, 46 | getDisplayAdsCallback: noopfn, 47 | getKeys: noopfn, 48 | getReferrerURL: noopfn, 49 | getScriptSource: noopfn, 50 | getTargeting: noopfn, 51 | getTokens: noopfn, 52 | getValidMilliseconds: noopfn, 53 | getVideoAds: noopfn, 54 | getVideoAdsAsync: noopfn, 55 | getVideoAdsCallback: noopfn, 56 | handleCallBack: noopfn, 57 | hasAds: noopfn, 58 | renderAd: noopfn, 59 | saveAds: noopfn, 60 | setTargeting: noopfn, 61 | setTargetingForGPTAsync: noopfn, 62 | setTargetingForGPTSync: noopfn, 63 | tryGetAdsAsync: noopfn, 64 | updateAds: noopfn 65 | }; 66 | w.amznads = amznads; 67 | w.amzn_ads = w.amzn_ads || noopfn; 68 | w.aax_write = w.aax_write || noopfn; 69 | w.aax_render_ad = w.aax_render_ad || noopfn; 70 | })(); 71 | -------------------------------------------------------------------------------- /5.0-/ampproject_v0.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const head = document.head; 25 | if ( !head ) { return; } 26 | const style = document.createElement('style'); 27 | style.textContent = [ 28 | 'body {', 29 | ' animation: none !important;', 30 | ' overflow: unset !important;', 31 | '}' 32 | ].join('\n'); 33 | head.appendChild(style); 34 | })(); 35 | -------------------------------------------------------------------------------- /5.0-/chartbeat.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.pSUPERFLY = { 27 | activity: noopfn, 28 | virtualPage: noopfn 29 | }; 30 | })(); 31 | -------------------------------------------------------------------------------- /5.0-/disqus_embed.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const p = document.getElementById(window.disqus_container_id || 'disqus_thread'); 25 | if ( p === null ) { return; } 26 | const b = document.createElement('button'); 27 | b.textContent = 'Disqus blocked by uBlock Origin: click to unblock'; 28 | b.type = 'button'; 29 | p.appendChild(b); 30 | const loadDisqus = function(ev) { 31 | b.removeEventListener('click', loadDisqus); 32 | p.removeChild(b); 33 | const script = document.createElement('script'); 34 | script.async = true; 35 | const t = Date.now().toString(); 36 | script.src = '//' + window.disqus_shortname + '.disqus.com/embed.js?_=1457540' + t.slice(-6); 37 | document.body.appendChild(script); 38 | ev.preventDefault(); 39 | ev.stopPropagation(); 40 | }; 41 | b.addEventListener('click', loadDisqus); 42 | })(); 43 | -------------------------------------------------------------------------------- /5.0-/disqus_forums_embed.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | 21 | Completely experimental: load Disqus on demand only. Purpose is to avoid 22 | connecting to Disqus' servers, unless the user explicitly asks for the 23 | comments to be loaded. 24 | Works with following filters: 25 | ||disqus.com/forums/*embed.js$script,redirect=disqus.com/forums/*embed.js 26 | ||disqus.com/embed.js$script,redirect=disqus.com/embed.js 27 | ||disqus.com/count.js$script 28 | @@||disqus.com/embed.js?_=1457540*$script 29 | If you want a site you regularly visit to always have the comment loaded, 30 | just use an exception static filter. Example for wired.com: 31 | @@||wired.disqus.com/embed.js 32 | 33 | */ 34 | 35 | (function() { 36 | 'use strict'; 37 | const ee = document.getElementsByTagName('script'); 38 | let i = ee.length, src; 39 | while ( i-- ) { 40 | src = ee[i].src || ''; 41 | if ( src === '' ) { 42 | continue; 43 | } 44 | if ( src.lastIndexOf('disqus.com/embed.js') === (src.length - 19) ) { 45 | return; 46 | } 47 | } 48 | const e = document.createElement('script'); 49 | e.async = true; 50 | e.src = '//' + window.disqus_shortname + '.disqus.com/embed.js'; 51 | document.body.appendChild(e); 52 | })(); 53 | -------------------------------------------------------------------------------- /5.0-/doubleclick_instream_ad_status.js: -------------------------------------------------------------------------------- 1 | window.google_ad_status = 1; 2 | -------------------------------------------------------------------------------- /5.0-/echo_request_value.js: -------------------------------------------------------------------------------- 1 | // 打印输出Request相关变量 2 | console.log("Scheme: " + $request.scheme); 3 | console.log("Method: " + $request.method); 4 | console.log("URL: " + $request.url); 5 | console.log("Path: " + $request.path); 6 | console.log("Headers: " + JSON.stringify($request.headers)); -------------------------------------------------------------------------------- /5.0-/echo_response_value.js: -------------------------------------------------------------------------------- 1 | // 打印输出Response相关变量 2 | console.log("Status Code: " + $response.statusCode); 3 | console.log("Headers: " + JSON.stringify($response.headers)); 4 | console.log("Body: " + $response.body); -------------------------------------------------------------------------------- /5.0-/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/empty -------------------------------------------------------------------------------- /5.0-/fuckadblock.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var noopfn = function() { 3 | ; 4 | }; 5 | // 6 | var Fab = function() {}; 7 | Fab.prototype.check = noopfn; 8 | Fab.prototype.clearEvent = noopfn; 9 | Fab.prototype.emitEvent = noopfn; 10 | Fab.prototype.on = function(a, b) { 11 | if ( !a ) { b(); } 12 | return this; 13 | }; 14 | Fab.prototype.onDetected = function() { 15 | return this; 16 | }; 17 | Fab.prototype.onNotDetected = function(a) { 18 | a(); 19 | return this; 20 | }; 21 | Fab.prototype.setOption = noopfn; 22 | var fab = new Fab(), 23 | getSetFab = { 24 | get: function() { return Fab; }, 25 | set: function() {} 26 | }, 27 | getsetfab = { 28 | get: function() { return fab; }, 29 | set: function() {} 30 | }; 31 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; } 32 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); } 33 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; } 34 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); } 35 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; } 36 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); } 37 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; } 38 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); } 39 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; } 40 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); } 41 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; } 42 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); } 43 | })(); -------------------------------------------------------------------------------- /5.0-/google-analytics_analytics.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | // https://developers.google.com/analytics/devguides/collection/analyticsjs/ 25 | const noopfn = function() { 26 | }; 27 | const noopnullfn = function() { 28 | return null; 29 | }; 30 | // 31 | const Tracker = function() { 32 | }; 33 | const p = Tracker.prototype; 34 | p.get = noopfn; 35 | p.set = noopfn; 36 | p.send = noopfn; 37 | // 38 | const w = window; 39 | const gaName = w.GoogleAnalyticsObject || 'ga'; 40 | const gaQueue = w[gaName]; 41 | const ga = function() { 42 | const len = arguments.length; 43 | if ( len === 0 ) { return; } 44 | const args = Array.from(arguments); 45 | let fn; 46 | let a = args[len-1]; 47 | if ( a instanceof Object && a.hitCallback instanceof Function ) { 48 | fn = a.hitCallback; 49 | } else { 50 | const pos = args.indexOf('hitCallback'); 51 | if ( pos !== -1 && args[pos+1] instanceof Function ) { 52 | fn = args[pos+1]; 53 | } 54 | } 55 | if ( fn instanceof Function === false ) { return; } 56 | try { 57 | fn(); 58 | } catch (ex) { 59 | } 60 | }; 61 | ga.create = function() { 62 | return new Tracker(); 63 | }; 64 | ga.getByName = noopnullfn; 65 | ga.getAll = function() { 66 | return []; 67 | }; 68 | ga.remove = noopfn; 69 | // https://github.com/uBlockOrigin/uAssets/issues/2107 70 | ga.loaded = true; 71 | w[gaName] = ga; 72 | // https://github.com/gorhill/uBlock/issues/3075 73 | const dl = w.dataLayer; 74 | if ( dl instanceof Object && dl.hide instanceof Object && typeof dl.hide.end === 'function' ) { 75 | dl.hide.end(); 76 | } 77 | // empty ga queue 78 | if ( gaQueue instanceof Function && Array.isArray(gaQueue.q) ) { 79 | for ( const entry of gaQueue.q ) { 80 | ga(...entry); 81 | } 82 | } 83 | })(); 84 | -------------------------------------------------------------------------------- /5.0-/google-analytics_cx_api.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.cxApi = { 27 | chooseVariation: function() { 28 | return 0; 29 | }, 30 | getChosenVariation: noopfn, 31 | setAllowHash: noopfn, 32 | setChosenVariation: noopfn, 33 | setCookiePath: noopfn, 34 | setDomainName: noopfn 35 | }; 36 | })(); 37 | -------------------------------------------------------------------------------- /5.0-/google-analytics_ga.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | // 27 | const Gaq = function() { 28 | }; 29 | Gaq.prototype.Na = noopfn; 30 | Gaq.prototype.O = noopfn; 31 | Gaq.prototype.Sa = noopfn; 32 | Gaq.prototype.Ta = noopfn; 33 | Gaq.prototype.Va = noopfn; 34 | Gaq.prototype._createAsyncTracker = noopfn; 35 | Gaq.prototype._getAsyncTracker = noopfn; 36 | Gaq.prototype._getPlugin = noopfn; 37 | Gaq.prototype.push = function(a) { 38 | if ( typeof a === 'function' ) { 39 | a(); return; 40 | } 41 | if ( Array.isArray(a) === false ) { 42 | return; 43 | } 44 | // https://twitter.com/catovitch/status/776442930345218048 45 | // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link 46 | if ( a[0] === '_link' && typeof a[1] === 'string' ) { 47 | window.location.assign(a[1]); 48 | } 49 | // https://github.com/gorhill/uBlock/issues/2162 50 | if ( a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function' ) { 51 | a[2](); 52 | } 53 | }; 54 | // 55 | const tracker = (function() { 56 | const out = {}; 57 | const api = [ 58 | '_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic', 59 | '_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic', 60 | '_cookiePathCopy _deleteCustomVar _getName _setAccount', 61 | '_getAccount _getClientInfo _getDetectFlash _getDetectTitle', 62 | '_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion', 63 | '_getVisitorCustomVar _initData _link _linkByPost', 64 | '_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey', 65 | '_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey', 66 | '_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo', 67 | '_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar', 68 | '_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath', 69 | '_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode', 70 | '_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout', 71 | '_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime', 72 | '_trackPageview _trackSocial _trackTiming _trackTrans', 73 | '_visitCode' 74 | ].join(' ').split(/\s+/); 75 | let i = api.length; 76 | while ( i-- ) { 77 | out[api[i]] = noopfn; 78 | } 79 | out._getLinkerUrl = function(a) { 80 | return a; 81 | }; 82 | return out; 83 | })(); 84 | // 85 | const Gat = function() { 86 | }; 87 | Gat.prototype._anonymizeIP = noopfn; 88 | Gat.prototype._createTracker = noopfn; 89 | Gat.prototype._forceSSL = noopfn; 90 | Gat.prototype._getPlugin = noopfn; 91 | Gat.prototype._getTracker = function() { 92 | return tracker; 93 | }; 94 | Gat.prototype._getTrackerByName = function() { 95 | return tracker; 96 | }; 97 | Gat.prototype._getTrackers = noopfn; 98 | Gat.prototype.aa = noopfn; 99 | Gat.prototype.ab = noopfn; 100 | Gat.prototype.hb = noopfn; 101 | Gat.prototype.la = noopfn; 102 | Gat.prototype.oa = noopfn; 103 | Gat.prototype.pa = noopfn; 104 | Gat.prototype.u = noopfn; 105 | const gat = new Gat(); 106 | window._gat = gat; 107 | // 108 | const gaq = new Gaq(); 109 | (function() { 110 | const aa = window._gaq || []; 111 | if ( Array.isArray(aa) ) { 112 | while ( aa[0] ) { 113 | gaq.push(aa.shift()); 114 | } 115 | } 116 | })(); 117 | window._gaq = gaq.qf = gaq; 118 | })(); 119 | -------------------------------------------------------------------------------- /5.0-/google-analytics_inpage_linkid.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window._gaq = window._gaq || { 25 | push: function() { 26 | } 27 | }; 28 | })(); 29 | -------------------------------------------------------------------------------- /5.0-/googlesyndication_adsbygoogle.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.adsbygoogle = window.adsbygoogle || { 25 | length: 0, 26 | loaded: true, 27 | push: function Si() { 28 | /* 29 | client = client || google_ad_client || google_ad_client; 30 | slotname = slotname || google_ad_slot; 31 | tag_origin = tag_origin || google_tag_origin 32 | */ 33 | this.length += 1; 34 | } 35 | }; 36 | const phs = document.querySelectorAll('.adsbygoogle'); 37 | const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;'; 38 | for ( let i = 0; i < phs.length; i++ ) { 39 | const fr = document.createElement('iframe'); 40 | const id = `aswift_${(i+1)}`; 41 | if ( document.querySelector(`iframe#${id}`) !== null ) { continue; } 42 | fr.id = id; 43 | fr.style = css; 44 | const cfr = document.createElement('iframe'); 45 | cfr.id = `google_ads_frame${i}`; 46 | fr.appendChild(cfr); 47 | document.body.appendChild(fr); 48 | } 49 | })(); 50 | -------------------------------------------------------------------------------- /5.0-/googletagmanager_gtm.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const w = window; 27 | w.ga = w.ga || noopfn; 28 | const dl = w.dataLayer; 29 | if ( dl instanceof Object === false ) { return; } 30 | if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) { 31 | dl.hide.end(); 32 | } 33 | if ( typeof dl.push === 'function' ) { 34 | dl.push = function(o) { 35 | if ( 36 | o instanceof Object && 37 | typeof o.eventCallback === 'function' 38 | ) { 39 | setTimeout(o.eventCallback, 1); 40 | } 41 | }; 42 | } 43 | })(); 44 | -------------------------------------------------------------------------------- /5.0-/googletagservices_gpt.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | // https://developers.google.com/doubleclick-gpt/reference 25 | const noopfn = function() { 26 | }.bind(); 27 | const noopthisfn = function() { 28 | return this; 29 | }; 30 | const noopnullfn = function() { 31 | return null; 32 | }; 33 | const nooparrayfn = function() { 34 | return []; 35 | }; 36 | const noopstrfn = function() { 37 | return ''; 38 | }; 39 | // 40 | const companionAdsService = { 41 | addEventListener: noopthisfn, 42 | enableSyncLoading: noopfn, 43 | setRefreshUnfilledSlots: noopfn 44 | }; 45 | const contentService = { 46 | addEventListener: noopthisfn, 47 | setContent: noopfn 48 | }; 49 | const PassbackSlot = function() { 50 | }; 51 | let p = PassbackSlot.prototype; 52 | p.display = noopfn; 53 | p.get = noopnullfn; 54 | p.set = noopthisfn; 55 | p.setClickUrl = noopthisfn; 56 | p.setTagForChildDirectedTreatment = noopthisfn; 57 | p.setTargeting = noopthisfn; 58 | p.updateTargetingFromMap = noopthisfn; 59 | const pubAdsService = { 60 | addEventListener: noopthisfn, 61 | clear: noopfn, 62 | clearCategoryExclusions: noopthisfn, 63 | clearTagForChildDirectedTreatment: noopthisfn, 64 | clearTargeting: noopthisfn, 65 | collapseEmptyDivs: noopfn, 66 | defineOutOfPagePassback: function() { return new PassbackSlot(); }, 67 | definePassback: function() { return new PassbackSlot(); }, 68 | disableInitialLoad: noopfn, 69 | display: noopfn, 70 | enableAsyncRendering: noopfn, 71 | enableSingleRequest: noopfn, 72 | enableSyncRendering: noopfn, 73 | enableVideoAds: noopfn, 74 | get: noopnullfn, 75 | getAttributeKeys: nooparrayfn, 76 | getTargeting: noopfn, 77 | getTargetingKeys: nooparrayfn, 78 | getSlots: nooparrayfn, 79 | refresh: noopfn, 80 | set: noopthisfn, 81 | setCategoryExclusion: noopthisfn, 82 | setCentering: noopfn, 83 | setCookieOptions: noopthisfn, 84 | setForceSafeFrame: noopthisfn, 85 | setLocation: noopthisfn, 86 | setPublisherProvidedId: noopthisfn, 87 | setRequestNonPersonalizedAds: noopthisfn, 88 | setSafeFrameConfig: noopthisfn, 89 | setTagForChildDirectedTreatment: noopthisfn, 90 | setTargeting: noopthisfn, 91 | setVideoContent: noopthisfn, 92 | updateCorrelator: noopfn 93 | }; 94 | const SizeMappingBuilder = function() { 95 | }; 96 | p = SizeMappingBuilder.prototype; 97 | p.addSize = noopthisfn; 98 | p.build = noopnullfn; 99 | const Slot = function() { 100 | }; 101 | p = Slot.prototype; 102 | p.addService = noopthisfn; 103 | p.clearCategoryExclusions = noopthisfn; 104 | p.clearTargeting = noopthisfn; 105 | p.defineSizeMapping = noopthisfn; 106 | p.get = noopnullfn; 107 | p.getAdUnitPath = nooparrayfn; 108 | p.getAttributeKeys = nooparrayfn; 109 | p.getCategoryExclusions = nooparrayfn; 110 | p.getDomId = noopstrfn; 111 | p.getSlotElementId = noopstrfn; 112 | p.getSlotId = noopthisfn; 113 | p.getTargeting = nooparrayfn; 114 | p.getTargetingKeys = nooparrayfn; 115 | p.set = noopthisfn; 116 | p.setCategoryExclusion = noopthisfn; 117 | p.setClickUrl = noopthisfn; 118 | p.setCollapseEmptyDiv = noopthisfn; 119 | p.setTargeting = noopthisfn; 120 | // 121 | const gpt = window.googletag || {}; 122 | const cmd = gpt.cmd || []; 123 | gpt.apiReady = true; 124 | gpt.cmd = []; 125 | gpt.cmd.push = function(a) { 126 | try { 127 | a(); 128 | } catch (ex) { 129 | } 130 | return 1; 131 | }; 132 | gpt.companionAds = function() { return companionAdsService; }; 133 | gpt.content = function() { return contentService; }; 134 | gpt.defineOutOfPageSlot = function() { return new Slot(); }; 135 | gpt.defineSlot = function() { return new Slot(); }; 136 | gpt.destroySlots = noopfn; 137 | gpt.disablePublisherConsole = noopfn; 138 | gpt.display = noopfn; 139 | gpt.enableServices = noopfn; 140 | gpt.getVersion = noopstrfn; 141 | gpt.pubads = function() { return pubAdsService; }; 142 | gpt.pubadsReady = true; 143 | gpt.setAdIframeTitle = noopfn; 144 | gpt.sizeMapping = function() { return new SizeMappingBuilder(); }; 145 | window.googletag = gpt; 146 | while ( cmd.length !== 0 ) { 147 | gpt.cmd.push(cmd.shift()); 148 | } 149 | })(); 150 | -------------------------------------------------------------------------------- /5.0-/hd-main.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const l = {}; 25 | const noopfn = function() { 26 | }; 27 | const props = [ 28 | "$j","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Nj","Oc","Pc","Pe", 29 | "Qc","Qe","Rc","Re","Ri","Sc","Tc","Uc","Vc","Wc","Wg","Xc","Xg","Yc","Yd", 30 | "ad","ae","bd","bf","cd","dd","ed","ef","ek","fd","fg","fh","fk","gd","hd", 31 | "ig","ij","jd","kd","ke","ld","md","mi","nd","od","oh","pd","pf","qd","rd", 32 | "sd","td","ud","vd","wd","wg","xd","xh","yd","zd", 33 | "$d","$e","$k","Ae","Af","Aj","Be","Ce","De","Ee","Ek","Eo","Ep","Fe","Fo", 34 | "Ge","Gh","Hk","Ie","Ip","Je","Ke","Kk","Kq","Le","Lh","Lk","Me","Mm","Ne", 35 | "Oe","Pe","Qe","Re","Rp","Se","Te","Ue","Ve","Vp","We","Xd","Xe","Yd","Ye", 36 | "Zd","Ze","Zf","Zk","ae","af","al","be","bf","bg","ce","cp","df","di","ee", 37 | "ef","fe","ff","gf","gm","he","hf","ie","je","jf","ke","kf","kl","le","lf", 38 | "lk","mf","mg","mn","nf","oe","of","pe","pf","pg","qe","qf","re","rf","se", 39 | "sf","te","tf","ti","ue","uf","ve","vf","we","wf","wg","wi","xe","ye","yf", 40 | "yk","yl","ze","zf","zk" 41 | ]; 42 | for ( let i = 0; i < props.length; i++ ) { 43 | l[props[i]] = noopfn; 44 | } 45 | window.L = window.J = l; 46 | })(); 47 | -------------------------------------------------------------------------------- /5.0-/ligatus_angular-tag.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | self.adProtect = true; 25 | Object.defineProperties(window, { 26 | uabpdl: { value: true }, 27 | uabDetect: { value: true } 28 | }); 29 | })(); 30 | -------------------------------------------------------------------------------- /5.0-/monkeybroker.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.pbjs = { libLoaded: true }; 27 | const mb = window.MonkeyBroker || { 28 | addAttribute: noopfn, 29 | addSlot: function(a) { 30 | this.slots[a.slot] = {}; 31 | }, 32 | defineSlot: noopfn, 33 | fillSlot: noopfn, 34 | go: noopfn, 35 | inventoryConditionalPlacement: noopfn, 36 | registerSizeCallback: noopfn, 37 | registerSlotCallback: noopfn, 38 | slots: {}, 39 | version: '' 40 | }; 41 | mb.regSlotsMap = mb.slots; 42 | window.MonkeyBroker = mb; 43 | })(); 44 | -------------------------------------------------------------------------------- /5.0-/nano-setInterval-booster.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | // Based on uAssets 3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE 4 | var z = window.setInterval, 5 | needle = '{{1}}', 6 | delay = parseInt('{{2}}', 10), 7 | boost = parseFloat('{{3}}'); 8 | if ( needle === '' || needle === '{{1}}' ) { 9 | needle = '.?'; 10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) { 11 | needle = needle.slice(1, -1); 12 | } else { 13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 14 | } 15 | needle = new RegExp(needle); 16 | if ( isNaN(delay) || !isFinite(delay) ) { 17 | delay = 1000; 18 | } 19 | if ( isNaN(boost) || !isFinite(boost) ) { 20 | boost = 0.05; 21 | } 22 | if ( boost < 0.02 ) { 23 | boost = 0.02; 24 | } 25 | if ( boost > 50 ) { 26 | boost = 50; 27 | } 28 | window.setInterval = function(a, b) { 29 | if ( b === delay && needle.test(a.toString()) ) { 30 | b *= boost; 31 | } 32 | return z.apply(this, arguments); 33 | }.bind(window); 34 | })(); -------------------------------------------------------------------------------- /5.0-/nano-setTimeout-booster.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | // Based on uAssets 3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE 4 | var z = window.setTimeout, 5 | needle = '{{1}}', 6 | delay = parseInt('{{2}}', 10), 7 | boost = parseFloat('{{3}}'); 8 | if ( needle === '' || needle === '{{1}}' ) { 9 | needle = '.?'; 10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) { 11 | needle = needle.slice(1, -1); 12 | } else { 13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 14 | } 15 | needle = new RegExp(needle); 16 | if ( isNaN(delay) || !isFinite(delay) ) { 17 | delay = 1000; 18 | } 19 | if ( isNaN(boost) || !isFinite(boost) ) { 20 | boost = 0.05; 21 | } 22 | if ( boost < 0.02 ) { 23 | boost = 0.02; 24 | } 25 | if ( boost > 50 ) { 26 | boost = 50; 27 | } 28 | window.setTimeout = function(a, b) { 29 | if ( b === delay && needle.test(a.toString()) ) { 30 | b *= boost; 31 | } 32 | return z.apply(this, arguments); 33 | }.bind(window); 34 | })(); -------------------------------------------------------------------------------- /5.0-/no-floc.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | if ( Document instanceof Object === false ) { return; } 3 | if ( Document.prototype.interestCohort instanceof Function === false ) { 4 | return; 5 | } 6 | Document.prototype.interestCohort = new Proxy( 7 | Document.prototype.interestCohort, 8 | { 9 | apply: function() { 10 | return Promise.reject(); 11 | } 12 | } 13 | ); 14 | })(); -------------------------------------------------------------------------------- /5.0-/nobab.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const signatures = [ 25 | [ 'blockadblock' ], 26 | [ 'babasbm' ], 27 | [ /getItem\('babn'\)/ ], 28 | [ 29 | 'getElementById', 30 | 'String.fromCharCode', 31 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 32 | 'charAt', 33 | 'DOMContentLoaded', 34 | 'AdBlock', 35 | 'addEventListener', 36 | 'doScroll', 37 | 'fromCharCode', 38 | '<<2|r>>4', 39 | 'sessionStorage', 40 | 'clientWidth', 41 | 'localStorage', 42 | 'Math', 43 | 'random' 44 | ], 45 | ]; 46 | const check = function(s) { 47 | for ( let i = 0; i < signatures.length; i++ ) { 48 | const tokens = signatures[i]; 49 | let match = 0; 50 | for ( let j = 0; j < tokens.length; j++ ) { 51 | const token = tokens[j]; 52 | const pos = token instanceof RegExp 53 | ? s.search(token) 54 | : s.indexOf(token); 55 | if ( pos !== -1 ) { match += 1; } 56 | } 57 | if ( (match / tokens.length) >= 0.8 ) { return true; } 58 | } 59 | return false; 60 | }; 61 | window.eval = new Proxy(window.eval, { // jshint ignore: line 62 | apply: function(target, thisArg, args) { 63 | const a = args[0]; 64 | if ( typeof a !== 'string' || !check(a) ) { 65 | return target.apply(thisArg, args); 66 | } 67 | if ( document.body ) { 68 | document.body.style.removeProperty('visibility'); 69 | } 70 | let el = document.getElementById('babasbmsgx'); 71 | if ( el ) { 72 | el.parentNode.removeChild(el); 73 | } 74 | } 75 | }); 76 | window.setTimeout = new Proxy(window.setTimeout, { 77 | apply: function(target, thisArg, args) { 78 | const a = args[0]; 79 | if ( 80 | typeof a !== 'string' || 81 | /\.bab_elementid.$/.test(a) === false 82 | ) { 83 | return target.apply(thisArg, args); 84 | } 85 | } 86 | }); 87 | })(); 88 | -------------------------------------------------------------------------------- /5.0-/noeval-silent.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.eval = new Proxy(window.eval, { // jshint ignore: line 25 | apply: function() { 26 | } 27 | }); 28 | })(); 29 | -------------------------------------------------------------------------------- /5.0-/noeval.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const log = console.log.bind(console); 25 | window.eval = new Proxy(window.eval, { // jshint ignore: line 26 | apply: function(target, thisArg, args) { 27 | log(`Document tried to eval... ${args[0]}\n`); 28 | } 29 | }); 30 | })(); 31 | -------------------------------------------------------------------------------- /5.0-/nofab.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const Fab = function() {}; 27 | Fab.prototype.check = noopfn; 28 | Fab.prototype.clearEvent = noopfn; 29 | Fab.prototype.emitEvent = noopfn; 30 | Fab.prototype.on = function(a, b) { 31 | if ( !a ) { b(); } 32 | return this; 33 | }; 34 | Fab.prototype.onDetected = function() { 35 | return this; 36 | }; 37 | Fab.prototype.onNotDetected = function(a) { 38 | a(); 39 | return this; 40 | }; 41 | Fab.prototype.setOption = noopfn; 42 | const fab = new Fab(), 43 | getSetFab = { 44 | get: function() { return Fab; }, 45 | set: function() {} 46 | }, 47 | getsetfab = { 48 | get: function() { return fab; }, 49 | set: function() {} 50 | }; 51 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; } 52 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); } 53 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; } 54 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); } 55 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; } 56 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); } 57 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; } 58 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); } 59 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; } 60 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); } 61 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; } 62 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); } 63 | })(); 64 | -------------------------------------------------------------------------------- /5.0-/noop-0.1s.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-0.1s.mp3 -------------------------------------------------------------------------------- /5.0-/noop-0.1s.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-0.1s.mp4 -------------------------------------------------------------------------------- /5.0-/noop-1s.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-1s.mp4 -------------------------------------------------------------------------------- /5.0-/noop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /5.0-/noop.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | })(); 4 | -------------------------------------------------------------------------------- /5.0-/noop.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /5.0-/nowebrtc.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var rtcName = window.RTCPeerConnection ? 'RTCPeerConnection' : ( 3 | window.webkitRTCPeerConnection ? 'webkitRTCPeerConnection' : '' 4 | ); 5 | if ( rtcName === '' ) { return; } 6 | var log = console.log.bind(console); 7 | var pc = function(cfg) { 8 | log('Document tried to create an RTCPeerConnection: %o', cfg); 9 | }; 10 | var noop = function() { 11 | ; 12 | }; 13 | pc.prototype = { 14 | close: noop, 15 | createDataChannel: noop, 16 | createOffer: noop, 17 | setRemoteDescription: noop 18 | }; 19 | var z = window[rtcName]; 20 | window[rtcName] = pc.bind(window); 21 | if ( z.prototype ) { 22 | z.prototype.createDataChannel = function(a, b) { 23 | return { 24 | close: function() {}, 25 | send: function() {} 26 | }; 27 | }.bind(null); 28 | } 29 | })(); -------------------------------------------------------------------------------- /5.0-/outbrain-widget.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const obr = {}; 27 | const methods = [ 28 | 'callClick', 'callLoadMore', 'callRecs', 'callUserZapping', 29 | 'callWhatIs', 'cancelRecommendation', 'cancelRecs', 'closeCard', 30 | 'closeModal', 'closeTbx', 'errorInjectionHandler', 'getCountOfRecs', 31 | 'getStat', 'imageError', 'manualVideoClicked', 'onOdbReturn', 32 | 'onVideoClick', 'pagerLoad', 'recClicked', 'refreshSpecificWidget', 33 | 'refreshWidget', 'reloadWidget', 'researchWidget', 'returnedError', 34 | 'returnedHtmlData', 'returnedIrdData', 'returnedJsonData', 'scrollLoad', 35 | 'showDescription', 'showRecInIframe', 'userZappingMessage', 'zappingFormAction' 36 | ]; 37 | obr.extern = { 38 | video: { 39 | getVideoRecs: noopfn, 40 | videoClicked: noopfn 41 | } 42 | }; 43 | methods.forEach(function(a) { 44 | obr.extern[a] = noopfn; 45 | }); 46 | window.OBR = window.OBR || obr; 47 | })(); 48 | -------------------------------------------------------------------------------- /5.0-/popads-dummy.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | delete window.PopAds; 25 | delete window.popns; 26 | Object.defineProperties(window, { 27 | PopAds: { value: {} }, 28 | popns: { value: {} } 29 | }); 30 | })(); 31 | -------------------------------------------------------------------------------- /5.0-/popads.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const magic = String.fromCharCode(Date.now() % 26 + 97) + 25 | Math.floor(Math.random() * 982451653 + 982451653).toString(36); 26 | const oe = window.onerror; 27 | window.onerror = function(msg, src, line, col, error) { 28 | if ( typeof msg === 'string' && msg.indexOf(magic) !== -1 ) { return true; } 29 | if ( oe instanceof Function ) { 30 | return oe(msg, src, line, col, error); 31 | } 32 | }.bind(); 33 | const throwMagic = function() { throw magic; }; 34 | delete window.PopAds; 35 | delete window.popns; 36 | Object.defineProperties(window, { 37 | PopAds: { set: throwMagic }, 38 | popns: { set: throwMagic } 39 | }); 40 | })(); 41 | -------------------------------------------------------------------------------- /5.0-/pornhub.js: -------------------------------------------------------------------------------- 1 | window.opera = true; 2 | Object.defineProperty(window,'tj_ads',{get:function(){return[]}}); 3 | Object.defineProperty(Object.prototype, 'loadPopUnder', { get: function(){ return function() {}; }, set: function(){ return function() {}; }}); 4 | Object.defineProperty(window, 'UAParser', { get: function() { return function() { }; } }); -------------------------------------------------------------------------------- /5.0-/renren.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | var url = $request.url; 3 | 4 | if (url.indexOf('/ad/getAll') != -1) { 5 | var obj = JSON.parse(body); 6 | obj.data.adList = []; 7 | body = JSON.stringify(obj); 8 | } else if (url.indexOf('/user/privilege/list') != -1) { 9 | var obj = JSON.parse(body); 10 | obj.data = [{ 11 | "action": "play", 12 | "effectObject": "video", 13 | "id": 1, 14 | "function": "originalPainting", 15 | "func": "originalPainting", 16 | "endTime": 1667341767582, 17 | "description": "解锁原画", 18 | "icon": "jiesuoyuanhua" 19 | }, { 20 | "action": "play", 21 | "effectObject": "video", 22 | "id": 4, 23 | "function": "noLimit", 24 | "func": "noLimit", 25 | "endTime": 1567341767582, 26 | "description": "看剧无限制", 27 | "icon": "kanjuwuxianzhi" 28 | }, { 29 | "action": "play", 30 | "effectObject": "growth", 31 | "id": 37, 32 | "function": "0.4", 33 | "func": "0.4", 34 | "endTime": 1667341767582, 35 | "description": "看剧经验+40%", 36 | "icon": "jingyanzhijiacheng" 37 | }, { 38 | "action": "send", 39 | "effectObject": "danmu", 40 | "id": 43, 41 | "function": "superBarrageBlue", 42 | "func": "superBarrageBlue", 43 | "endTime": 1667341767582, 44 | "description": "超级弹幕", 45 | "icon": "chaojidanmu" 46 | }, { 47 | "action": "play", 48 | "effectObject": "video", 49 | "id": 23, 50 | "function": "noAd", 51 | "func": "noAd", 52 | "endTime": 1667341767582, 53 | "description": "看剧无广告", 54 | "icon": "kanjuwuguanggao" 55 | }]; 56 | 57 | }else if(url.indexOf('/rrtv-video/v4plus/season/detail') != -1){ 58 | var obj = JSON.parse(body); 59 | 60 | obj.data['season']['feeMode'] = 'restriction'; 61 | } 62 | 63 | 64 | body = JSON.stringify(obj); 65 | 66 | $done({ 67 | body 68 | }); 69 | -------------------------------------------------------------------------------- /5.0-/scorecardresearch_beacon.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.COMSCORE = { 25 | purge: function() { 26 | window._comscore = []; 27 | }, 28 | beacon: function() { 29 | } 30 | }; 31 | })(); 32 | -------------------------------------------------------------------------------- /5.0-/window.open-defuser.js: -------------------------------------------------------------------------------- 1 | //window.open-defuser.js application/javascript 2 | (function() { 3 | var wo = window.open, 4 | target = '{{1}}', 5 | needle = '{{2}}'; 6 | if ( target === '' || target === '{{1}}' ) { 7 | target = false; 8 | } else { 9 | target = !(+target); 10 | } 11 | if ( needle === '' || needle === '{{2}}' ) { 12 | needle = '.?'; 13 | } else if ( /^\/.+\/$/.test(needle) ) { 14 | needle = needle.slice(1,-1); 15 | } else { 16 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 17 | } 18 | needle = new RegExp(needle); 19 | window.open = (function(a) { 20 | if ( needle.test(a) === target ) { 21 | return wo.apply(window, arguments); 22 | } 23 | }).bind(window); 24 | })(); 25 | -------------------------------------------------------------------------------- /AD/1x1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/1x1.gif -------------------------------------------------------------------------------- /AD/2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/2x2.png -------------------------------------------------------------------------------- /AD/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/32x32.png -------------------------------------------------------------------------------- /AD/3x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/3x2.png -------------------------------------------------------------------------------- /AD/YouTube.js: -------------------------------------------------------------------------------- 1 | if ($request.url.indexOf("&oad") != -1) { 2 | $done({ response: {body: ""} }); 3 | } else if ($request.url.indexOf("&ctier") != -1) { 4 | let url = $request.url.replace(/ctier=[A-Z]/, "ctier=A"); 5 | $done({ response: { status: 302, headers: { Location: url } } }); 6 | } else { 7 | $done({}) 8 | } 9 | -------------------------------------------------------------------------------- /AD/addthis_widget.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.addthis = { 27 | addEventListener: noopfn, 28 | button: noopfn, 29 | init: noopfn, 30 | layers: noopfn, 31 | ready: noopfn, 32 | sharecounters: { 33 | getShareCounts: noopfn 34 | }, 35 | toolbox: noopfn, 36 | update: noopfn 37 | }; 38 | })(); 39 | -------------------------------------------------------------------------------- /AD/amazon_ads.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | if ( amznads ) { 25 | return; 26 | } 27 | var w = window; 28 | var noopfn = function() { 29 | ; 30 | }.bind(); 31 | var amznads = { 32 | appendScriptTag: noopfn, 33 | appendTargetingToAdServerUrl: noopfn, 34 | appendTargetingToQueryString: noopfn, 35 | clearTargetingFromGPTAsync: noopfn, 36 | doAllTasks: noopfn, 37 | doGetAdsAsync: noopfn, 38 | doTask: noopfn, 39 | detectIframeAndGetURL: noopfn, 40 | getAds: noopfn, 41 | getAdsAsync: noopfn, 42 | getAdForSlot: noopfn, 43 | getAdsCallback: noopfn, 44 | getDisplayAds: noopfn, 45 | getDisplayAdsAsync: noopfn, 46 | getDisplayAdsCallback: noopfn, 47 | getKeys: noopfn, 48 | getReferrerURL: noopfn, 49 | getScriptSource: noopfn, 50 | getTargeting: noopfn, 51 | getTokens: noopfn, 52 | getValidMilliseconds: noopfn, 53 | getVideoAds: noopfn, 54 | getVideoAdsAsync: noopfn, 55 | getVideoAdsCallback: noopfn, 56 | handleCallBack: noopfn, 57 | hasAds: noopfn, 58 | renderAd: noopfn, 59 | saveAds: noopfn, 60 | setTargeting: noopfn, 61 | setTargetingForGPTAsync: noopfn, 62 | setTargetingForGPTSync: noopfn, 63 | tryGetAdsAsync: noopfn, 64 | updateAds: noopfn 65 | }; 66 | w.amznads = amznads; 67 | w.amzn_ads = w.amzn_ads || noopfn; 68 | w.aax_write = w.aax_write || noopfn; 69 | w.aax_render_ad = w.aax_render_ad || noopfn; 70 | })(); 71 | -------------------------------------------------------------------------------- /AD/ampproject_v0.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const head = document.head; 25 | if ( !head ) { return; } 26 | const style = document.createElement('style'); 27 | style.textContent = [ 28 | 'body {', 29 | ' animation: none !important;', 30 | ' overflow: unset !important;', 31 | '}' 32 | ].join('\n'); 33 | head.appendChild(style); 34 | })(); 35 | -------------------------------------------------------------------------------- /AD/chartbeat.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.pSUPERFLY = { 27 | activity: noopfn, 28 | virtualPage: noopfn 29 | }; 30 | })(); 31 | -------------------------------------------------------------------------------- /AD/disqus_embed.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const p = document.getElementById(window.disqus_container_id || 'disqus_thread'); 25 | if ( p === null ) { return; } 26 | const b = document.createElement('button'); 27 | b.textContent = 'Disqus blocked by uBlock Origin: click to unblock'; 28 | b.type = 'button'; 29 | p.appendChild(b); 30 | const loadDisqus = function(ev) { 31 | b.removeEventListener('click', loadDisqus); 32 | p.removeChild(b); 33 | const script = document.createElement('script'); 34 | script.async = true; 35 | const t = Date.now().toString(); 36 | script.src = '//' + window.disqus_shortname + '.disqus.com/embed.js?_=1457540' + t.slice(-6); 37 | document.body.appendChild(script); 38 | ev.preventDefault(); 39 | ev.stopPropagation(); 40 | }; 41 | b.addEventListener('click', loadDisqus); 42 | })(); 43 | -------------------------------------------------------------------------------- /AD/disqus_forums_embed.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | 21 | Completely experimental: load Disqus on demand only. Purpose is to avoid 22 | connecting to Disqus' servers, unless the user explicitly asks for the 23 | comments to be loaded. 24 | Works with following filters: 25 | ||disqus.com/forums/*embed.js$script,redirect=disqus.com/forums/*embed.js 26 | ||disqus.com/embed.js$script,redirect=disqus.com/embed.js 27 | ||disqus.com/count.js$script 28 | @@||disqus.com/embed.js?_=1457540*$script 29 | If you want a site you regularly visit to always have the comment loaded, 30 | just use an exception static filter. Example for wired.com: 31 | @@||wired.disqus.com/embed.js 32 | 33 | */ 34 | 35 | (function() { 36 | 'use strict'; 37 | const ee = document.getElementsByTagName('script'); 38 | let i = ee.length, src; 39 | while ( i-- ) { 40 | src = ee[i].src || ''; 41 | if ( src === '' ) { 42 | continue; 43 | } 44 | if ( src.lastIndexOf('disqus.com/embed.js') === (src.length - 19) ) { 45 | return; 46 | } 47 | } 48 | const e = document.createElement('script'); 49 | e.async = true; 50 | e.src = '//' + window.disqus_shortname + '.disqus.com/embed.js'; 51 | document.body.appendChild(e); 52 | })(); 53 | -------------------------------------------------------------------------------- /AD/doubleclick_instream_ad_status.js: -------------------------------------------------------------------------------- 1 | window.google_ad_status = 1; 2 | -------------------------------------------------------------------------------- /AD/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/empty -------------------------------------------------------------------------------- /AD/google-analytics_analytics.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | // https://developers.google.com/analytics/devguides/collection/analyticsjs/ 25 | const noopfn = function() { 26 | }; 27 | const noopnullfn = function() { 28 | return null; 29 | }; 30 | // 31 | const Tracker = function() { 32 | }; 33 | const p = Tracker.prototype; 34 | p.get = noopfn; 35 | p.set = noopfn; 36 | p.send = noopfn; 37 | // 38 | const w = window; 39 | const gaName = w.GoogleAnalyticsObject || 'ga'; 40 | const gaQueue = w[gaName]; 41 | const ga = function() { 42 | const len = arguments.length; 43 | if ( len === 0 ) { return; } 44 | const args = Array.from(arguments); 45 | let fn; 46 | let a = args[len-1]; 47 | if ( a instanceof Object && a.hitCallback instanceof Function ) { 48 | fn = a.hitCallback; 49 | } else { 50 | const pos = args.indexOf('hitCallback'); 51 | if ( pos !== -1 && args[pos+1] instanceof Function ) { 52 | fn = args[pos+1]; 53 | } 54 | } 55 | if ( fn instanceof Function === false ) { return; } 56 | try { 57 | fn(); 58 | } catch (ex) { 59 | } 60 | }; 61 | ga.create = function() { 62 | return new Tracker(); 63 | }; 64 | ga.getByName = noopnullfn; 65 | ga.getAll = function() { 66 | return []; 67 | }; 68 | ga.remove = noopfn; 69 | // https://github.com/uBlockOrigin/uAssets/issues/2107 70 | ga.loaded = true; 71 | w[gaName] = ga; 72 | // https://github.com/gorhill/uBlock/issues/3075 73 | const dl = w.dataLayer; 74 | if ( dl instanceof Object && dl.hide instanceof Object && typeof dl.hide.end === 'function' ) { 75 | dl.hide.end(); 76 | } 77 | // empty ga queue 78 | if ( gaQueue instanceof Function && Array.isArray(gaQueue.q) ) { 79 | for ( const entry of gaQueue.q ) { 80 | ga(...entry); 81 | } 82 | } 83 | })(); 84 | -------------------------------------------------------------------------------- /AD/google-analytics_cx_api.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.cxApi = { 27 | chooseVariation: function() { 28 | return 0; 29 | }, 30 | getChosenVariation: noopfn, 31 | setAllowHash: noopfn, 32 | setChosenVariation: noopfn, 33 | setCookiePath: noopfn, 34 | setDomainName: noopfn 35 | }; 36 | })(); 37 | -------------------------------------------------------------------------------- /AD/google-analytics_ga.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | // 27 | const Gaq = function() { 28 | }; 29 | Gaq.prototype.Na = noopfn; 30 | Gaq.prototype.O = noopfn; 31 | Gaq.prototype.Sa = noopfn; 32 | Gaq.prototype.Ta = noopfn; 33 | Gaq.prototype.Va = noopfn; 34 | Gaq.prototype._createAsyncTracker = noopfn; 35 | Gaq.prototype._getAsyncTracker = noopfn; 36 | Gaq.prototype._getPlugin = noopfn; 37 | Gaq.prototype.push = function(a) { 38 | if ( typeof a === 'function' ) { 39 | a(); return; 40 | } 41 | if ( Array.isArray(a) === false ) { 42 | return; 43 | } 44 | // https://twitter.com/catovitch/status/776442930345218048 45 | // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link 46 | if ( a[0] === '_link' && typeof a[1] === 'string' ) { 47 | window.location.assign(a[1]); 48 | } 49 | // https://github.com/gorhill/uBlock/issues/2162 50 | if ( a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function' ) { 51 | a[2](); 52 | } 53 | }; 54 | // 55 | const tracker = (function() { 56 | const out = {}; 57 | const api = [ 58 | '_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic', 59 | '_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic', 60 | '_cookiePathCopy _deleteCustomVar _getName _setAccount', 61 | '_getAccount _getClientInfo _getDetectFlash _getDetectTitle', 62 | '_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion', 63 | '_getVisitorCustomVar _initData _link _linkByPost', 64 | '_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey', 65 | '_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey', 66 | '_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo', 67 | '_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar', 68 | '_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath', 69 | '_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode', 70 | '_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout', 71 | '_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime', 72 | '_trackPageview _trackSocial _trackTiming _trackTrans', 73 | '_visitCode' 74 | ].join(' ').split(/\s+/); 75 | let i = api.length; 76 | while ( i-- ) { 77 | out[api[i]] = noopfn; 78 | } 79 | out._getLinkerUrl = function(a) { 80 | return a; 81 | }; 82 | return out; 83 | })(); 84 | // 85 | const Gat = function() { 86 | }; 87 | Gat.prototype._anonymizeIP = noopfn; 88 | Gat.prototype._createTracker = noopfn; 89 | Gat.prototype._forceSSL = noopfn; 90 | Gat.prototype._getPlugin = noopfn; 91 | Gat.prototype._getTracker = function() { 92 | return tracker; 93 | }; 94 | Gat.prototype._getTrackerByName = function() { 95 | return tracker; 96 | }; 97 | Gat.prototype._getTrackers = noopfn; 98 | Gat.prototype.aa = noopfn; 99 | Gat.prototype.ab = noopfn; 100 | Gat.prototype.hb = noopfn; 101 | Gat.prototype.la = noopfn; 102 | Gat.prototype.oa = noopfn; 103 | Gat.prototype.pa = noopfn; 104 | Gat.prototype.u = noopfn; 105 | const gat = new Gat(); 106 | window._gat = gat; 107 | // 108 | const gaq = new Gaq(); 109 | (function() { 110 | const aa = window._gaq || []; 111 | if ( Array.isArray(aa) ) { 112 | while ( aa[0] ) { 113 | gaq.push(aa.shift()); 114 | } 115 | } 116 | })(); 117 | window._gaq = gaq.qf = gaq; 118 | })(); 119 | -------------------------------------------------------------------------------- /AD/google-analytics_inpage_linkid.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window._gaq = window._gaq || { 25 | push: function() { 26 | } 27 | }; 28 | })(); 29 | -------------------------------------------------------------------------------- /AD/googlesyndication_adsbygoogle.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.adsbygoogle = window.adsbygoogle || { 25 | length: 0, 26 | loaded: true, 27 | push: function Si() { 28 | /* 29 | client = client || google_ad_client || google_ad_client; 30 | slotname = slotname || google_ad_slot; 31 | tag_origin = tag_origin || google_tag_origin 32 | */ 33 | this.length += 1; 34 | } 35 | }; 36 | const phs = document.querySelectorAll('.adsbygoogle'); 37 | const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;'; 38 | for ( let i = 0; i < phs.length; i++ ) { 39 | const fr = document.createElement('iframe'); 40 | const id = `aswift_${(i+1)}`; 41 | if ( document.querySelector(`iframe#${id}`) !== null ) { continue; } 42 | fr.id = id; 43 | fr.style = css; 44 | const cfr = document.createElement('iframe'); 45 | cfr.id = `google_ads_frame${i}`; 46 | fr.appendChild(cfr); 47 | document.body.appendChild(fr); 48 | } 49 | })(); 50 | -------------------------------------------------------------------------------- /AD/googletagmanager_gtm.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const w = window; 27 | w.ga = w.ga || noopfn; 28 | const dl = w.dataLayer; 29 | if ( dl instanceof Object === false ) { return; } 30 | if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) { 31 | dl.hide.end(); 32 | } 33 | if ( typeof dl.push === 'function' ) { 34 | dl.push = function(o) { 35 | if ( 36 | o instanceof Object && 37 | typeof o.eventCallback === 'function' 38 | ) { 39 | setTimeout(o.eventCallback, 1); 40 | } 41 | }; 42 | } 43 | })(); 44 | -------------------------------------------------------------------------------- /AD/googletagservices_gpt.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | // https://developers.google.com/doubleclick-gpt/reference 25 | const noopfn = function() { 26 | }.bind(); 27 | const noopthisfn = function() { 28 | return this; 29 | }; 30 | const noopnullfn = function() { 31 | return null; 32 | }; 33 | const nooparrayfn = function() { 34 | return []; 35 | }; 36 | const noopstrfn = function() { 37 | return ''; 38 | }; 39 | // 40 | const companionAdsService = { 41 | addEventListener: noopthisfn, 42 | enableSyncLoading: noopfn, 43 | setRefreshUnfilledSlots: noopfn 44 | }; 45 | const contentService = { 46 | addEventListener: noopthisfn, 47 | setContent: noopfn 48 | }; 49 | const PassbackSlot = function() { 50 | }; 51 | let p = PassbackSlot.prototype; 52 | p.display = noopfn; 53 | p.get = noopnullfn; 54 | p.set = noopthisfn; 55 | p.setClickUrl = noopthisfn; 56 | p.setTagForChildDirectedTreatment = noopthisfn; 57 | p.setTargeting = noopthisfn; 58 | p.updateTargetingFromMap = noopthisfn; 59 | const pubAdsService = { 60 | addEventListener: noopthisfn, 61 | clear: noopfn, 62 | clearCategoryExclusions: noopthisfn, 63 | clearTagForChildDirectedTreatment: noopthisfn, 64 | clearTargeting: noopthisfn, 65 | collapseEmptyDivs: noopfn, 66 | defineOutOfPagePassback: function() { return new PassbackSlot(); }, 67 | definePassback: function() { return new PassbackSlot(); }, 68 | disableInitialLoad: noopfn, 69 | display: noopfn, 70 | enableAsyncRendering: noopfn, 71 | enableSingleRequest: noopfn, 72 | enableSyncRendering: noopfn, 73 | enableVideoAds: noopfn, 74 | get: noopnullfn, 75 | getAttributeKeys: nooparrayfn, 76 | getTargeting: noopfn, 77 | getTargetingKeys: nooparrayfn, 78 | getSlots: nooparrayfn, 79 | refresh: noopfn, 80 | set: noopthisfn, 81 | setCategoryExclusion: noopthisfn, 82 | setCentering: noopfn, 83 | setCookieOptions: noopthisfn, 84 | setForceSafeFrame: noopthisfn, 85 | setLocation: noopthisfn, 86 | setPublisherProvidedId: noopthisfn, 87 | setRequestNonPersonalizedAds: noopthisfn, 88 | setSafeFrameConfig: noopthisfn, 89 | setTagForChildDirectedTreatment: noopthisfn, 90 | setTargeting: noopthisfn, 91 | setVideoContent: noopthisfn, 92 | updateCorrelator: noopfn 93 | }; 94 | const SizeMappingBuilder = function() { 95 | }; 96 | p = SizeMappingBuilder.prototype; 97 | p.addSize = noopthisfn; 98 | p.build = noopnullfn; 99 | const Slot = function() { 100 | }; 101 | p = Slot.prototype; 102 | p.addService = noopthisfn; 103 | p.clearCategoryExclusions = noopthisfn; 104 | p.clearTargeting = noopthisfn; 105 | p.defineSizeMapping = noopthisfn; 106 | p.get = noopnullfn; 107 | p.getAdUnitPath = nooparrayfn; 108 | p.getAttributeKeys = nooparrayfn; 109 | p.getCategoryExclusions = nooparrayfn; 110 | p.getDomId = noopstrfn; 111 | p.getSlotElementId = noopstrfn; 112 | p.getSlotId = noopthisfn; 113 | p.getTargeting = nooparrayfn; 114 | p.getTargetingKeys = nooparrayfn; 115 | p.set = noopthisfn; 116 | p.setCategoryExclusion = noopthisfn; 117 | p.setClickUrl = noopthisfn; 118 | p.setCollapseEmptyDiv = noopthisfn; 119 | p.setTargeting = noopthisfn; 120 | // 121 | const gpt = window.googletag || {}; 122 | const cmd = gpt.cmd || []; 123 | gpt.apiReady = true; 124 | gpt.cmd = []; 125 | gpt.cmd.push = function(a) { 126 | try { 127 | a(); 128 | } catch (ex) { 129 | } 130 | return 1; 131 | }; 132 | gpt.companionAds = function() { return companionAdsService; }; 133 | gpt.content = function() { return contentService; }; 134 | gpt.defineOutOfPageSlot = function() { return new Slot(); }; 135 | gpt.defineSlot = function() { return new Slot(); }; 136 | gpt.destroySlots = noopfn; 137 | gpt.disablePublisherConsole = noopfn; 138 | gpt.display = noopfn; 139 | gpt.enableServices = noopfn; 140 | gpt.getVersion = noopstrfn; 141 | gpt.pubads = function() { return pubAdsService; }; 142 | gpt.pubadsReady = true; 143 | gpt.setAdIframeTitle = noopfn; 144 | gpt.sizeMapping = function() { return new SizeMappingBuilder(); }; 145 | window.googletag = gpt; 146 | while ( cmd.length !== 0 ) { 147 | gpt.cmd.push(cmd.shift()); 148 | } 149 | })(); 150 | -------------------------------------------------------------------------------- /AD/hd-main.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const l = {}; 25 | const noopfn = function() { 26 | }; 27 | const props = [ 28 | "$j","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Nj","Oc","Pc","Pe", 29 | "Qc","Qe","Rc","Re","Ri","Sc","Tc","Uc","Vc","Wc","Wg","Xc","Xg","Yc","Yd", 30 | "ad","ae","bd","bf","cd","dd","ed","ef","ek","fd","fg","fh","fk","gd","hd", 31 | "ig","ij","jd","kd","ke","ld","md","mi","nd","od","oh","pd","pf","qd","rd", 32 | "sd","td","ud","vd","wd","wg","xd","xh","yd","zd", 33 | "$d","$e","$k","Ae","Af","Aj","Be","Ce","De","Ee","Ek","Eo","Ep","Fe","Fo", 34 | "Ge","Gh","Hk","Ie","Ip","Je","Ke","Kk","Kq","Le","Lh","Lk","Me","Mm","Ne", 35 | "Oe","Pe","Qe","Re","Rp","Se","Te","Ue","Ve","Vp","We","Xd","Xe","Yd","Ye", 36 | "Zd","Ze","Zf","Zk","ae","af","al","be","bf","bg","ce","cp","df","di","ee", 37 | "ef","fe","ff","gf","gm","he","hf","ie","je","jf","ke","kf","kl","le","lf", 38 | "lk","mf","mg","mn","nf","oe","of","pe","pf","pg","qe","qf","re","rf","se", 39 | "sf","te","tf","ti","ue","uf","ve","vf","we","wf","wg","wi","xe","ye","yf", 40 | "yk","yl","ze","zf","zk" 41 | ]; 42 | for ( let i = 0; i < props.length; i++ ) { 43 | l[props[i]] = noopfn; 44 | } 45 | window.L = window.J = l; 46 | })(); 47 | -------------------------------------------------------------------------------- /AD/ligatus_angular-tag.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | self.adProtect = true; 25 | Object.defineProperties(window, { 26 | uabpdl: { value: true }, 27 | uabDetect: { value: true } 28 | }); 29 | })(); 30 | -------------------------------------------------------------------------------- /AD/monkeybroker.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | window.pbjs = { libLoaded: true }; 27 | const mb = window.MonkeyBroker || { 28 | addAttribute: noopfn, 29 | addSlot: function(a) { 30 | this.slots[a.slot] = {}; 31 | }, 32 | defineSlot: noopfn, 33 | fillSlot: noopfn, 34 | go: noopfn, 35 | inventoryConditionalPlacement: noopfn, 36 | registerSizeCallback: noopfn, 37 | registerSlotCallback: noopfn, 38 | slots: {}, 39 | version: '' 40 | }; 41 | mb.regSlotsMap = mb.slots; 42 | window.MonkeyBroker = mb; 43 | })(); 44 | -------------------------------------------------------------------------------- /AD/nano-setInterval-booster.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | // Based on uAssets 3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE 4 | var z = window.setInterval, 5 | needle = '{{1}}', 6 | delay = parseInt('{{2}}', 10), 7 | boost = parseFloat('{{3}}'); 8 | if ( needle === '' || needle === '{{1}}' ) { 9 | needle = '.?'; 10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) { 11 | needle = needle.slice(1, -1); 12 | } else { 13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 14 | } 15 | needle = new RegExp(needle); 16 | if ( isNaN(delay) || !isFinite(delay) ) { 17 | delay = 1000; 18 | } 19 | if ( isNaN(boost) || !isFinite(boost) ) { 20 | boost = 0.05; 21 | } 22 | if ( boost < 0.02 ) { 23 | boost = 0.02; 24 | } 25 | if ( boost > 50 ) { 26 | boost = 50; 27 | } 28 | window.setInterval = function(a, b) { 29 | if ( b === delay && needle.test(a.toString()) ) { 30 | b *= boost; 31 | } 32 | return z.apply(this, arguments); 33 | }.bind(window); 34 | })(); -------------------------------------------------------------------------------- /AD/nano-setTimeout-booster.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | // Based on uAssets 3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE 4 | var z = window.setTimeout, 5 | needle = '{{1}}', 6 | delay = parseInt('{{2}}', 10), 7 | boost = parseFloat('{{3}}'); 8 | if ( needle === '' || needle === '{{1}}' ) { 9 | needle = '.?'; 10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) { 11 | needle = needle.slice(1, -1); 12 | } else { 13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 14 | } 15 | needle = new RegExp(needle); 16 | if ( isNaN(delay) || !isFinite(delay) ) { 17 | delay = 1000; 18 | } 19 | if ( isNaN(boost) || !isFinite(boost) ) { 20 | boost = 0.05; 21 | } 22 | if ( boost < 0.02 ) { 23 | boost = 0.02; 24 | } 25 | if ( boost > 50 ) { 26 | boost = 50; 27 | } 28 | window.setTimeout = function(a, b) { 29 | if ( b === delay && needle.test(a.toString()) ) { 30 | b *= boost; 31 | } 32 | return z.apply(this, arguments); 33 | }.bind(window); 34 | })(); -------------------------------------------------------------------------------- /AD/nobab.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const signatures = [ 25 | [ 'blockadblock' ], 26 | [ 'babasbm' ], 27 | [ /getItem\('babn'\)/ ], 28 | [ 29 | 'getElementById', 30 | 'String.fromCharCode', 31 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 32 | 'charAt', 33 | 'DOMContentLoaded', 34 | 'AdBlock', 35 | 'addEventListener', 36 | 'doScroll', 37 | 'fromCharCode', 38 | '<<2|r>>4', 39 | 'sessionStorage', 40 | 'clientWidth', 41 | 'localStorage', 42 | 'Math', 43 | 'random' 44 | ], 45 | ]; 46 | const check = function(s) { 47 | for ( let i = 0; i < signatures.length; i++ ) { 48 | const tokens = signatures[i]; 49 | let match = 0; 50 | for ( let j = 0; j < tokens.length; j++ ) { 51 | const token = tokens[j]; 52 | const pos = token instanceof RegExp 53 | ? s.search(token) 54 | : s.indexOf(token); 55 | if ( pos !== -1 ) { match += 1; } 56 | } 57 | if ( (match / tokens.length) >= 0.8 ) { return true; } 58 | } 59 | return false; 60 | }; 61 | window.eval = new Proxy(window.eval, { // jshint ignore: line 62 | apply: function(target, thisArg, args) { 63 | const a = args[0]; 64 | if ( typeof a !== 'string' || !check(a) ) { 65 | return target.apply(thisArg, args); 66 | } 67 | if ( document.body ) { 68 | document.body.style.removeProperty('visibility'); 69 | } 70 | let el = document.getElementById('babasbmsgx'); 71 | if ( el ) { 72 | el.parentNode.removeChild(el); 73 | } 74 | } 75 | }); 76 | window.setTimeout = new Proxy(window.setTimeout, { 77 | apply: function(target, thisArg, args) { 78 | const a = args[0]; 79 | if ( 80 | typeof a !== 'string' || 81 | /\.bab_elementid.$/.test(a) === false 82 | ) { 83 | return target.apply(thisArg, args); 84 | } 85 | } 86 | }); 87 | })(); 88 | -------------------------------------------------------------------------------- /AD/noeval-silent.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.eval = new Proxy(window.eval, { // jshint ignore: line 25 | apply: function() { 26 | } 27 | }); 28 | })(); 29 | -------------------------------------------------------------------------------- /AD/noeval.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const log = console.log.bind(console); 25 | window.eval = new Proxy(window.eval, { // jshint ignore: line 26 | apply: function(target, thisArg, args) { 27 | log(`Document tried to eval... ${args[0]}\n`); 28 | } 29 | }); 30 | })(); 31 | -------------------------------------------------------------------------------- /AD/nofab.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const Fab = function() {}; 27 | Fab.prototype.check = noopfn; 28 | Fab.prototype.clearEvent = noopfn; 29 | Fab.prototype.emitEvent = noopfn; 30 | Fab.prototype.on = function(a, b) { 31 | if ( !a ) { b(); } 32 | return this; 33 | }; 34 | Fab.prototype.onDetected = function() { 35 | return this; 36 | }; 37 | Fab.prototype.onNotDetected = function(a) { 38 | a(); 39 | return this; 40 | }; 41 | Fab.prototype.setOption = noopfn; 42 | const fab = new Fab(), 43 | getSetFab = { 44 | get: function() { return Fab; }, 45 | set: function() {} 46 | }, 47 | getsetfab = { 48 | get: function() { return fab; }, 49 | set: function() {} 50 | }; 51 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; } 52 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); } 53 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; } 54 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); } 55 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; } 56 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); } 57 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; } 58 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); } 59 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; } 60 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); } 61 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; } 62 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); } 63 | })(); 64 | -------------------------------------------------------------------------------- /AD/noop-0.1s.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/noop-0.1s.mp3 -------------------------------------------------------------------------------- /AD/noop-1s.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/noop-1s.mp4 -------------------------------------------------------------------------------- /AD/noop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /AD/noop.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | })(); 4 | -------------------------------------------------------------------------------- /AD/noop.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /AD/outbrain-widget.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const noopfn = function() { 25 | }; 26 | const obr = {}; 27 | const methods = [ 28 | 'callClick', 'callLoadMore', 'callRecs', 'callUserZapping', 29 | 'callWhatIs', 'cancelRecommendation', 'cancelRecs', 'closeCard', 30 | 'closeModal', 'closeTbx', 'errorInjectionHandler', 'getCountOfRecs', 31 | 'getStat', 'imageError', 'manualVideoClicked', 'onOdbReturn', 32 | 'onVideoClick', 'pagerLoad', 'recClicked', 'refreshSpecificWidget', 33 | 'refreshWidget', 'reloadWidget', 'researchWidget', 'returnedError', 34 | 'returnedHtmlData', 'returnedIrdData', 'returnedJsonData', 'scrollLoad', 35 | 'showDescription', 'showRecInIframe', 'userZappingMessage', 'zappingFormAction' 36 | ]; 37 | obr.extern = { 38 | video: { 39 | getVideoRecs: noopfn, 40 | videoClicked: noopfn 41 | } 42 | }; 43 | methods.forEach(function(a) { 44 | obr.extern[a] = noopfn; 45 | }); 46 | window.OBR = window.OBR || obr; 47 | })(); 48 | -------------------------------------------------------------------------------- /AD/popads-dummy.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | delete window.PopAds; 25 | delete window.popns; 26 | Object.defineProperties(window, { 27 | PopAds: { value: {} }, 28 | popns: { value: {} } 29 | }); 30 | })(); 31 | -------------------------------------------------------------------------------- /AD/popads.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | const magic = String.fromCharCode(Date.now() % 26 + 97) + 25 | Math.floor(Math.random() * 982451653 + 982451653).toString(36); 26 | const oe = window.onerror; 27 | window.onerror = function(msg, src, line, col, error) { 28 | if ( typeof msg === 'string' && msg.indexOf(magic) !== -1 ) { return true; } 29 | if ( oe instanceof Function ) { 30 | return oe(msg, src, line, col, error); 31 | } 32 | }.bind(); 33 | const throwMagic = function() { throw magic; }; 34 | delete window.PopAds; 35 | delete window.popns; 36 | Object.defineProperties(window, { 37 | PopAds: { set: throwMagic }, 38 | popns: { set: throwMagic } 39 | }); 40 | })(); 41 | -------------------------------------------------------------------------------- /AD/scorecardresearch_beacon.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | window.COMSCORE = { 25 | purge: function() { 26 | window._comscore = []; 27 | }, 28 | beacon: function() { 29 | } 30 | }; 31 | })(); 32 | -------------------------------------------------------------------------------- /AD/window.open-defuser.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | uBlock Origin - a browser extension to block requests. 4 | Copyright (C) 2019-present Raymond Hill 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see {http://www.gnu.org/licenses/}. 18 | 19 | Home: https://github.com/gorhill/uBlock 20 | */ 21 | 22 | (function() { 23 | 'use strict'; 24 | let result = parseInt('{{1}}', 10); 25 | result = isNaN(result) === false && result === 0; 26 | let needle = '{{2}}'; 27 | if ( needle === '' || needle === '{{2}}' ) { 28 | needle = '.?'; 29 | } else if ( /^\/.+\/$/.test(needle) ) { 30 | needle = needle.slice(1,-1); 31 | } else { 32 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 33 | } 34 | needle = new RegExp(needle); 35 | window.open = new Proxy(window.open, { 36 | apply: function(target, thisArg, args) { 37 | const url = args[0]; 38 | if ( needle.test(url) === result ) { 39 | return target.apply(thisArg, args); 40 | } 41 | } 42 | }); 43 | })(); 44 | -------------------------------------------------------------------------------- /CERT/cert_tr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf ca.cer > /dev/null 4 | cp ca.crt ca.cer 5 | md5=`openssl x509 -subject_hash_old -in ca.cer | head -1` 6 | cp ca.cer $md5.0 7 | openssl x509 -text -in ca.cer -out /dev/null >> $md5.0 8 | rm -rf ca.cer 9 | echo "Success" -------------------------------------------------------------------------------- /CSS/sizzle_mini.js: -------------------------------------------------------------------------------- 1 | /*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */ 2 | !function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window); 3 | //# sourceMappingURL=sizzle.min.map -------------------------------------------------------------------------------- /H5-/ad_player.js: -------------------------------------------------------------------------------- 1 | var KoolProxy_defineProperty_adv=function(){var p,q=Object.defineProperty;if("function"==typeof WeakMap)p=WeakMap;else{var r=0,t=function(){this.a=(r+=Math.random()).toString()};t.prototype.set=function(a,b){var d=a[this.a];d&&d[0]===a?d[1]=b:q(a,this.a,{value:[a,b],writable:!0});return this};t.prototype.get=function(a){var b;return(b=a[this.a])&&b[0]===a?b[1]:void 0};t.prototype.has=function(a){var b=a[this.a];return b?b[0]===a:!1};p=t}function u(a){this.b=a;this.h=Object.create(null)}function v(a,b,d,e){this.a=a;this.i=b;this.c=d;this.f=e}function w(){this.g=/^([^\\\.]|\\.)*?\./;this.j=/\\(.)/g;this.a=new p}function x(a,b){var d=b.f;if(d&&!("beforeGet"in d||"beforeSet"in d))return z(d);var e={get:function(){var c=b.f;c&&c.beforeGet&&c.beforeGet.call(this,b.a.b);a:if(c=b.g)c=A(c)?c.value:c.get?c.get.call(this):void 0;else{c=b.a.b;if(b.i in c&&(c=B(c),null!==c)){var d=C.call(c,b.i);c=d?d.call(this):c[b.i];break a}c=void 0}(this===b.a.b||D.call(b.a.b,this))&&E(a,c,b.c);return c},set:function(c){if(this===b.a.b||D.call(b.a.b,this)){b.f&&b.f.beforeSet&&(c=b.f.beforeSet.call(this,c,this));var d=b.g;d&&A(d)&&d.value===c?c=!0:(d=F(b,c,this),G(c)&&(c=H(a,c),I(a,c,b.c)),c=d)}else c=F(b,c,this);return c}};d&&J(d,e,K);return e}function I(a,b,d){for(var e in d.h){var c=d.h[e];if(b.h[e]){var h=a,g=b.h[e],k=c;!k.f||g.f||"undefined"===typeof g.a.b||g.g||(g.g=z(k.f));g.c&&k.c&&g.c!==k.c&&I(h,g.c,k.c)}else{g=h=void 0;k=a;var f=b,l=c.i,m="undefined"!==typeof f.b,y=!1;m&&(g=L(f.b,l))&&!g.configurable&&(y=!0,h=f.b[l]);var n=y?H(k,h):new u(c.c.b);I(k,n,c.c);n=new v(f,l,n,c.f);f.h[l]=n;m&&(n.g=g,m=x(k,n),y?E(k,h,c.c):(q(f.b,l,m),g&&A(g)&&(M(m,g.value,f.b),E(k,g.value,c.c))))}}}function E(a,b,d){G(b)&&(b=H(a,b),I(a,b,d))}function F(a,b,d){var e=a.g;if(!e){e=B(a.a.b);if(null!==e&&(e=N.call(e,a.i)))return e.call(d,b);if(!O(a.a.b))return!1;a.g={value:b,configurable:!0,writable:!0,enumerable:!0};return!0}return M(e,b,d)}function H(a,b){var d=a.a.get(b);d||(d=new u(b),a.a.set(b,d));return d}function A(a){return"undefined"!==typeof a.writable}function J(a,b,d){for(var e=0,c=d.length;e 88) { 18 | inHackcss.C(FloatCssList + AdvCssList + Css_style, 'h'); 19 | document.body.removeChild(test_hackcss) 20 | } else { 21 | document.body.removeChild(test_hackcss) 22 | } 23 | var white_doc_Style = 'display:block!important;max-height:none!important;max-width:none!important;overflow:auto!important;position:relative;left:auto'; 24 | var regexp_true = /ad|hongbao|tuiguang/i; 25 | var regexp_false = /load|head/i; 26 | setTimeout(function(){ 27 | if( (regexp_true.test(document.body.className) && !regexp_false.test(document.body.className)) || (regexp_true.test(document.body.id) && !regexp_false.test(document.body.id)) ) { 28 | document.body.style.cssText += white_doc_Style 29 | } else if ( (regexp_true.test(document.documentElement.className) && !regexp_false.test(document.documentElement.className)) || (regexp_true.test(document.documentElement.id) && !regexp_false.test(document.documentElement.id)) ) { 30 | document.documentElement.style.cssText += white_doc_Style 31 | } 32 | }, 10) 33 | } 34 | }) -------------------------------------------------------------------------------- /KP-/Remove_AD.js: -------------------------------------------------------------------------------- 1 | var KoolProxy_defineProperty = function() { 2 | var p, q = Object.defineProperty; 3 | if ("function" == typeof WeakMap) p = WeakMap; 4 | else { 5 | var r = 0, 6 | t = function() { 7 | this.a = (r += Math.random()).toString() 8 | }; 9 | t.prototype.set = function(a, b) { 10 | var d = a[this.a]; 11 | d && d[0] === a ? d[1] = b : q(a, this.a, { 12 | value: [a, b], 13 | writable: !0 14 | }); 15 | return this 16 | }; 17 | t.prototype.get = function(a) { 18 | var b; 19 | return (b = a[this.a]) && b[0] === a ? b[1] : void 0 20 | }; 21 | t.prototype.has = function(a) { 22 | var b = a[this.a]; 23 | return b ? b[0] === a : !1 24 | }; 25 | p = t 26 | } 27 | 28 | function u(a) { 29 | this.b = a; 30 | this.h = Object.create(null) 31 | } 32 | 33 | function v(a, b, d, e) { 34 | this.a = a; 35 | this.i = b; 36 | this.c = d; 37 | this.f = e 38 | } 39 | 40 | function w() { 41 | this.g = /^([^\\\.]|\\.)*?\./; 42 | this.j = /\\(.)/g; 43 | this.a = new p 44 | } 45 | 46 | function x(a, b) { 47 | var d = b.f; 48 | if (d && !("beforeGet" in d || "beforeSet" in d)) return z(d); 49 | var e = { 50 | get: function() { 51 | var c = b.f; 52 | c && c.beforeGet && c.beforeGet.call(this, b.a.b); 53 | a: if (c = b.g) c = A(c) ? c.value : c.get ? c.get.call(this) : void 0; 54 | else { 55 | c = b.a.b; 56 | if (b.i in c && (c = B(c), null !== c)) { 57 | var d = C.call(c, b.i); 58 | c = d ? d.call(this) : c[b.i]; 59 | break a 60 | } 61 | c = void 0 62 | }(this === b.a.b || D.call(b.a.b, this)) && E(a, c, b.c); 63 | return c 64 | }, 65 | set: function(c) { 66 | if (this === b.a.b || D.call(b.a.b, this)) { 67 | b.f && b.f.beforeSet && (c = b.f.beforeSet.call(this, c, this)); 68 | var d = b.g; 69 | d && A(d) && d.value === c ? c = !0 : (d = F(b, c, this), G(c) && (c = H(a, c), I(a, c, b.c)), c = d) 70 | } else c = F(b, c, this); 71 | return c 72 | } 73 | }; 74 | d && J(d, e, K); 75 | return e 76 | } 77 | 78 | function I(a, b, d) { 79 | for (var e in d.h) { 80 | var c = d.h[e]; 81 | if (b.h[e]) { 82 | var h = a, 83 | g = b.h[e], 84 | k = c; 85 | !k.f || g.f || "undefined" === typeof g.a.b || g.g || (g.g = z(k.f)); 86 | g.c && k.c && g.c !== k.c && I(h, g.c, k.c) 87 | } else { 88 | g = h = void 0; 89 | k = a; 90 | var f = b, 91 | l = c.i, 92 | m = "undefined" !== typeof f.b, 93 | y = !1; 94 | m && (g = L(f.b, l)) && !g.configurable && (y = !0, h = f.b[l]); 95 | var n = y ? H(k, h) : new u(c.c.b); 96 | I(k, n, c.c); 97 | n = new v(f, l, n, c.f); 98 | f.h[l] = n; 99 | m && (n.g = g, m = x(k, n), y ? E(k, h, c.c) : (q(f.b, l, m), g && A(g) && (M(m, g.value, f.b), E(k, g.value, c.c)))) 100 | } 101 | } 102 | } 103 | 104 | function E(a, b, d) { 105 | G(b) && (b = H(a, b), I(a, b, d)) 106 | } 107 | 108 | function F(a, b, d) { 109 | var e = a.g; 110 | if (!e) { 111 | e = B(a.a.b); 112 | if (null !== e && (e = N.call(e, a.i))) return e.call(d, b); 113 | if (!O(a.a.b)) return !1; 114 | a.g = { 115 | value: b, 116 | configurable: !0, 117 | writable: !0, 118 | enumerable: !0 119 | }; 120 | return !0 121 | } 122 | return M(e, b, d) 123 | } 124 | 125 | function H(a, b) { 126 | var d = a.a.get(b); 127 | d || (d = new u(b), a.a.set(b, d)); 128 | return d 129 | } 130 | 131 | function A(a) { 132 | return "undefined" !== typeof a.writable 133 | } 134 | 135 | function J(a, b, d) { 136 | for (var e = 0, c = d.length; e < c; e++) { 137 | var h = d[e]; 138 | h in a && (b[h] = a[h]) 139 | } 140 | } 141 | 142 | function z(a) { 143 | if (a) { 144 | var b = {}; 145 | J(a, b, P); 146 | return b 147 | } 148 | } 149 | 150 | function M(a, b, d) { 151 | if (A(a)) return a.writable ? (a.value = b, !0) : !1; 152 | if (!a.set) return !1; 153 | a.set.call(d, b); 154 | return !0 155 | } 156 | var P = "configurable enumerable value get set writable".split(" "), 157 | K = P.slice(0, 2), 158 | L = Object.getOwnPropertyDescriptor, 159 | O = Object.isExtensible, 160 | B = Object.getPrototypeOf, 161 | D = Object.prototype.isPrototypeOf, 162 | C = Object.prototype.__lookupGetter__ || function(a) { 163 | return (a = Q(this, a)) && a.get ? a.get : void 0 164 | }, 165 | N = Object.prototype.__lookupSetter__ || function(a) { 166 | return (a = Q(this, a)) && a.set ? a.set : void 0 167 | }; 168 | 169 | function Q(a, b) { 170 | if (b in a) { 171 | for (; !w.hasOwnProperty.call(a, b);) a = B(a); 172 | return L(a, b) 173 | } 174 | } 175 | 176 | function G(a) { 177 | var b = typeof a; 178 | return "function" === b || "object" === b && null !== a ? !0 : !1 179 | } 180 | var R; 181 | return function(a, b, d) { 182 | R || (R = new w); 183 | var e = R; 184 | d = d || window; 185 | var c = new u; 186 | a += "."; 187 | var h = c || new u; 188 | for (var g = e.g, k = e.j, f, l, m; a;) { 189 | f = g.exec(a); 190 | if (null === f) throw 1; 191 | f = f[0].length; 192 | l = a.slice(0, f - 1).replace(k, "$1"); 193 | a = a.slice(f); 194 | (f = h.h[l]) ? m = f.c: (m = new u, f = new v(h, l, m), h.h[l] = f); 195 | h = m 196 | } 197 | if (!f) throw 1; 198 | a = f; 199 | a.f = b; 200 | E(e, d, c) 201 | }; 202 | }(); -------------------------------------------------------------------------------- /KP-/YouTube_ skip.js: -------------------------------------------------------------------------------- 1 | var WL_YTASP = true; 2 | 3 | const observer = new MutationObserver((mutations) => { 4 | mutations.forEach((mutation) => { 5 | if (document.contains(document.getElementsByClassName('ytp-ad-skip-button ytp-button')[0])) { 6 | document.getElementsByClassName('ytp-ad-skip-button ytp-button')[0].click(); 7 | } 8 | if (document.contains(document.getElementsByClassName('ytp-ad-overlay-close-button')[0])) { 9 | document.getElementsByClassName('ytp-ad-overlay-close-button')[0].click(); 10 | } 11 | document.getElementsByTagName("video")[0].playbackRate = pbs.value; 12 | }); 13 | }); 14 | const config = {childList:true,subtree:true}; 15 | observer.observe(document.body, config); 16 | -------------------------------------------------------------------------------- /KP-/baidu_ad.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name 百度广告(首尾推广及右侧广告)清理 3 | // @name:en Kill Baidu AD 4 | // @name:zh-TW 百度廣告(首尾推廣及右側廣告)清理 5 | // @namespace hoothin 6 | // @version 0.86 7 | // @description 彻底清理百度搜索(www.baidu.com)结果首尾的推广广告、二次顽固广告与右侧广告,并防止反复 8 | // @description:en Just Kill Baidu AD 9 | // @description:zh-TW 徹底清理百度搜索(www.baidu.com)結果首尾的推廣廣告、二次頑固廣告與右側廣告,並防止反復 10 | // @author hoothin 11 | // @include http*://www.baidu.com/* 12 | // @include http*://m.baidu.com/* 13 | // @grant none 14 | // @run-at document-start 15 | // @license MIT License 16 | // @compatible chrome 测试通过 17 | // @compatible firefox 测试通过 18 | // @compatible opera 未测试 19 | // @compatible safari 未测试 20 | // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=rixixi@sina.com&item_name=Greasy+Fork+donation 21 | // @contributionAmount 1 22 | // ==/UserScript== 23 | 24 | (function() { 25 | 'use strict'; 26 | var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; 27 | var observer = new MutationObserver(function(records){ 28 | clearAD(); 29 | }); 30 | var option = { 31 | 'childList': true, 32 | 'subtree': true 33 | }; 34 | document.onreadystatechange = function(){ 35 | if(document.readyState == "interactive"){ 36 | observer.observe(document.body, option); 37 | } 38 | }; 39 | 40 | function clearAD(){ 41 | var mAds=document.querySelectorAll(".ec_wise_ad,.ec_youxuan_card"),i; 42 | for(i=0;idiv,#content_left>table"); 47 | for(i=0;ispan"); 54 | if(span && span.innerHTML=="广告"){ 55 | item.remove(); 56 | } 57 | [].forEach.call(item.querySelectorAll("a>span"),function(span){ 58 | if(span && (span.innerHTML=="广告" || span.getAttribute("data-tuiguang"))){ 59 | item.remove(); 60 | } 61 | }); 62 | } 63 | } 64 | 65 | var eb = document.querySelectorAll("#content_right>table>tbody>tr>td>div"); 66 | for(i=0;i{clearAD();},2000); 74 | })(); -------------------------------------------------------------------------------- /KP-/disable_qq_beacon.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | // 视频网站有所不同 4 | const Interceptor = { 5 | image: { 6 | anti_createElement() { 7 | document.createElement = new Proxy(document.createElement, { 8 | apply(...args) { 9 | const node = Reflect.apply(...args); 10 | if (args.length === 3 && args[2][0] === "img") 11 | Object.defineProperty(node, "src", { set(v) {} }); 12 | return node; 13 | }, 14 | }); 15 | }, 16 | anti_construct() { 17 | window.Image = new Proxy(window.Image, { 18 | construct(target, args) { 19 | let img = new target(...args); 20 | if (args.length === 2 && args[1] === 1 && args[0] === 1) 21 | Object.defineProperty(img, "src", { set(v) {} }); 22 | return img; 23 | }, 24 | }); 25 | }, 26 | initial() { 27 | this.anti_construct(); 28 | this.anti_createElement(); 29 | }, 30 | }, 31 | object() { 32 | const trap = (v) => { 33 | Object.defineProperties(v.prototype, { 34 | fail: { 35 | value: () => { 36 | throw new Error("fuck tencent"); 37 | }, 38 | }, 39 | action: { 40 | value: () => null, 41 | }, 42 | check: { 43 | value: () => null, 44 | }, 45 | }); 46 | }; 47 | let o = null; 48 | Object.defineProperty(window, "Beacon", { 49 | set(a) { 50 | o = a; 51 | trap(a); 52 | }, 53 | get() { 54 | return o; 55 | }, 56 | }); 57 | }, 58 | anti_interval() { 59 | window.setInterval = new Proxy(window.setInterval, { 60 | apply(...args) { 61 | if (args.length === 3) args[2][1] = 10000000; 62 | Reflect.apply(...args); 63 | }, 64 | }); 65 | }, 66 | network: { 67 | anti_fecth() { 68 | const fetch = window.fetch; 69 | window.fetch = (...args) => 70 | (async (args) => { 71 | const url = args[0]; 72 | const ad_list = ["trace", "beacon"]; 73 | if (ad_list.some((e) => url.includes(e))) 74 | throw new SyntaxError("fuck tencent"); 75 | else return await fetch(...args); 76 | })(args); 77 | }, 78 | anti_xmlHTTP() { 79 | window.XMLHttpRequest = class extends window.XMLHttpRequest { 80 | open(...args) { 81 | const url = args[1]; 82 | const ad_list = ["trace", "beacon"]; 83 | if (ad_list.some((e) => url.includes(e))) 84 | throw new SyntaxError("fuck tencent"); 85 | else return super.open(...args); 86 | } 87 | }; 88 | }, 89 | }, 90 | start() { 91 | this.object(); 92 | this.image.initial(); 93 | if (location.hostname === "v.qq.com") this.network.anti_xmlHTTP(); 94 | else { 95 | this.anti_interval(); 96 | this.network.anti_fecth(); 97 | this.network.anti_xmlHTTP(); 98 | } 99 | }, 100 | }; 101 | Interceptor.start(); 102 | })(); 103 | -------------------------------------------------------------------------------- /KP-/fuck.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/KP-/fuck.ts -------------------------------------------------------------------------------- /KP-/hide_w.js: -------------------------------------------------------------------------------- 1 | //全局白名单 2 | window.$$All_W = ["www.gaoqingkong.com","www.76mao.com","www.rs05.com","www.ckck.vip","gaoqing.la","static.cnbetacdn.com","duomai.com","tiexue.net"]; 3 | 4 | //CSP白名单 5 | window.$$CSP_W = ["hao.centbrowser.cn"]; 6 | 7 | //疑似广告白名单 8 | window.$$RAI_W = ["hao.centbrowser.cn","lanzous.com"]; 9 | 10 | //全局广告白名单 11 | window.$$ADV_W = ["hao.centbrowser.cn","static.cnbetacdn.com","autohome.com.cn"]; 12 | 13 | //阻止document.write加载外部脚本白名单 14 | window.$$WRS_W = ["hao.centbrowser.cn","www.imeiju.cc","duomai.com","51cto.com"]; 15 | 16 | //阻止非同源弹窗白名单 17 | window.$$WWO_W = ["www.76mao.com","hao.centbrowser.cn"]; 18 | 19 | //浮动元素白名单 20 | window.$$Float_W = ["hao.centbrowser.cn"]; -------------------------------------------------------------------------------- /KP-/iqiyi.js: -------------------------------------------------------------------------------- 1 | window.yiclear_onLoad=function(func) { if (window.addEventListener) { window.addEventListener('DOMContentLoaded', func); } }; 2 | yiclear_onLoad(function(){YiClear_defineProperty('QiyiPlayerLoader.manager.players.flashbox.package.ad.adMap',{get:function(){return;}});}) 3 | yiclear_onLoad(function(){var _setinterval=window.setInterval;window.setInterval=function(a,b){var str=a.toString();if(str.indexOf("timerComplete")>0){return _setinterval(a,1)}return _setinterval(a,b)};}); -------------------------------------------------------------------------------- /KP-/null.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/KP-/null.jpg -------------------------------------------------------------------------------- /KP-/sizzle_mini: -------------------------------------------------------------------------------- 1 | /*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */ 2 | !function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window); 3 | //# sourceMappingURL=sizzle.min.map -------------------------------------------------------------------------------- /KP-/skip_video_h5.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @author http://wwww.koolproxy.com 3 | // @match *://*.iqiyi.com/* 4 | // @match *://*.youku.com/* 5 | // @match *://v.qq.com/* 6 | // @grant none 7 | // @description auto skip video ads! 8 | // ==/UserScript== 9 | 10 | (function() { 11 | 'use strict' 12 | let method1 = function () { 13 | window._setTimeout = window.setTimeout 14 | window.setTimeout = function (handler, timeout, ...arg) { 15 | window._setTimeout(handler, timeout / 30, ...arg) 16 | } 17 | } 18 | let method2 = function () { 19 | window._setInterval = window.setInterval 20 | window.setInterval = function (handler, timeout, ...arg) { 21 | window._setInterval(handler, timeout / 30, ...arg) 22 | } 23 | } 24 | let method3 = function () { 25 | window.rate = 0 26 | window.Date.now = ()=>{return new window.Date().getTime() + (window.rate += 10000)} 27 | setInterval(()=>{window.rate = 0}, 600000) 28 | } 29 | let youku = function () { 30 | window.onload = function () { 31 | if (!document.querySelectorAll('video')[1]) { 32 | setInterval(()=>{document.querySelectorAll('video')[1].playbackRate = 16},100) 33 | } else { 34 | method1() 35 | } 36 | } 37 | } 38 | let qq = function () { 39 | setInterval(()=>{ 40 | if (document.querySelectorAll('video')[0].status == 'IDLE') { 41 | setInterval(()=>{ 42 | document.querySelectorAll('video')[2].playbackRate = 16 43 | document.querySelectorAll('video')[3].playbackRate = 16 44 | },100) 45 | } 46 | },100) 47 | } 48 | let host = location.host 49 | switch (host) { 50 | case 'v.youku.com': 51 | youku() 52 | break 53 | case 'v.qq.com' : 54 | qq() 55 | break 56 | case 'www.iqiyi.com' : 57 | method3() 58 | break 59 | default : 60 | break 61 | } 62 | })(); -------------------------------------------------------------------------------- /KP-/test.txt: -------------------------------------------------------------------------------- 1 | it's ok -------------------------------------------------------------------------------- /KP-/youku_skip_ad.js: -------------------------------------------------------------------------------- 1 | var YiClear_defineProperty=function(){var p,q=Object.defineProperty;if("function"==typeof WeakMap)p=WeakMap;else{var r=0,t=function(){this.a=(r+=Math.random()).toString()};t.prototype.set=function(a,b){var d=a[this.a];d&&d[0]===a?d[1]=b:q(a,this.a,{value:[a,b],writable:!0});return this};t.prototype.get=function(a){var b;return(b=a[this.a])&&b[0]===a?b[1]:void 0};t.prototype.has=function(a){var b=a[this.a];return b?b[0]===a:!1};p=t}function u(a){this.b=a;this.h=Object.create(null)}function v(a,b,d,e){this.a=a;this.i=b;this.c=d;this.f=e}function w(){this.g=/^([^\\\.]|\\.)*?\./;this.j=/\\(.)/g;this.a=new p}function x(a,b){var d=b.f;if(d&&!("beforeGet"in d||"beforeSet"in d))return z(d);var e={get:function(){var c=b.f;c&&c.beforeGet&&c.beforeGet.call(this,b.a.b);a:if(c=b.g)c=A(c)?c.value:c.get?c.get.call(this):void 0;else{c=b.a.b;if(b.i in c&&(c=B(c),null!==c)){var d=C.call(c,b.i);c=d?d.call(this):c[b.i];break a}c=void 0}(this===b.a.b||D.call(b.a.b,this))&&E(a,c,b.c);return c},set:function(c){if(this===b.a.b||D.call(b.a.b,this)){b.f&&b.f.beforeSet&&(c=b.f.beforeSet.call(this,c,this));var d=b.g;d&&A(d)&&d.value===c?c=!0:(d=F(b,c,this),G(c)&&(c=H(a,c),I(a,c,b.c)),c=d)}else c=F(b,c,this);return c}};d&&J(d,e,K);return e}function I(a,b,d){for(var e in d.h){var c=d.h[e];if(b.h[e]){var h=a,g=b.h[e],k=c;!k.f||g.f||"undefined"===typeof g.a.b||g.g||(g.g=z(k.f));g.c&&k.c&&g.c!==k.c&&I(h,g.c,k.c)}else{g=h=void 0;k=a;var f=b,l=c.i,m="undefined"!==typeof f.b,y=!1;m&&(g=L(f.b,l))&&!g.configurable&&(y=!0,h=f.b[l]);var n=y?H(k,h):new u(c.c.b);I(k,n,c.c);n=new v(f,l,n,c.f);f.h[l]=n;m&&(n.g=g,m=x(k,n),y?E(k,h,c.c):(q(f.b,l,m),g&&A(g)&&(M(m,g.value,f.b),E(k,g.value,c.c))))}}}function E(a,b,d){G(b)&&(b=H(a,b),I(a,b,d))}function F(a,b,d){var e=a.g;if(!e){e=B(a.a.b);if(null!==e&&(e=N.call(e,a.i)))return e.call(d,b);if(!O(a.a.b))return!1;a.g={value:b,configurable:!0,writable:!0,enumerable:!0};return!0}return M(e,b,d)}function H(a,b){var d=a.a.get(b);d||(d=new u(b),a.a.set(b,d));return d}function A(a){return"undefined"!==typeof a.writable}function J(a,b,d){for(var e=0,c=d.length;e | | | 8 | 9 | ❤❤❤ 10 | 11 | ## koolshare改版固件安装KoolProxy列表 12 | 13 | | 软件中心 | arm380软件中心 | arm384软件中心 | hnd/axhnd软件中心 | 软路由-酷软 | 14 | | :---------: | :----------------------------------------------------------: | :---------------------------------------------: | :----------------------------------------------------------: | :-----------------------------------------------: | 15 | | 项目名称 | [koolshare.github.io](https://github.com/koolshare/koolshare.github.io) | [armsoft](https://github.com/koolshare/armsoft) | [rogsoft](https://github.com/koolshare/rogsoft) | [ledesoft](https://github.com/koolshare/ledesoft) | 16 | | 适用架构 | armv7l | armv7l | armv8(aarch64) | x64 | 17 | | 平台 | arm | arm | hnd/axhnd | by fw867 | 18 | | linux内核 | 2.6.36.4 | 2.6.36.4 | 4.1.27/4.1.51 | 很新 | 19 | | CPU | bcm4708/9 | bcm4708/9 | bcm4906/8 | intel/AMD | 20 | | 固件版本 | koolshare 梅林**380** | koolshare 梅林**384** | koolshare 梅林/官改 | OpenWRT/LEDE | 21 | | 软件中心api | **1.0** 代 | **1.5** 代 | **1.5** 代 | **1.5** 代 | 22 | | 安装包下载地址 | [koolproxy_arm380.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_arm380.tar.gz) | [koolproxy_arm384.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_arm384.tar.gz) | [koolproxy_hnd.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_hnd.tar.gz) [koolproxy_AX32.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_AX32.tar.gz)| [koolproxy_X86_64.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_X86.tar.gz) | 23 | 24 | ### 捐助者名单 25 | 26 | (如果这里还没有你的名字?请发邮件至 wojiaolinmu008@gmail.com 告诉我) 27 | 28 | | 捐助日期 | 捐助者 | 捐助金额 | 29 | | --- | --- | --- | 30 | | 2020-09-04 | *秦 | 50.00 | 31 | | 2020-09-06 | sadog | 66.66 | 32 | | 2020-09-17 | 天堂de隔壁 | 66.60 | 33 | | 2020-09-18 | 聖 | 10.00 | 34 | | 2020-10-22 | *吧 | 10.00 | 35 | | 2020-11-12 | *蓝 | 25.00 | 36 | | 2021-03-13 | *成 | 10.00 | 37 | | 2021-03-22 | *风 | 21.00 | 38 | | 2021-12-31 | *王 | 30.00 | 39 | 40 | 最后,我再次对您致以我最最最最最诚挚的感谢! 41 | 42 | ![](https://user-images.githubusercontent.com/22412567/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif) 43 | ![](https://user-images.githubusercontent.com/22412567/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif) 44 | ![](https://user-images.githubusercontent.com/22412567/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif) 45 | -------------------------------------------------------------------------------- /backup/daily.txt.md5: -------------------------------------------------------------------------------- 1 | e1ae4db6a08905a906cfaa1fb0088419 2 | -------------------------------------------------------------------------------- /backup/koolproxy.txt.md5: -------------------------------------------------------------------------------- 1 | 840fc2c571e69531a52a3af25601b675 2 | -------------------------------------------------------------------------------- /backup/kp.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/backup/kp.dat -------------------------------------------------------------------------------- /backup/kp.dat.md5: -------------------------------------------------------------------------------- 1 | 742d507e87a77825498fc426308b7472 2 | -------------------------------------------------------------------------------- /backup/test.txt: -------------------------------------------------------------------------------- 1 | hello! 2 | -------------------------------------------------------------------------------- /binary/KoolProxy_Readme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/KoolProxy_Readme -------------------------------------------------------------------------------- /binary/KoolProxy_Readme.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/KoolProxy_Readme.docx -------------------------------------------------------------------------------- /binary/install/koolproxy_AX32.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_AX32.tar.gz -------------------------------------------------------------------------------- /binary/install/koolproxy_X86.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_X86.tar.gz -------------------------------------------------------------------------------- /binary/install/koolproxy_arm380.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_arm380.tar.gz -------------------------------------------------------------------------------- /binary/install/koolproxy_arm384.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_arm384.tar.gz -------------------------------------------------------------------------------- /binary/install/koolproxy_hnd.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_hnd.tar.gz -------------------------------------------------------------------------------- /binary/v3.8.5/aarch64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/aarch64 -------------------------------------------------------------------------------- /binary/v3.8.5/arm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/arm -------------------------------------------------------------------------------- /binary/v3.8.5/mips: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/mips -------------------------------------------------------------------------------- /binary/v3.8.5/mipsel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/mipsel -------------------------------------------------------------------------------- /binary/v3.8.5/x86: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/x86 -------------------------------------------------------------------------------- /binary/v3.8.5/x86_64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/x86_64 -------------------------------------------------------------------------------- /daily.txt: -------------------------------------------------------------------------------- 1 | !x ----------------------------------------------------------------------------------------------------------------- 2 | !x -----[KoolProxy 3.8.5] 3 | !x -----Thanks: From lvba Group 4 | !x -----Thanks for help: 5 | !x ----------------------------------------------------------------------------------------------------------------- 6 | -------------------------------------------------------------------------------- /daily.txt.md5: -------------------------------------------------------------------------------- 1 | d525cd338ad0bc932f3eb2bbd85be3ba 2 | -------------------------------------------------------------------------------- /docs/image/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif -------------------------------------------------------------------------------- /docs/image/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/alipay.jpg -------------------------------------------------------------------------------- /docs/image/koolproxy_rules.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/koolproxy_rules.jpg -------------------------------------------------------------------------------- /docs/image/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/wechat.jpg -------------------------------------------------------------------------------- /koolproxy.conf: -------------------------------------------------------------------------------- 1 | address=/govjiangsu.cn/127.0.0.1 2 | -------------------------------------------------------------------------------- /koolproxy.conf.md5: -------------------------------------------------------------------------------- 1 | 9a3a87bf0dcd765463151c92f8e4cd1e 2 | -------------------------------------------------------------------------------- /koolproxy.txt: -------------------------------------------------------------------------------- 1 | !x ----------------------------------------------------------------------------------------------------------------- 2 | !x -----[KoolProxy 3.8.5] 3 | !x -----update[rules]: 2021-04-04 18:30 4 | !x -----update[video]: 2021-04-04 20:00 5 | !x -----Thanks: From lvba Rule Group 6 | !x -----Thanks for help: 7 | !x ----------------------------------------------------------------------------------------------------------------- 8 | !x 30 | !x ----------------------------------------------------------------------------------------------------------------- 31 | !x --------------------------------------------- white rules ------------------------------------------------------- 32 | -------------------------------------------------------------------------------- /koolproxy.txt.md5: -------------------------------------------------------------------------------- 1 | cfce03c649aae7813cf8d7f296df988d 2 | -------------------------------------------------------------------------------- /kp.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/kp.dat -------------------------------------------------------------------------------- /kp.dat.md5: -------------------------------------------------------------------------------- 1 | e068116c27640e3b2f3d0731751f467e 2 | -------------------------------------------------------------------------------- /md5.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf *.md5 >/dev/null 2>&1 4 | 5 | make(){ 6 | [ -f "daily.txt" ] && md5sum daily.txt > daily.txt.md5 7 | [ -f "koolproxy.txt" ] && md5sum koolproxy.txt > koolproxy.txt.md5 8 | [ -f "kp.dat" ] && md5sum kp.dat > kp.dat.md5 9 | } 10 | 11 | make >/dev/null 2>&1 12 | 13 | sed -ri 's/( .*\.txt| .*kp\.dat)//' *.md5 -------------------------------------------------------------------------------- /swf/17173.in.Live.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.in.Live.swf -------------------------------------------------------------------------------- /swf/17173.in.Vod.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.in.Vod.swf -------------------------------------------------------------------------------- /swf/17173.out.Live.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.out.Live.swf -------------------------------------------------------------------------------- /swf/17173.out.Vod.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.out.Vod.swf -------------------------------------------------------------------------------- /swf/17173_in_20150522.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173_in_20150522.swf -------------------------------------------------------------------------------- /swf/17173_out_20150522.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173_out_20150522.swf -------------------------------------------------------------------------------- /swf/iqiyi5.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/iqiyi5.swf -------------------------------------------------------------------------------- /swf/ku6-p.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/ku6-p.swf -------------------------------------------------------------------------------- /swf/ku6.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/ku6.swf -------------------------------------------------------------------------------- /swf/test.txt: -------------------------------------------------------------------------------- 1 | it's ok -------------------------------------------------------------------------------- /tool/Router_Dog.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/Router_Dog.apk -------------------------------------------------------------------------------- /tool/koolproxy_ipset.conf.md: -------------------------------------------------------------------------------- 1 | c10a967e98c24238623226c1b5693200 2 | -------------------------------------------------------------------------------- /tool/koolproxy_ipset_ip.list: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tool/koolproxy_ipset_ip.md: -------------------------------------------------------------------------------- 1 | 68b329da9893e34099c7d8ad5cb9c940 2 | -------------------------------------------------------------------------------- /tool/koolproxy_white_ip_update.list: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tool/koolproxy_white_ip_update.md: -------------------------------------------------------------------------------- 1 | 68b329da9893e34099c7d8ad5cb9c940 2 | -------------------------------------------------------------------------------- /tool/koolproxy_white_update.conf: -------------------------------------------------------------------------------- 1 | #for koolproxy white_domain 2 | ipset=/.122.gov.cn/white_koolproxy 3 | ipset=/.paopao.iqiyi.com/white_koolproxy 4 | ipset=/.pcw-data.video.iqiyi.com/white_koolproxy 5 | ipset=/.itv.ptqy.gitv.tv/white_koolproxy 6 | ipset=/.passport.iqiyi.com/white_koolproxy 7 | -------------------------------------------------------------------------------- /tool/koolproxy_white_update.conf.md: -------------------------------------------------------------------------------- 1 | 113dc9f7eedbaa41c847504080113be4 2 | -------------------------------------------------------------------------------- /tool/node_modules.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/node_modules.tar.gz -------------------------------------------------------------------------------- /tool/packages/node-npm_v12.19.0-1_x86_64.ipk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/packages/node-npm_v12.19.0-1_x86_64.ipk -------------------------------------------------------------------------------- /tool/packages/node_v12.19.0-1_x86_64.ipk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/packages/node_v12.19.0-1_x86_64.ipk -------------------------------------------------------------------------------- /tool/packages/signdog.md5: -------------------------------------------------------------------------------- 1 | 9a9400ef0cc3f5389e13f01d0de982f8 -------------------------------------------------------------------------------- /tool/signdog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/signdog -------------------------------------------------------------------------------- /tool/signdog.md5: -------------------------------------------------------------------------------- 1 | 176fb272aa4055ee05c793918ed12e1f 2 | -------------------------------------------------------------------------------- /tool/upx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/upx -------------------------------------------------------------------------------- /upload_rules.txt: -------------------------------------------------------------------------------- 1 | !!!!!!!!!! This a test page! !!!!!!!!!!!! 2 | |https://www.huya.com/###chatRoom>div.room-gg-chat,.sidebar-banner 3 | |https://a.msstatic.com/huya/main3/widget/roomGgTop/roomGgTop_11d6c.js 4 | |https://www.meijutt.tv/$s@@@ 5 | !威峰论坛已经不用bbs 6 | |https://www.feng.com/forum##.ad-list-item,.ad-aside 7 | !这网站多了一个广告 8 | |https://www.landiannews.com/##.ad 9 | |https://btbtt.biz/##[class="width imgs_1"],[id="wrapper_left_bg"],[id="wrapper_right_bg"] 10 | |https://btbtt.biz/view/image/QT_QT.jpg 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /user.txt: -------------------------------------------------------------------------------- 1 | ! ******************************* koolproxy 自定义过滤语法简表 ******************************* 2 | ! ------------------------ 规则基于adblock规则,并进行了语法部分的扩展 ------------------------ 3 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 4 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 5 | ! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,例如:@@||taobao.com 6 | ! "@@@@" 超级白名单,比白名单符拥有更高的优先级,主要用于放行https网站,例如:@@@@||https://taobao.com 7 | ! ------------------------------------------------------------------------------------------ 8 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 9 | ! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。 10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 11 | ! "$image" 为识别图片变量,搭配规则使用作用于屏蔽图片,例如:||baidu.com/cdn/adv_$image 12 | ! "$script" 为识别脚本变量,搭配规则使用作用于屏蔽脚本,例如:||baidu.com/cdn/adv_$script 13 | ! "$c" 为解除跨域访问,例如:|http://nl-rcd.iqiyi.com/crossdomain.xml$c 14 | ! "$agent" 为限定浏览器过滤的标识头,例如:|http://www.baidu/adv/xxx.jpg$agent=Chrome,~Firefox 15 | ! "$domain" 为指定网站过滤,例如:|http://*/adv/xxx.jpg$domain=~baidu.com|qq.com 16 | ! 注:通配符仅在 url 规则中支持,html 规则中不支持 17 | ! ------------------------------------------------------------------------------------------ 18 | ! "|" 为管线符号,来表示地址的最前端或最末端 19 | ! "||" 为子域通配符,方便匹配主域名下的所有子域 20 | ! 用法及例子如下:(以下等号表示等价于) 21 | ! ||xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 22 | ! ||http://xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 23 | ! ||https://xx.com/ad = https://xx.com/ad* || https://*.xx.com/ad* 24 | ! |xx.com/ad = http://xx.com/ad* 25 | ! |http://xx.com/ad = http://xx.com/ad* 26 | ! |https://xx.com/ad = https://xx.com/ad* 27 | ! ad = http://*ad* 28 | ! http://ad = http://*ad* 29 | ! https://ad = 不支持,需要指定域名,如下例 30 | ! https://xx.com/ad = |https://xx.com/ad = https://xx.com/ad* 31 | ! [同时可以表示两个以及两个以上的域名]如下例子 32 | ! https://xx.ad.com 和 https://xxx.xx.ad.com = ||https://ad.com (注意! 由于https的原因使用要非常谨慎,不可以大范围使用) 33 | ! ------------------------------------------------------------------------------------------ 34 | ! 兼容adblock规则的html规则语法,例如: 35 | ! fulldls.com,torrentzap.com##.tp_reccomend_banner 36 | ! 但是推荐写成以下标准写法: 37 | ! ||fulldls.com##.tp_reccomend_banner 38 | ! ||torrentzap.com##.tp_reccomend_banner 39 | ! 如果一个网站html规则有多条,可以合并为这样: 40 | ! ||torrentzap.com##.tp_reccomend_banner,.ad_top,[class="ad_right"]...... 41 | ! ------------------------------------------------------------------------------------------ 42 | ! 文本替换语法:$s@匹配内容@替换内容@ 43 | ! 文本替换例子:|http://cdn.pcbeta.js.inimc.com/data/cache/common.js?$s@old@new@ 44 | ! 重定向语法:$r@匹配内容@替换内容@ 45 | ! 重定向例子:|http://koolshare.cn$r@http://koolshare.cn/*@http://www.qq.com@ 46 | ! 非标准端口过滤语法:||abc.com:8081/ad.html或者|http://adb.com:8081/ 47 | ! 注:文本替换语法及重定向语法中的匹配内容不仅支持通配符功能,而且额外支持以下功能 48 | ! 支持通配符 * 和 ? 表示单个字符 49 | ! 支持全正则匹配,/正则内容/ 表示应用正则匹配 50 | ! 正则替换:替换内容支持 $1 $2 这样的符号 51 | ! 普通替换:替换内容支持 * 这样的符号,表示把命中的内容复制到替换的内容。(类似 $1 $2,但是 * 号会自动计算数字) 52 | ! ------------------------------------------------------------------------------------------ 53 | ! 未来将逐步添加相关语法,兼容adblock puls的更多语法,敬请期待。 54 | ! ***************************************************************************************** 55 | -------------------------------------------------------------------------------- /video_fuck/blank.m4v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/blank.m4v -------------------------------------------------------------------------------- /video_fuck/fuck.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/fuck.mp4 -------------------------------------------------------------------------------- /video_fuck/fuck_II.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/fuck_II.mp4 -------------------------------------------------------------------------------- /video_fuck/null.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/null.mp3 --------------------------------------------------------------------------------