// ==UserScript== // @name Ban Bad Websites 标记/屏蔽机器翻译 SEO 垃圾网站 // @namespace https://greasyfork.org/zh-CN/scripts/389721-ban-bad-websites // @version 0.1.4 // @description 标记/禁用垃圾网站链接。主要针对机器翻译 Stack overflow 等 SEO 垃圾网站。 // @author Phuker // @match *://*/* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; var option_disable_link = false; var hosts = { '机器翻译爬虫垃圾网站': [ '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', ], '博彩垃圾网站': [ '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', ], '垃圾下载站': [ 'download.csdn.net', ], '垃圾中文技术性网站': [ 'jb51.net', 'blog.csdn.net', ] }; 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 process(link){ for(var type in hosts){ var h = hosts[type]; for(var i = 0; i < h.length; i++){ if(dnsDomainIs(link.hostname, h[i])){ link.setAttribute('title', type); link.style.cursor = 'url(' + cursor_img + '), not-allowed'; link.style['color'] = 'red'; if(option_disable_link){ link.style['pointerEvents'] = 'none'; link.style['textDecoration'] = 'none'; } return } } } } var links = document.getElementsByTagName('a'); for(var i = 0; i < links.length; i++){ process(links[i]); } })();