NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==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 © 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();