// DCKickAss script
// based Imyejin-free user script from perky http://openlook.org/src/0704/imyejinfree.user.js
// 본 스크립트는 BSD License에 따라 누구나 개인적인 목적이나 상업적인 목적으로
// 사용이 가능합니다. - 익명의 제작자
// http://www.opensource.org/licenses/bsd-license.html
//
// DCKickAss v0.05改
//
// 2009. 6. 14. 프갤의 Rei@디씨 가 DCKickAss v0.05를 변경된 DC의 레이아웃에 맞추어
// 댓글 차단이 되도록 개량하였음.
//
// ==UserScript==
// @name DCKickAss v0.05 改
// @namespace http://gall.dcinside.com/*
// @description Eat troll's articles
// @include http://gall.dcinside.com/*
// @exclude
// ==/UserScript==
var dcka_who = [ "나광팔" ];
var dcka_subject = [ ];
var dcka_comment_who = [ "나광팔" ];
/* 디씨 페이지 레이아웃이 변경되어 더이상 IP 차단을 사용할 수 없습니다.
var dcka_article_ip = [
];
*/
var atags = document.getElementsByTagName('TR');
for (var i = 0; i < atags.length; i++ ) {
var tmp = atags[i];
var tmp2 = tmp.getElementsByTagName('TD');
for ( var j = 2; j < 3 && j < tmp2.length; j++ )
{
var tmp3 = tmp2[j].getElementsByTagName('A');
if ( tmp3.length > 0 )
{
var str = tmp3[0].textContent;
for ( var k = 0; k < dcka_subject.length; ++k )
{
if (str.match(dcka_subject[k]) )
{
var tr = tmp;
tr.innerHTML = "
| | ==== 제목에 [" + dcka_subject[k] + "]가 들어간 글을 차단했습니다 | ";
break;
}
}
}
}
var tmp = atags[i];
var tmp2 = tmp.getElementsByTagName('TD');
for ( var j = 3; j < 4 && j < tmp2.length; j++ )
{
var tmp3 = tmp2[j].getElementsByTagName('SPAN');
if ( tmp3.length > 0 )
{
var str = tmp3[0].textContent;
for ( var k = 0; k < dcka_who.length; ++k )
{
if (str.match(dcka_who[k]) )
{
var tr = tmp;
tr.innerHTML = " | | ==== [" + dcka_who[k] + "]에 의해 [" + str + "]놈을 차단했습니다 | ";
break;
}
}
}
}
}
/* IP 차단 제거 */
/*
function kick_ip()
{
var dcka_ctb = document.getElementsByTagName("TABLE");
if ( dcka_ctb.length < 5 ) { return false; }
var dcka_atc_table = dcka_ctb[4];
var dcka_atc_divs = dcka_atc_table.getElementsByTagName("DIV");
if ( dcka_atc_divs.length < 1 ) { return false; }
var dcka_atc_div = dcka_atc_divs[dcka_atc_divs.length - 1];
var ip_str = dcka_atc_div.textContent;
if ( !ip_str.match("IP Address :") ) { return false; }
for ( var i = 0; i < dcka_article_ip.length; ++i )
{
if ( ip_str.match(dcka_article_ip[i]) )
{
dcka_atc_table.innerHTML = "" +
" [뒤로 돌아가기]" +
"IP " + dcka_article_ip[i] + "에 의해 글 본문이 차단되었습니다. " + ip_str + " |
";
break;
}
}
return true;
var dcka_atc_trs = dcka_atc_table.getElementsByTagName("TR");
//7, 6 - 이미지
if ( dcka_atc_trs.length < 8 ) { return false; }
var dcka_atc_tr = dcka_atc_trs[7];
var dcka_atc_tds = dcka_atc_tr.getElementsByTagName('TD');
if ( dcka_atc_tds.length != 3 ) { return false; }
var dcka_atc_td = dcka_atc_td[1];
var dcka_atc_divs = dcka_atc_td.getElementsByTagName('DIV');
alert("D");
if ( dcka_atc_divs.length < 1 ) { return false; }
var dcka_atc_div = dcka_atc_divs[dcka_atc_divs.length - 1];
alert(dcka_atc_div.textContent);
}
*/
//kick_ip();
var dcka_ctb = document.getElementsByTagName('TABLE'); //전체 테이블을 가져와서
for ( var i = 0; i < dcka_ctb.length; ++i )
{
var tb = dcka_ctb[i];
if ( tb.id )
{
var str = tb.id;
if ( str.match("com_tab") ) //댓글 테이블이면 내용을 검사한다.
{
var dcka_trs = tb.getElementsByTagName('TR'); //하위의 열들을 가져온다.
for ( var j = 0; j < dcka_trs.length; ++j )
{
try{
var dcka_tr = dcka_trs[j]; //댓글이 있는 열
var dcka_tds = dcka_tr.getElementsByTagName('TD'); //열의 각 셀들
var dcka_td_childrens = dcka_tds[0].childNodes;
for(var m = 0; m < dcka_td_childrens.length; ++m ) //반복
{
if( dcka_td_childrens[m].title )
{
//차단할 놈들 목록을 반복
for ( var l = 0; l < dcka_comment_who.length; ++l )
{
//하위 태그의 title과 겹치면, 차단한다.
if ( dcka_comment_who[l].match(dcka_td_childrens[m].title) )
{
dcka_tr.innerHTML = "==== " + dcka_comment_who[l] + "놈을 차단했습니다. | ";
break;
}
}
}
}
}catch(excep){}
}
}
}
}