sungpyohonggmail.com / alba-kick for DVDPRIME

// ==UserScript==
// @name           alba-kick for DVDPRIME
// @namespace      http://www.tobyto.pe.kr
// @grant          none
// @description    DVDPRIME 회원 차단 스크립트
// @copyright      2009+, lum34
// @licence        GPL licence
// @version        0.1.3
// @homepage	   http://www.tobyto.pe.kr
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
// @include        http://dvdprime.donga.com/g5/bbs/board.php*
// @noframes
// @enable         true
// ==/UserScript==

/* jQuery 관련 설정 */
this.$ = this.jQuery = jQuery.noConflict(true);
jQuery.fn.exists = function(){return this.length > 0;}
/* IE 관련 설정 */
/* trim() */
if(typeof String.prototype.trim !== 'function') {
	String.prototype.trim = function() {
		return this.replace(/^\s+|\s+$/g, '');
	}
}
/* 변수설정 */
var BlackList    = new Array();
var WhiteList    = new Array();
var BlackID      = new Array();
var WhiteID      = new Array();
var DFTT = '<img title="Do not feed this troll." src="data:image/png;base64,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" width="55" height="55" alt=""/> 차단된사용자';
var gmcss = '<link rel="stylesheet" type="text/css" href="data:text/css;base64,LmNsZWFyZml4OmJlZm9yZSwNCi5jbGVhcmZpeDphZnRlciB7DQogICAgY29udGVudDogIiAiOyAvKiAxICovDQogICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi8NCn0NCg0KLmNsZWFyZml4OmFmdGVyIHsNCiAgICBjbGVhcjogYm90aDsNCn0NCg0KLyoqDQogKiBGb3IgSUUgNi83IG9ubHkNCiAqIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy4NCiAqLw0KLmNsZWFmcml4IHsNCiAgICAqem9vbTogMTsNCn0NCg0KI2dtcGFuZWwgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl0b3A6IDE1MHB4Ow0KCXJpZ2h0OiAwOw0KCWRpc3BsYXk6IG5vbmU7DQoJYmFja2dyb3VuZDogI2ZmZjsNCglib3JkZXI6MXB4IHNvbGlkICMxMTE7DQoJd2lkdGg6IDI1MHB4Ow0KCWhlaWdodDogMzAwcHg7DQoJcGFkZGluZzogMDsNCgl6LWluZGV4OjIwMDsNCn0NCg0KI2dtTW5nQnRuIHsNCglwb3NpdGlvbjpmaXhlZDsNCgl0b3A6IDE1MHB4Ow0KCXJpZ2h0Oi0wLjFlbTsNCgl3aWR0aDo0MHB4Ow0KCWhlaWdodDozNXB4Ow0KCWJvcmRlci1yYWRpdXM6NHB4Ow0KCWJvcmRlci1yYWRpdXM6NHB4Ow0KCS1tb3otYm9yZGVyLXJhZGl1czo0cHg7DQoJLW1vei1ib3JkZXItcmFkaXVzOjRweDsNCglwYWRkaW5nOjAgMXB4IDAgMXB4Ow0KCXotaW5kZXg6MTAwOw0KfQ0KDQouZ21CdG4ge2NvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7bWFyZ2luOjNweCAzcHggM3B4IDNweDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjJweCAzcHg7fQ0KLmdtQnRuOmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZDojZWVlO30NCi50ZXh0LXJpZ2h0IHt0ZXh0LWFsaWduOnJpZ2h0O30NCi50ZXh0LWNlbnRlciB7dGV4dC1hbGlnbjpjZW50ZXI7fQ0KLnRleHQtbGVmdCB7dGV4dC1hbGlnbjpsZWZ0O30NCg0KdWwuZ210dGFicyB7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQoJZmxvYXQ6IGxlZnQ7DQoJbGlzdC1zdHlsZTogbm9uZTsNCgloZWlnaHQ6IDMycHg7DQoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQoJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWVlOw0KCXdpZHRoOiAzNTBweDsNCglmb250LWZhbWlseToiZG90dW0iDQoJZm9udC1zaXplOjEycHg7DQp9DQp1bC5nbXRhYnMgbGkgew0KICAgIGZsb2F0OiBsZWZ0Ow0KICAgIHRleHQtYWxpZ246Y2VudGVyOw0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB3aWR0aDoyNCU7DQogICAgaGVpZ2h0OiAzMXB4Ow0KICAgIGxpbmUtaGVpZ2h0OiAzMXB4Ow0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7DQogICAgYm9yZGVyLWxlZnQ6IG5vbmU7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgYmFja2dyb3VuZDogI2ZhZmFmYTsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCnVsLmdtdGFicyBsaS5nbWFjdGl2ZSB7DQogICAgYmFja2dyb3VuZDogI2ZmZjsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsNCn0NCg0KLmdtdGFiX2NvbnRhaW5lciB7DQogICAgY2xlYXI6IGJvdGg7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiA3OCU7DQogICAgYmFja2dyb3VuZDogI0ZGRkZGRjsNCn0NCi5nbXRhYl9jb250ZW50IHsNCiAgICBwYWRkaW5nOiA1cHg7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5nbWxpc3Qge3dpZHRoOjEwMCU7aGVpZ2h0OjIwMHB4O292ZXJmbG93LXk6c2Nyb2xsOyBib3JkZXI6IDFweCBzb2xpZCAjZWVlO30="></link>';


/* 설정관련 파일 */
function setConfig() {
	/*저장된 Dpoptions 불러오기 */
	if(localStorage.getItem('ShowFiltered') != null) {
		var ShowFiltered = localStorage.getItem('ShowFiltered');
		if(ShowFiltered == 1) ShowFiltered = true;
		else ShowFiltered = false;
	}
	else {
		localStorage.setItem('ShowFiltered', '1');
		var ShowFiltered = true;
	}
	if(localStorage.getItem('Highlighted') != null) {
		var Highlighted = localStorage.getItem('Highlighted');
		if(Highlighted == 1) Highlighted  = true;
		else Highlighted  = false;
	}
	else {
		localStorage.setItem('Highlighted', '1');
		var Highlighted = true;
	}

	Config = {
		BlackID: BlackID,
		WhiteID: WhiteID,
		DPoptions: [ShowFiltered, Highlighted]
	};
}

/* 우측 상단에 관리메뉴 버튼 추가 */
function addMenu() {
	/*css 추가 */
	$('head').append(gmcss);
	/*괸리메뉴 추가 */
	var gmpanel =' \
	<div id="gmpanel"> \
		<div class="text-right"><button id="gmCloseBtn" class="gmBtn">닫기</button></div>\
		<ul class="gmtabs"> \
			<li class="gmactive" rel="gmtab1">알림</li> \
			<li rel="gmtab2">차단</li> \
			<li rel="gmtab3">강조</li> \
			<li rel="gmtab5">설정</li> \
		</ul> \
		<div class="gmtab_container"> \
			<div id="gmtab1" class="gmtab_content"> \
				<h3 class="text-center"><strong>사용법</strong></h3> \
				<p>목록에서 <strong>끌쓴이</strong> 이름을 클릭하면 차단, 강조링크가 나옵니다.\
				차단 또는 강조을 원하는 회원을 클릭합니다.<br/> \
				차단 또는 강조된 회원은 차단탭과 강조탭에서 각각의 탭에서 개별적으로 해지할 수 있습니다.<br/> \
				설정탭에서 차단, 강조 표시 상태를 변경할 수 있습니다.</p> \
				<p style="border-top:1px solid #000; padding:0.25em;margin:0.25em">Ver 0.1.0 &copy; lum34 <a href="http://www.tobyto.pe.kr" target="_blank">나 그리고 사람들</a></p> \
			</div> \
			<div id="gmtab2" class="gmtab_content"> \
				<p><strong>버튼을 클릭하면 삭제가 가능합니다.</strong></p> \
				<ul id="gmblacklist" class="gmlist"></ul> \
			</div> \
			<div id="gmtab3" class="gmtab_content"> \
				<p><strong>버튼을 클릭하면 삭제가 가능합니다.</strong></p> \
				<ul id="gmwhitelist" class="gmlist"></ul> \
			</div> \
			<div id="gmtab5" class="gmtab_content"> \
				<p><strong>표시 상태를 변경합니다.</strong></p> \
				<label style="display:block;padding-left: 20px; text-indent:-15px; margin-top:5px"><input type="checkbox" id="ShowFiltered" name="ShowFiltered" value="ShowFiltered"> 삭제흔적보이기</label> \
				<label style="display:block;padding-left: 20px; text-indent:-15px; margin-top:5px"><input type="checkbox" id="Highlighted" name="Highlighted" value="Highlighted"> 강조하기</label> \
			</div> \
		</div> \
	</div> \
	<button id="gmMngBtn" class="gmBtn"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVR4nO3UMQ4CMQxE0ZdVmj3J3gPRUVByTgSiAHEtUoaKK+xEIpZcf8vj72LrkrVE6aMMcEMP9bXYevQIhoigBfmt4oIDys7wjndJ/4GKE44yG3gVW/9g3Rn+q7YE4bAOoeEjyL/HLYhHMDWcGk4N4xFUnOU0fE4N4zcwNRwigv8e4AsNOEBWc6ATwwAAAABJRU5ErkJggg=="/></button> \
	';

	$('.contents').append(gmpanel);
}

/* 메뉴 콘트롤 */
function controlMenu() {
	/*관리 메뉴 버튼 누르면 메뉴 보여준다 */
	$('.contents').on('click', '#gmMngBtn', function() {
		$('#gmpanel').show();
		$('#gmMngBtn').hide();

		/*메뉴의 탭 */
		$('ul.gmtabs li').removeClass('gmactive').css('color', '#333');
		$('ul.gmtabs li:first').addClass('gmactive');
		$('.gmtab_content').hide();
		$('.gmtab_content:first').show();

		$('ul.gmtabs').on('click', 'li', function() {
			$('ul.gmtabs li').removeClass('gmactive').css('color', '#333');
			$(this).addClass('gmactive');
			$('.gmtab_content').hide();
			var activeTab = $(this).attr('rel');
			$('#' + activeTab).show();
		});
		$('#gmblacklist').on('click', 'button', function() {
			var id = this.id;
			removeMember(id, 'black');
		});
		$('#gmwhitelist').on('click', 'button', function() {
			var id = this.id;
			removeMember(id, 'white');
		});
		return false;
	});

	/*닫기 버튼 누르면 메뉴 숨긴다. */
	$('.contents').on('click', '#gmCloseBtn', function() {
		$('#gmpanel').hide();
		$('#gmMngBtn').show();
		return false;
	});

	$('.sv_wrap > .sv_member').mouseover(function(e){
		var idobject = $(this);
		var list = $(this).parents('tr');
		if(list.length > 0 ) {
		var nickname = idobject.html().trim();
		var id = idobject.attr('href').split('=')[1].trim();
			addMemberMenu(list, nickname, id);
		}
		else {
			var list = $(this).parents('span');
			var nickname = idobject.html().replace(/<img.*>/g,'').trim();
			var id = idobject.attr('href').split('=')[1].trim();
			addMemberMenu(list, nickname, id);
		}
	});
}

/* 설정의 옵션 표시 */
function displaySetting() {
	var ShowFiltered = localStorage.getItem('ShowFiltered');
	if(ShowFiltered == 1) $('#ShowFiltered').attr('checked', true);
	else $('#ShowFiltered').attr('checked', false);

	var Highlighted = localStorage.getItem('Highlighted');
	if(Highlighted == 1) $('#Highlighted').attr('checked', true);
	else $('#Highlighted').attr('checked', false);
}

/* 설정 변경 */
function changeSetting() {
	$('#ShowFiltered').change(function() {
		if(this.checked) {
			localStorage.setItem('ShowFiltered', '1');
		}
		else {
			localStorage.setItem('ShowFiltered', '0');
		}
	});
	$('#Highlighted').change(function() {
		if(this.checked) {
			localStorage.setItem('Highlighted', '1');
		}
		else {
			localStorage.setItem('Highlighted', '0');
		}
	});
}

/* 회원정보에 차단/강조 메뉴 추가 */
function addMemberMenu(list, nickname, id) {
	var menuobject = list.find('.sv');
	menuobject.css('top','-80px');
	menuobject.css('left','80px');
	menuobject.find('.usernickname').remove();
	menuobject.find('.blockmember').remove();
	menuobject.find('.highlightmember').remove();
	menuobject.prepend('<div class="text-center usernickname" style="width:100px; color:#000; background-color:#eee;">' + nickname + '</div>');
	menuobject.append('<a class="blockmember" href="#'+ id + '">회원차단</a>');
	menuobject.append('<a class="highlightmember" href="#'+ id + '">회원강조</a>');
	/* 차단 */
	$('a.blockmember').click(function(e){
		var nickname = $(this).siblings('.usernickname').html().trim();
		var id = $(this).attr('href').split('#')[1].trim();
		var type = 'black';
		var memo = '';
		addMember(nickname, id, type, memo);
		$('.sv').removeClass('sv_on');
		if (isThreadList()) clearThreadList();
		else clearReplyList();
		event.preventDefault ? event.preventDefault() : event.returnValue = false;
	});
	/* 강조 */
	$('a.highlightmember').click(function(e){
		var nickname = $(this).siblings('.usernickname').html().trim();
		var id = $(this).attr('href').split('#')[1].trim();
		var type = 'white';
		var memo = '';
		addMember(nickname, id, type, memo);
		$('.sv').removeClass('sv_on');
		if (isThreadList()) clearThreadList();
		else clearReplyList();
		event.preventDefault ? event.preventDefault() : event.returnValue = false;
	});
}

/* 삭제 */
function deleteContent(list, type) {
	var ShowFiltered = Config.DPoptions[0];
	if(ShowFiltered) {
		if (type == 't') {
			var thread = list;
			var subject = thread.find('a:eq(1)');
			subject.removeAttr('href').css('text-decoration', 'none').html('해당 글은 차단되었습니다.').css('color', 'gray');
			var iconimage = thread.find('img');
			iconimage.hide();
			var nickname = thread.find('td:eq(2)');
			nickname.text('차단된사용자').css('color', 'gray');
			var recommend = thread.find('td:eq(4)');
			recommend.text('');
			var hit = thread.find('td:eq(5)');
			hit.text('');

		} else if (type == 'r') {
			/* 본문 차단 */
			var blacktitle = list.parents('#bo_v_info');
			if(blacktitle.length > 0 ) {
				document.title = '해당 글은 차단되었습니다.';
				$('#bo_v_title').html('해당 글은 차단되었습니다.').css('color', 'gray');
				$('#bo_v_info').html(DFTT);
				$('#bo_v_atc').html('해당 본문은 차단되었습니다.').css('color', 'gray');
			}
			/* 리플 차단 */
			var blackreply = list.parents('header');
			if(blackreply.length > 0 ) {
				var blackwriter= blackreply.find('.sv_wrap');
				if(blackwriter.find('img').length > 0) blackwriter.html(DFTT);
				else blackwriter.text('차단된사용자').css('color', 'gray');
				blackreply.siblings('p').text('해당 글은 차단되었습니다.').css('color', 'gray');
				blackreply.siblings('footer').hide();
			}
		}
	} else {
		if (type == 't') {
			var thread = list;
			thread.remove();
		} else if(type == 'r') {
			/* 본문 차단 */
			var blacktitle = list.parents('#bo_v_info');
			if(blacktitle.length > 0 ) {
				document.title = '해당 글은 차단되었습니다.';
				$('#bo_v_title').html('해당 글은 차단되었습니다.').css('color', 'gray');
				$('#bo_v_info').html(DFTT);
				$('#bo_v_atc').html('해당 본문은 차단되었습니다.').css('color', 'gray');
			}
			var blackreply = list.parents('article:eq(0)');
			if(blackreply.length > 0 ) {
				blackreply.remove();
			}
		}
	}
}

/* 강조 */
function heighlightContent(list, type) {
	var Highlighted = Config.DPoptions[1];
	if(Highlighted) {
		if (type == 't') {
			list.css('background', '#DFFDFD');
		}
		else if (type == 'r') {
			/* 본문 제목 강조 */
			var whitetitle = list.parents('#bo_v_info').siblings('header');
			if(whitetitle.length > 0 ) list.parents('#bo_v_info').siblings('header').css('background', '#DFFDFD');
			var whitereply = list.parents('header').siblings('p');
			if(whitereply.length > 0 )	whitereply.css('background', '#DFFDFD');
		}
	}
}

/* 저장된 회원정보 가져오기 */
function getMemberList() {
	BlackList.length = 0;
	WhiteList.length = 0;
	BlackID.length = 0;
	WhiteID.length = 0;
	var blackmemberlist = '';
	var whitememberlist = '';
	for(var i = 0; i < localStorage.length; i++) {
		var key = localStorage.key(i);
		var memberdata = jQuery.parseJSON(localStorage[key]);
		if(memberdata.type == 'black') {
			BlackList.push(memberdata);
			BlackID.push(memberdata.id);
		}
		else if (memberdata.type == 'white') {
			WhiteList.push(memberdata);
			WhiteID.push(memberdata.id);
		}
	}
	/*메뉴 목록에 보여주기 */
	for(var i = 0; i < BlackList.length; i++) {
		var timestamp = Number(BlackList[i].timestamp);
		var d = new Date(timestamp);
		var blockdate = d.getFullYear() + '/' + (d.getMonth()+1) + '/' + d.getDate();
		blackmemberlist = blackmemberlist + '<li><span title="' + BlackList[i].nickname +  '">' + BlackList[i].nickname.substr(0,9) + '</span> [' + blockdate + ']<button id="' + BlackList[i].id + '" class="gmBtn">삭제</button></li>';
	}
	$('#gmblacklist').empty();
	$('#gmblacklist').append(blackmemberlist);
	for(var i = 0; i < WhiteList.length; i++) {
		var timestamp = Number(WhiteList[i].timestamp);
		var d = new Date(timestamp);
		var highlightdate = d.getFullYear() + '/' + (d.getMonth()+1) + '/' + d.getDate();
		whitememberlist = whitememberlist + '<li><span title="' + WhiteList[i].nickname + '">' + WhiteList[i].nickname.substr(0,9) + '</span> [' + highlightdate + ']<button id="' + WhiteList[i].id+ '" class="gmBtn">삭제</button></li>';
	}
	$('#gmwhitelist').empty();
	$('#gmwhitelist').append(whitememberlist);
}

/* 회원 정보 추가 */
function addMember(nickname, id, type, memo) {
	var timestamp = new Date().getTime();
	var memberdata = '{"nickname":"' + nickname + '", "id":"' + id + '", "timestamp":"' + timestamp + '","type":"' +  type + '", "memo":"' + memo + '"}';
	localStorage.setItem(id, memberdata);
	getMemberList();
}

/* 회원 정보 삭제 */
function removeMember(id, c) {
	localStorage.removeItem(id);
	getMemberList();
}

/* 게시판 본문인지 체크 */
function isThreadList() {
	if($('#bo_list').exists()) return true;
	else false;
}
/* 게시판 리스트 처리 */
function clearThreadList() {
	$('table tr .td_name').each(function() {
		var idobject = $(this).find('.sv_wrap');
		var isid = idobject.find('a:eq(0)');
		if(isid.length > 0) {
			id = isid.attr('href').split('=')[1].trim();
			var list = idobject.parents('tr');
			/* 차단 */
			if(jQuery.inArray(id, Config.BlackID) != -1) deleteContent(list, 't');
			/* 강조 */
			if(jQuery.inArray(id, Config.WhiteID) != -1) heighlightContent(list, 't');
		}
	});
};

/* 게시판 댓글 처리 */
function clearReplyList() {
	$('article .sv_member').each(function() {
		var idobject = $(this).parent();
		var isid = idobject.find('a:eq(0)');
		if(isid.length > 0) {
			id = isid.attr('href').split('=')[1].trim();
			var list = idobject;
			/* 차단 */
			if(jQuery.inArray(id, Config.BlackID) != -1) deleteContent(list, 'r');
			/* 강조 */
			if(jQuery.inArray(id, Config.WhiteID) != -1) heighlightContent(list, 'r');
		}

	});
}
function main() {
	/* 설정 불러오기 */
	var Config;
	setConfig();
	/* 관리메뉴 추가 */
	addMenu();
	/* 관리메뉴 콘트롤 */
	controlMenu();
	/* 설정의 옵션 표시 */
	displaySetting()
	/* 설정 변경 */
	changeSetting();
	/* 저장된회원정보 가져오기 */
	getMemberList();
	/* 게시판 리스트인지, 본문인지 체크 */
	if (isThreadList()) clearThreadList();
	else clearReplyList();
}

main();