DC - AntiSpam

Kick all Spaming ad.

当前为 2015-01-27 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        DC - AntiSpam
// @author		Ladoria
// @namespace   InGame
// @match		http://www.dreadcast.net/Main
// @require     http://code.jquery.com/jquery-latest.min.js
// @version     1.10
// @grant       none
// @description Kick all Spaming ad.
// ==/UserScript==

var activate = true;
var hardKick = true; //kick all ad form the same spam
var allUserKick = false; //kick all ad form all spam
var count = 0;
var delay = 3; //minutes
delay = delay * 60 * 1000;

jQuery.noConflict();

$(document).ready( function() {
	function KickThoseShittyFuckingBrainlessAnonymousStupidities() {
		//console.log('kicking...');
		
		count = 0;
		var ad = $('.petites_annonces tr');
		
		var previousAd = ad.eq(0);
		
		for(var i = 1; i < ad.length; i++) {
			//console.log('scan : ' + i);
			
			if(true == allUserKick ||get_name(ad.eq(i)) == get_name(previousAd)) {
				//console.log('same name : ' + get_name(ad.eq(i)));
				
				if(get_title(ad.eq(i)) == get_title(previousAd)) {
					 //console.log('same title : ' + get_title(ad.eq(i)));
					 
					if(to_date(get_date(ad)).getTime() >= to_date(get_date(previousAd)).getTime() - delay) {
						hide_ad(ad.eq(i));
						
						if(true == hardKick)
							hide_ad(previousAd);
					}
					
					//console.log('insuffisant delay : ' + (to_date(get_date(ad)).getTime() - to_date(get_date(previousAd)).getTime()));
				}
			}
			
			previousAd = ad.eq(i);
		}
		
		$('#AntiSpam_count').html(count);
	}
	
	function get_name(ad) {
		return ad.children('td').first().html();
	}
	
	function get_title(ad) {
		return ad.children('td').eq(1).children('span').html();
	}
	
	function get_date(ad) {
		return ad.children('td').eq(2).html();
	}
	
	function to_date(text_date) {
		var day = text_date.substring(0,2);
		var month = text_date.substring(3,5);
		var year = text_date.substring(6,10);
		var hour = text_date.substring(11,13);
		var minute = text_date.substring(14,16);
		
		return new Date(year,month,day,hour,minute,0,0);
	}
	
	function hide_ad(ad) {
		ad.hide();
		ad.addClass('AntiSpam');		
		count++;
	}
	
	function show_all() {
		$('.petites_annonces tr').each( function() {
			$(this).show();
		});
	}
	
	$(document).on('click', '#AntiSpam_allUserKick', function() {
		//console.log('AntiSpam_allUserKick');
	
		allUserKick = !allUserKick;
		
		if(true == allUserKick)
			$(this).html('è_é');
		else
			$(this).html('é_è');
		
		if(true == activate)
			KickThoseShittyFuckingBrainlessAnonymousStupidities();
	});
	
	$(document).on('click', '#AntiSpam_activate', function() {
		//console.log('AntiSpam_activate');
		
		activate = !activate;
		
		if(true == activate) {
			KickThoseShittyFuckingBrainlessAnonymousStupidities();
			$(this).html('ON');
		}
		else {
			show_all();
			$(this).html('OFF');
		}
	});
	
	$(document).ajaxComplete( function(a,b,c) {
		if(/ItemAITL\/Annonce\/Find/.test(c.url)) {
			if(0 == $('#AntiSpam').length) {
				$('.petites_annonces .titre').append('<span id="AntiSpam">&nbsp;-&nbsp;LadoSpam&trade;&nbsp;&nbsp;<span id="AntiSpam_activate" class="btnTxt" title="Activer/Désactiver">ON</span> | <span id="AntiSpam_allUserKick" class="btnTxt" title="Montrer ou non de la pitié">é_è</span> | > <span id="AntiSpam_count" title="SPAMs détectés">0</span> <</span>');
			}
			
			KickThoseShittyFuckingBrainlessAnonymousStupidities();
		}
	});
	
	$('head').append('<style>#AntiSpam {font-size : 10px; text-transform: none;}.AntiSpam {color: red};</style>');
});
/*
<span id="AntiSpam">&nbsp;-&nbsp;LadoSpam&trade;&nbsp;&nbsp;
	<span id="AntiSpam_activate" class="btnTxt" title="Activer/Désactiver">ON</span>
	 | 
	<span id="AntiSpam_hardKick" class="btnTxt" title="Montrer ou non de la pitié">è_é</span>
	 | 
	<span id="AntiSpam_count" title="SPAMs détectés">0</span>
</span>

#AntiSpam {font-size : 10px; text-transform: none;}
.AntiSpam {color: red};
*/
console.log('DC - AntiSpam started');