// ==UserScript== // @name 自动删除贴吧传销广告 // @description 打开担任大吧或者小吧的贴吧的看帖页面后自动扫描帖子,删除贴吧广告帖子和楼层 // @include http://tieba.baidu.com/f?* // @include http://tieba.baidu.com/p/* // @version 0.1 // @author yechenyin // @namespace https://greasyfork.org/users/3586-yechenyin // @require https://code.jquery.com/jquery-1.11.2.min.js // @grant GM_setClipboard // @grant GM_setValue // @grant GM_getValue // @downloadURL none // ==/UserScript== settings = { 'scan_threads': 20, 'scan_interval_seconds':60, 'scan_floors':20, 'below_level':4, 'block_rules':'@高清网盘看头像', 'block_users': '我装疯岁', 'block_signs': 'http://imgsrc.baidu.com/forum/w=580/sign=04d3cea28ab1cb133e693c1bed5556da/e3a430d12f2eb938ab2bdfbfd2628535e4dd6ff8.jpg?v=tbs'+'\n'+ 'http://imgsrc.baidu.com/forum/w=580/sign=c657712f044f78f0800b9afb49300a83/2c7a4b36acaf2edd9e76a6928a1001e9380193bd.jpg?v=tbs'+'\n'+ 'http://imgsrc.baidu.com/forum/pic/item/889866c379310a550e1704aeb04543a9832610ec.jpg?v=tbs' }; for (var prop in settings) { if (!get(prop)) set(prop, settings[prop]); } jQuery.fn.loaded = function(action) { var target = this.selector; var check = setInterval(function () { if ($(target).length > 0) { console.log($(target).length + ' ' + target + " is loaded"); clearInterval(check); action(); } }, 200); }; $.fn.update = function () { $(this).load(location.href + ' ' + this.selector + '>*'); }; // String.prototype.match = function (regexp) { // if (typeof regexp == 'string') // regexp = [regexp]; // }; String.prototype.check = function (regexp) { if (typeof regexp == 'string') regexp = [regexp]; if (regexp && regexp instanceof Array && regexp.length>0){ var re; for (var i = 0; i < regexp.length; i++) { if (/^\/.*\/$/.test(regexp)) { re = regexp[i].substring(1, regexp[i].length-1); } else { re = regexp[i].replace(/[\.|\\|\[|\{|\(|\)|\^|\$|\||\?|\+]/g, '\\$&').replace(/\*/g, '.*'); } //console.log(new RegExp(re)); if ((new RegExp(re)).test(this)) return true; } return false; } else if (regexp instanceof RegExp) { return regexp.test(this); } }; function count() { var i = 0; (function () { console.log(i); i++; })(); } function loadData(href, selector, attr, callback) { if (arguments.length == 2 && typeof arguments[1] === 'function') { arguments[1](response); return; } if (arguments.length == 3) { attr = ''; callback = arguments[2]; } $.get(href, function (response) { var data = []; if (typeof selector == 'string') { for (var k = 0; k < $(response).find(selector).length; k++) { var element = $(response).find(selector).eq(k); if (attr === 'text') data.push(element.text()); else if (attr && element.attr(attr)) data.push(element.attr(attr)); else data.push(element[0].outerHtml); } } else if (selector instanceof RegExp) { if (selector.exec(response)[1]) data.push(selector.exec(response)[1]); else data.push(selector.exec(response)[0]); } if (selector instanceof Array){ for (var i = 0; i < selector.length; i++) { if (selector[i] instanceof RegExp) { var matched; if (elector[i].exec(response)[1]) matched = selector[i].exec(response)[1]; else matched = selector[i].exec(response)[0]; if (data instanceof Array && attr instanceof Array) data = {}; if (data instanceof Object) data.attr = matched; else data.push(matched); } else for (var j = 0; j < $(response).find(selector).length; j++) { var element = $(response).find(selector[i]).eq(j); if (attr === 'text') data.push(element.text()); else if (attr && element.attr(attr)) data.push(element.attr(attr)); else data.push(element[0].outerHtml); } } } if (data.length === 1) callback(data[0]); else callback(data); }); } if (localStorage.running_state === undefined || !localStorage.running_state) localStorage.running_state = 'running'; $(window).on('beforeunload', function () { localStorage.running_state = ''; }); function switch_running() { if (typeof stop_scan !== 'undefined' && stop_scan) stop_scan = false; else stop_scan = true; } if (!location.href.indexOf("http://tieba.baidu.com/f?") && localStorage.running_state) { $('.u_setting ul').loaded(function () { $('.u_setting ul').prepend($('
  • ').append($('', {text:'删除设置', css:{cursor:'pointer'}, click:function() { var setting = $('
    ', {css:{padding:'5px 16px', background:'#fff'}}); setting.append($('
    ', {text:'×', css:{width:'20px', height:'20px', color:'#999', 'font-size':'20px', float:'right', cursor:'pointer', margin:'-4px -15px 0 0'}, click:function() { $('.delete_setting').remove(); }})); setting.append($('
    ', {text:'扫描设置', css:{color:'#bbb', 'margin':'4px 0 0px'}})); setting.append($('', {text:'每次扫描'})); setting.append($('', {name:'scan_threads', type:'text', css:{width:'30px', height:'12px', margin:'0 3px'}})); setting.append($('', {text:'个帖子'})); setting.append($('
    ', {css:{'margin':'2px'}})); setting.append($('', {text:'每次扫描间隔'})); setting.append($('', {name:'scan_interval_seconds', type:'text', css:{width:'30px', height:'12px', margin:'0 3px'}})); setting.append($('', {text:'秒'})); setting.append($('
    ', {css:{'margin':'2px'}})); setting.append($('', {text:'每个帖子扫描'})); setting.append($('', {name:'scan_floors', type:'text', css:{width:'30px', height:'12px', margin:'0 3px'}})); setting.append($('', {text:'楼'})); setting.append($('
    ', {text:'广告自动删除设置', css:{color:'#bbb', 'margin':'12px 0 0px'}})); setting.append($('', {text:'仅扫描小于等于等级'})); setting.append($('', {name:'below_level', type:'text', css:{width:'20px', height:'12px', margin:'0 3px'}})); setting.append($('', {text:'以下的用户'})); setting.append($('
    ', {css:{'margin':'4px'}})); setting.append($('', {text:'广告包含的关键字'})); setting.append($('', {text:'(每个关键字使用空格隔开,中间可以用*表示任意长度文字。另外可以使用以/开头和结尾的正则表达式)', css:{color:'#999'}})); setting.append($('