- // ==UserScript==
- // @name Ban Bad Websites 标记/屏蔽机器翻译 SEO 垃圾网站
- // @namespace https://greasyfork.org/zh-CN/scripts/389721-ban-bad-websites
- // @version 0.4.15
- // @description 标记/禁用垃圾网站链接。主要针对机器翻译 Stack overflow 等 SEO 垃圾网站。
- // @author Phuker
- // @match *://*/*
- // @grant none
- // ==/UserScript==
-
- /*
- Author:
- https://github.com/Phuker/
-
- Project GitHub Repo:
- https://github.com/Phuker/BanBadWebsites
-
- Greasy Fork:
- https://greasyfork.org/zh-CN/scripts/389721
-
- License:
- GNU General Public License v3.0
- */
-
- (function() {
- 'use strict';
-
- // - - - - - - - - - - Start User Config - - - - - - - - - -
-
- // 突出显示目标超链接,改变链接的颜色、装饰线、边框、指针样式等
- var option_highlight_link = true;
-
- // 如果启用突出显示目标超链接,设置文字颜色
- // 示例:'red' '#CC0033' null
- var option_highlight_link_color = '#CC0033';
-
- // 如果启用突出显示目标超链接,设置背景色
- // 由于 CSS 的特性,有可能无法正确设置想要的区域
- // 示例:'red' '#CC0033' null
- var option_highlight_link_background_color = null;
-
- // 如果启用突出显示目标超链接,设置边框
- // 由于 CSS 的特性,有可能无法正确设置想要的区域
- // 示例:'solid 1px #CC0033'
- var option_highlight_link_border = null;
-
- // 如果启用突出显示目标超链接,设置下划线、上划线、贯穿删除线等样式
- // 由于 CSS 的特性,某些情况下无效
- // 示例:'line-through solid #CC0033'
- var option_highlight_text_decoration = null;
-
-
- // 使目标超链接无法点击
- // [不推荐] 垃圾网站有时候还有一定参考价值,必要时可能仍然需要点击访问
- var option_disable_link = false;
-
-
- // 隐藏目标超链接
- // [不推荐] 此脚本不是特定网站的针对性脚本,无法完美删除目标超链接,可能会导致网页显示错乱
- var option_remove_link = false;
-
- // - - - - - - - - - - End User config - - - - - - - - - -
-
- var hosts = {
- '爬虫采集 SEO 机器翻译垃圾网站': [
- 'codeday.me',
- 'code.i-harness.com',
- 'djcxy.com',
- 'voidcc.com',
- 'itranslater.com',
- 'kknews.cc',
- '1r1g.com',
- 'xbuba.com',
- 'voidcn.com',
- 'codenong.com',
- 'helplib.com',
- 'jishuwen.com',
- 'androidcookie.com',
- 'soinside.com',
- 'kbase101.com',
- 'bbsah.com',
- 'cn.computer-clans.com',
- 'uwenku.com',
- 'ojit.com',
- 'stackoverrun.com',
- 'mlog.club',
- 'it-swarm.net',
- 'bullforyou.com',
- 'it1352.com',
- 'itkeyword.com',
- 'kutu66.com',
- 'stackovernet.com',
- 'orcode.com',
- 'qastack.cn',
- 'chubuntu.com',
- 'codebug.vip',
- 'it-swarm.asia',
- 'bugshoot.cn',
- 'stackoom.com',
- 'itdaan.com',
- 'z4q7.com',
- 'slowmotionvideoclips.com',
- 'bayouseo.com',
- '4659855.com',
- 'hotbarebaking.com',
- 'rsfaf.com',
- 'wanmeiyule2.com',
- 'ksa-boy.com',
- 'poolandspapartsmart.com',
- 'reallifetucson.com',
- 'fulucaijing.com',
- 'luxury-condos-miami.com',
- 'zkyshop.com',
- 'thehesedlove.com',
- 'dc120.com.cn',
- 'kaicen.cn',
- 'zhetiaohe.com',
- 'codecocoa.com',
- 'cctsuzhou.cn',
- 'juhc66.cn',
- 'artez.org.cn',
- 'hyhome.com.cn',
- 'bdqxgw.com',
- 'colabug.com',
- 'ohmyrss.com',
- 'ups360.net',
- '3li.cc',
- '723g.com.cn',
- 'xinhexinli.com',
- '585906.com',
- 'baopen.xyz',
- 'jrccn.cn',
- 'africamv.com',
- 'hotbak.net',
- 'pai-hang-bang.com',
- 'lanzhouyangsheng.com',
- '9999ktv.com',
- '52movs.com',
- 'zsyawen.com',
- 'pianshen.com',
- 'zhipanyou.com',
- 'bbsmax.com',
- 'shuzhiduo.com',
- 'codeqq.com',
- 'mamicode.com',
- 'bubuko.com',
- 'feimao777.com',
- 'geek-share.com',
- 'daimajiaoliu.com',
- 'dajiayouxi.com',
- 'gedixinxi.com',
- 'gushidazahui.com',
- 'jiankangjiaoliu.com',
- 'yuerxinde.com',
- 'xuexidushu.com',
- 'dnxxj.com',
- 'tiyujiaoliu.com',
- 'shishangjiaoliu.com',
- 'shehuiwenhua.com',
- 'naozhuanwan.com',
- 'meirongjiaoliu.com',
- 'yulejiaoliu.com',
- 'crifan.com',
- 'oox8.com',
- 'qu02.com',
- 'tongfengqu.com',
- 'wntzx.cn',
- 'dovov.com',
- 'cocoachina.com',
- 'coder.work',
- 'dofe.com.cn',
- '0937car.cn',
- 'ubuntuqa.com',
- 'it-swarm.dev',
- 'codingdict.com',
- 'jingjiamitan.com',
- 'zhezhier.com',
- 'win10xiazai.com',
- 'paradacreativa.es',
- 'thinbug.com',
- 'answer-id.com',
- 'mos86.com',
- 'jeepxie.net',
- 'qqyouyan.com',
- 'baobaoyuer.com',
- 'cnpython.com',
- 'routinepanic.com',
- '4008140202.com',
- 'pythonheidong.com',
- 'bugjia.net',
- 'generacodice.it',
- 'generacodice.com',
- '366service.com',
- 'oomake.com',
- 'itread01.com',
- 'soblog.cc',
- 'shangmayuan.com',
- 'read01.com',
- 'yuanmas.com',
- 'someabcd.com',
- 'mdeditor.tw',
- '1applehealth.com',
- 'movervip.com',
- 'glcopy.com',
- 'howtoip.com',
- 'copyan.com',
- 'shxy888.com',
- 'yiaisan.com',
- ],
- '博彩垃圾网站': [
- 'ceptchina.com',
- 'cwptz.com',
- 'danengtzs.com',
- 'dzim.net',
- 'lygzywl.com',
- 'meihuijj.com',
- 'rongtaihe1879.com',
- 'seaolife.com',
- 'stx160.com',
- 'tiyiba.com',
- 'winenine.com',
- 'xiaoxtea.com',
- 'zjwsrcw.com',
- '58pjy.com',
- '36511cp.com',
- 'sdtasdb.com',
- 'cairoibf.org',
- 'macaodaily.com',
- '52365o.com',
- 'wenliku.com',
- '36545622.com',
- '365888432.com',
- 'chnweiyu.com',
- '2266601.com',
- 'code5.cn',
- 'yangzheng365.com',
- 'nibaihe.cn',
- 'yxwjlrm.cn',
- 'yfkwzpc.cn',
- 'weikuanxi.cn',
- ],
- '垃圾下载站': [
- 'download.csdn.net',
- 'manong5.com',
- ],
- '垃圾中文技术性网站': [
- 'jb51.net',
- 'www.csdn.net',
- 'blog.csdn.net',
- 'yq.aliyun.com',
- ]
- };
-
- var urls = {
- '机器翻译爬虫垃圾网站': [
- // http://www.imooc.com/wenda/detail/581525
- 'https://www.imooc.com/wenda',
- 'https://m.imooc.com/wenda',
-
- 'https://cloud.tencent.com/developer/ask', // https://cloud.tencent.com/developer/ask/69735
- ],
- '垃圾 SEO 网站': [
- 'https://help.aliyun.com/wordpower/',
- ],
- }
-
-
- var cursor_img = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABj1BMVEX4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT////D56oEAAAAg3RSTlMAROOgDAAAAAyg40QARNX/+44LAACO+9VE4/////2QCwD//+Og+////5AK+6AMjv38k44MAAv//wD////8Cv+TCgAA/5MKAAAAAAALkP/8kAsAAAALkP3///2QCwAMjv3/jgyg+/////ug4////+NE1f/7jo77/9VEAETjoAwMoONEAJyONeEAAAABYktHRIRi0FpxAAAAB3RJTUUH4wEJAyMIrljkvAAAAOhJREFUGNNjYGBkYmZhZWNnZ2Pl4OTi5mHg5eMXEBQSFhERFhIV4xeXYJCUkpaRlZNXUJCXk5VRVFJmUFFVU9eQ1dTS0pTVUJfR1mHQ1dPXUNcwMDQ0AFKyRsYMJqZyQCkzc3MzIF9OiJXBQlhe08DM0srK0tpGU17YgoFdRMHW0NyqudnKzt7B0YkdScDZxdXN3YPB08vbB6LF188/IDCIITgkNAxiaHhEZFR0DENsXHwC1FqgSGISQ3JKahrMYeHpGZkMWdk5CKfn5OYx5BcUFhVDPFdSWlZewVBZVV1TC/F+XX1DYxMA6lI04KQBZEYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDEtMDlUMDM6MzU6MDgrMDg6MDDq0TSKAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAxLTA5VDAzOjM1OjA4KzA4OjAwm4yMNgAAAEN0RVh0c29mdHdhcmUAL3Vzci9sb2NhbC9pbWFnZW1hZ2ljay9zaGFyZS9kb2MvSW1hZ2VNYWdpY2stNy8vaW5kZXguaHRtbL21eQoAAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+NU4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTQ2OTc2MTA4Y0VIZwAAABF0RVh0VGh1bWI6OlNpemUANjcyN0L99mrAAAAAYnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vaG9tZS93d3dyb290L25ld3NpdGUvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExNy8xMTc1NzQ5LnBuZ54B8P8AAAAASUVORK5CYII=';
-
- // modified from PAC
- function dnsDomainIs(host, domain) {
- if(domain[0] === '.'){
- domain = domain.substr(1);
- }
- var idx = host.length - domain.length;
- return (host === domain) || (idx > 0 && host.lastIndexOf('.' + domain) == idx - 1);
- }
-
- function ban_link(link, type){
- if(link.hasAttribute('phuker-banned')){
- return
- } else {
- link.setAttribute('phuker-banned', 'yes');
- console.log('Ban Bad Website: ' + link.href + ' - ' + type);
- }
-
- if(option_highlight_link){
- link.setAttribute('title', type);
- link.style.cursor = 'url(' + cursor_img + '), not-allowed';
- if(option_highlight_link_color){
- link.style['color'] = option_highlight_link_color;
- }
- if(option_highlight_link_background_color){
- link.style['background-color'] = option_highlight_link_background_color;
- }
- if(option_highlight_link_border){
- link.style['border'] = option_highlight_link_border;
- }
- if(option_highlight_text_decoration){
- link.style['textDecoration'] = option_highlight_text_decoration;
- }
- }
-
- if(option_disable_link){
- link.style['pointerEvents'] = 'none';
- if(!option_highlight_text_decoration){
- link.style['textDecoration'] = 'none';
- }
- }
-
- if(option_remove_link){
- link.style['display'] = 'none';
- }
- }
-
- function process(link){
- for(let type in hosts){
- var h = hosts[type];
- for(let i = 0; i < h.length; i++){
- if(dnsDomainIs(link.hostname, h[i])){
- ban_link(link, type)
- return
- }
- }
- }
- for(let type in urls){
- var u = urls[type];
- for(let i = 0; i < u.length; i++){
- if(link.href.startsWith(u[i])){
- ban_link(link, type)
- return
- }
- }
- }
- }
-
- function ban_bad_websites(){
- var links = document.getElementsByTagName('a');
- for(var i = 0; i < links.length; i++){
- let link = links[i];
- if(!link.hasAttribute('phuker-banned')){
- process(link);
- }
- }
- }
- window.addEventListener('load', ban_bad_websites);
- setTimeout(ban_bad_websites, 3 * 1000);
- setTimeout(ban_bad_websites, 10 * 1000);
- })();