rendered paste body*** Dollchan_Extension_Tools_(2010-06-10).user.js 2010-07-02 20:32:32.404562026 +0400--- Dollchan_Extension_Tools_(2010-06-21).user.js 2010-06-29 10:29:10.897690330 +0400****************** 3,9 **** // copyright (C) 2084, Bender Bending Rodrguez // ==UserScript== // @name Dollchan Extension Tools! // @version 2010-06-10 // @description Doing some extended profit for russian AIB // @namespace http://freedollchan.org/scripts // @include *0chan.ru*--- 3,9 ---- // copyright (C) 2084, Bender Bending Rodrguez // ==UserScript== // @name Dollchan Extension Tools! // @version 2010-06-21 // @description Doing some extended profit for russian AIB // @namespace http://freedollchan.org/scripts // @include *0chan.ru******************* 18,24 **** (function() { var defaultCfg = [! 1, // 0 anti-wipe detectors 0, // 1 hide posts with sage 0, // 2 hide posts with theme 0, // 3 hide posts without text--- 18,24 ---- (function() { var defaultCfg = [! 1, // 0 antiwipe detectors 0, // 1 hide posts with sage 0, // 2 hide posts with theme 0, // 3 hide posts without text****************** 41,47 **** 2, // 20 2-ch captchas (0,1,2) 1, // 21 hide board rules 1, // 22 hide 'goto' field! 1, // 23 expand imgs by click 1, // 24 expand shorted posts 1, // 25 hide scrollers in posts 1, // 26 >>links preview--- 41,47 ---- 2, // 20 2-ch captchas (0,1,2) 1, // 21 hide board rules 1, // 22 hide 'goto' field! 2, // 23 expand images (0=no, 1=simple, 2=+preview) 1, // 24 expand shorted posts 1, // 25 hide scrollers in posts 1, // 26 >>links preview****************** 59,65 **** 1, // 38 reply without reload (verify on submit) 1, // 39 open spoilers 1, // 40 hide password field! 1 // 41 email field -> sage btn ], Cfg = [],--- 59,73 ---- 1, // 38 reply without reload (verify on submit) 1, // 39 open spoilers 1, // 40 hide password field! 1, // 41 email field -> sage btn! // antiwipe:! 1, // 42 Same lines! 1, // 43 Same words! 1, // 44 Specsymbols! 1, // 45 Long columns! 1, // 46 Long words! 1, // 47 Numbers! 1 // 48 CaSe/CAPS ], Cfg = [],****************** 386,392 **** for(var i = 0; i < arr.length/4; i++) if(arr[i*4] == key[0] && arr[i*4 + 1].split('/')[0] == key[1] && arr[i*4 + 2] == key[2]) arr.splice(i*4, 4);! $del($up(node)); if(arr.length == 0) $id('favorities_div').firstChild.innerHTML = '<b> ...</b>'; setStored('DESU_Favorities', arr.join('|')); }--- 394,400 ---- for(var i = 0; i < arr.length/4; i++) if(arr[i*4] == key[0] && arr[i*4 + 1].split('/')[0] == key[1] && arr[i*4 + 2] == key[2]) arr.splice(i*4, 4);! $del($up(node, 2)); if(arr.length == 0) $id('favorities_div').firstChild.innerHTML = '<b> ...</b>'; setStored('DESU_Favorities', arr.join('|')); }****************** 407,416 **** trBox = function(num, txt, fn, id) { return $New('tr', [chkBox(num, fn, id), $txt(' ' + txt)]); },! optSel = function(id, arr, fn) { for(var i = 0; i < arr.length; i++) arr[i] = '<option value="' + i + '">' + arr[i] + '</option>';! return $new('select', {'id': id, 'html': arr.join('')}, {'change': fn}); }; var postarea = $x('.//div[@class="postarea" or @align="center"]') || delform;--- 415,426 ---- trBox = function(num, txt, fn, id) { return $New('tr', [chkBox(num, fn, id), $txt(' ' + txt)]); },! optSel = function(id, arr, num, fn) { for(var i = 0; i < arr.length; i++) arr[i] = '<option value="' + i + '">' + arr[i] + '</option>';! var x = $new('select', {'id': id, 'html': arr.join('')}, {'change': fn});! x.selectedIndex = Cfg[num];! return x; }; var postarea = $x('.//div[@class="postarea" or @align="center"]') || delform;****************** 438,444 **** $append($x('.//tbody', tools), [ $new('tr', {'text': 'Dollchan Extension Tools', 'style': 'width:100%; text-align:center; font-weight:bold; font-family:sans-serif'}),! trBox(0, '- '), $if(!(ch.iich || ch.sib), trBox(1, ' sage ', toggleSage, 'sage_hider')), $if(!ch.sib, trBox(2, ' ""', toggleTitle)), trBox(3, ' ', toggleNotext, 'notext_hider'),--- 448,473 ---- $append($x('.//tbody', tools), [ $new('tr', {'text': 'Dollchan Extension Tools', 'style': 'width:100%; text-align:center; font-weight:bold; font-family:sans-serif'}),! $New('tr', [! chkBox(0),! $txt('- '),! $new('span', {! 'html': '[<a>>></a>]',! 'style': 'cursor:pointer'}, {! 'click': function() {toggleDisp($id('antiwipecfg'))}})! ]),! $New('div', [! trBox(42, 'Same lines'),! trBox(43, 'Same words'),! trBox(44, 'Specsymbols'),! trBox(45, 'Long columns'),! trBox(46, 'Long words'),! trBox(47, 'Numbers'),! trBox(48, 'CaSe/CAPS')! ], {! 'id': 'antiwipecfg',! 'style': 'display:none; padding-left:15px'! }), $if(!(ch.iich || ch.sib), trBox(1, ' sage ', toggleSage, 'sage_hider')), $if(!ch.sib, trBox(2, ' ""', toggleTitle)), trBox(3, ' ', toggleNotext, 'notext_hider'),****************** 474,480 **** 'cols': nav.Opera ? 47 : 41}) ]), $New('tr', [! optSel('prochidden_sel', [' ', '', ''], function() {processHidden(this.selectedIndex, Cfg[12])}), $txt(' ') ]),--- 503,509 ---- 'cols': nav.Opera ? 47 : 41}) ]), $New('tr', [! optSel('prochidden_sel', [' ', '', ''], 12, function() {processHidden(this.selectedIndex, Cfg[12])}), $txt(' ') ]),****************** 483,489 **** trBox(13, ' '), $new('hr'), $New('tr', [! optSel('upload_sel', ['', ' ', ''], function() {saveCfg(37, this.selectedIndex)}), $txt(' *') ]),--- 512,518 ---- trBox(13, ' '), $new('hr'), $New('tr', [! optSel('upload_sel', ['', ' ', ''], 37, function() {saveCfg(37, this.selectedIndex)}), $txt(' *') ]),****************** 499,505 **** toggleCfg(7); $each($X('.//span[@id="txt_btns"]'), function(div) {toggleDisp(div)}); }),! $if(wk, trBox(23, ' *')), $if(wk, trBox(24, ' *')), $if(ch._2ch, trBox(25, ' ', function() {toggleCfg(25); scriptStyles()})), trBox(6, ' ', function() {toggleCfg(6); scriptStyles()}),--- 528,538 ---- toggleCfg(7); $each($X('.//span[@id="txt_btns"]'), function(div) {toggleDisp(div)}); }),! $if(wk, $New('tr', [! optSel('imgexpand_sel', ['', '', ' '], 23,! function() {saveCfg(23, this.selectedIndex)}),! $txt(' ')! ])), $if(wk, trBox(24, ' *')), $if(ch._2ch, trBox(25, ' ', function() {toggleCfg(25); scriptStyles()})), trBox(6, ' ', function() {toggleCfg(6); scriptStyles()}),****************** 537,549 **** ]), $if(ch._2ch, $New('tr', [ $txt(' * '),! optSel('capnum_sel', [0, 1, 2], function() {saveCfg(20, this.selectedIndex)}) ])), $new('hr'), $New('tr', [ $new('span', { 'id': 'process_time',! 'title': 'v.2010-06-10, storage: ' + (sav.GM ? 'greasemonkey' : (sav.local ? 'localstorage' : 'cookies')), 'style': 'font-style:italic; cursor:pointer'}, { 'click': function() {alert(timeLog)}}), $new('input', {--- 570,582 ---- ]), $if(ch._2ch, $New('tr', [ $txt(' * '),! optSel('capnum_sel', [0, 1, 2], 20, function() {saveCfg(20, this.selectedIndex)}) ])), $new('hr'), $New('tr', [ $new('span', { 'id': 'process_time',! 'title': 'v.2010-06-21, storage: ' + (sav.GM ? 'greasemonkey' : (sav.local ? 'localstorage' : 'cookies')), 'style': 'font-style:italic; cursor:pointer'}, { 'click': function() {alert(timeLog)}}), $new('input', {****************** 553,561 **** 'click': function() {setDefaultCfg(); window.location.reload()}}) ]) ]);- $id('upload_sel').selectedIndex = Cfg[37];- $id('prochidden_sel').selectedIndex = Cfg[12];- if(ch._2ch) $id('capnum_sel').selectedIndex = Cfg[20]; } function hiddenPostsPreview() {--- 586,591 ----****************** 563,569 **** $id('controls_div').style.display = 'none'; var div = $id('hiddenposts_div'); if(div.hasChildNodes()) {delChilds(div); return}! div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>' var table = $x('.//tbody', div); var clones = [], tcnt = 0, pcnt = 0; forAll(function(post) {if(post.Vis == HIDE) {--- 593,599 ---- $id('controls_div').style.display = 'none'; var div = $id('hiddenposts_div'); if(div.hasChildNodes()) {delChilds(div); return}! div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>'; var table = $x('.//tbody', div); var clones = [], tcnt = 0, pcnt = 0; forAll(function(post) {if(post.Vis == HIDE) {****************** 593,607 **** }}(clone) }); $append(table, [! $if(!pp && tcnt == 0, $new('tr', {'html': '<b> :<b>'})),! $if(pp && pcnt == 0, $new('tr', {'html': '<b> :<b>'})), $New('tr', [clone, $if(!pp, $attr(post.cloneNode(true), {'class': 'reply', 'style': 'display:none'}))]) ]); if(!pp) {modPostDisp($next(clone), UNHIDE); tcnt++} else pcnt++;! refPrewiev(clone); }});! if(!table.hasChildNodes()) {table.innerHTML = '<b> ...</b>'; return} $append(table.insertRow(-1), [ $new('input', { 'type': 'button',--- 623,637 ---- }}(clone) }); $append(table, [! $if(!pp && tcnt == 0, $new('tr', {'html': '<th align="left"><b> :</b></th>'})),! $if(pp && pcnt == 0, $new('tr', {'html': '<th align="left"><b> :</b></th>'})), $New('tr', [clone, $if(!pp, $attr(post.cloneNode(true), {'class': 'reply', 'style': 'display:none'}))]) ]); if(!pp) {modPostDisp($next(clone), UNHIDE); tcnt++} else pcnt++;! refPreview(clone); }});! if(!table.hasChildNodes()) {table.innerHTML = '<tr><th> ...</th></tr>'; return} $append(table.insertRow(-1), [ $new('input', { 'type': 'button',****************** 634,657 **** $id('controls_div').style.display = 'none'; var div = $id('favorities_div'); if(div.hasChildNodes()) {delChilds(div); return} var data = getStored('DESU_Favorities');! var table = $new('table', {'style': 'margin:5px 0px 5px 20px'});! div.appendChild(table);! if(!data) {table.innerHTML = '<b> ...</b>'; return}! else table.insertRow(-1).appendChild($new('b', {'text': ' :'}));! table = table.firstChild; var arr = data.split('|'); for(var i = 0; i < arr.length/4; i++) {! var url = arr[i*4] + '/' + arr[i*4 + 1] + '/res/' + arr[i*4 + 2]; var title = arr[i*4 + 3]; if((!sav.cookie && title.length >= 70) || (sav.cookie && title.length >= 25)) title += '..';! $append(table, [$new('tr', {! 'class': 'reply',! 'id': 'favnote_' + i,! 'style': 'cursor:default',! 'html': ' <span class="hide_icn" style="vertical-align:middle"></span> <a href="http://' + url + (arr[i*4] != 'dobrochan.ru' ? '.html">' : '.xhtml">') + url + '</a> - ' + title})]);! $event($x('.//tr[@id="favnote_' + i + '"]/span'), {'click': function() {removeFavorities($next(this))}}); } } /*-----------------------------Dropdown select menus-------------------------*/--- 664,714 ---- $id('controls_div').style.display = 'none'; var div = $id('favorities_div'); if(div.hasChildNodes()) {delChilds(div); return}+ div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>';+ var table = $x('.//tbody', div); var data = getStored('DESU_Favorities');! if(!data) {table.innerHTML = '<tr><th> ...</th></tr>'; return}! else $append(table, [$new('tr', {'html': '<th align="left"><b> :</b></th>'})]); var arr = data.split('|'); for(var i = 0; i < arr.length/4; i++) {! var dm = arr[i*4];! var b = arr[i*4 + 1];! var tNum = arr[i*4 + 2]; var title = arr[i*4 + 3];+ var url = dm + '/' + b + '/res/' + tNum; if((!sav.cookie && title.length >= 70) || (sav.cookie && title.length >= 25)) title += '..';! $append(table, [$New('tr', [! $New('div', [! $new('span', {! 'class': 'hide_icn'}, {! 'click': function() {removeFavorities($next($next(this)))}}),! $new('span', {! 'class': 'expthr_icn'}, {! 'click': function(b, tNum) {return function() {! var tr = $up(this, 2);! var thread = $x('.//div[@class="thread"]', tr);! if(thread) {$del(thread); return}! ajaxGetThread(tr.appendChild(! $new('div', {! 'class': 'thread',! 'id': tNum,! 'style': 'padding-left:15px',! 'text': '...'})! ), b, tNum, 5); ! }}(b, tNum)}),! $new('a', {! 'href': 'http://' + url + (dm != 'dobrochan.ru' ? '.html' : '.xhtml'),! 'html': dm + '/' + b + '/' + tNum}),! $txt(' - ' + title)! ], {! 'class': 'reply',! 'style': 'cursor:default',! 'html': ' '! })], {! 'id': 'favnote_' + i! })]); }+ refPreview(div); } /*-----------------------------Dropdown select menus-------------------------*/****************** 676,688 **** function selectPostHider(post) { if(Cfg[11] == 0 || (Cfg[13] == 0 && post.isOp)) return;! var a = addSelMenu('phide_' + post.Num, 0, 14, [' ', ' ', ' ', ' .']); $event(a.snapshotItem(0), { 'mouseover': function() {quotetxt = txtSelection().trim()}, 'click': function() {applyRegExp(quotetxt)}}); $event(a.snapshotItem(1), {'click': function() {regExpImage(post)}}); $event(a.snapshotItem(2), {'click': function() {hideBySameText(post)}});- $event(a.snapshotItem(3), {'click': function() {hideBySameImage(post)}}); } function selectExpandThread(post) {--- 733,744 ---- function selectPostHider(post) { if(Cfg[11] == 0 || (Cfg[13] == 0 && post.isOp)) return;! var a = addSelMenu('phide_' + post.Num, 0, 14, [' ', ' ', ' ']); $event(a.snapshotItem(0), { 'mouseover': function() {quotetxt = txtSelection().trim()}, 'click': function() {applyRegExp(quotetxt)}}); $event(a.snapshotItem(1), {'click': function() {regExpImage(post)}}); $event(a.snapshotItem(2), {'click': function() {hideBySameText(post)}}); } function selectExpandThread(post) {****************** 712,718 **** return $new('img', { 'id': 'imgcaptcha', 'style': 'display:block',! 'alt': '..', 'src': (!isMain ? '/' + board + '/captcha.pl?key=res' + tNum + '&dummy=' + rand10() : '/' + board + '/captcha.pl?key=mainpage&dummy=' + rand10())}, {--- 768,774 ---- return $new('img', { 'id': 'imgcaptcha', 'style': 'display:block',! 'alt': '...', 'src': (!isMain ? '/' + board + '/captcha.pl?key=res' + tNum + '&dummy=' + rand10() : '/' + board + '/captcha.pl?key=mainpage&dummy=' + rand10())}, {****************** 739,756 **** } function sageBtnFunc(mail, form) { var sage = $x('.//span[@id="sage_btn"]', form);! if(Cfg[32] == 0) {! sage.innerHTML = '<i>( )</i>';! sage.style.color = '';! if(mail.type == 'text') mail.value = '';! else mail.checked = false;! } else {! sage.innerHTML = ' <span class="sage_icn" style="vertical-align:middle"></span><b>SAGE</b>';! sage.style.color = 'red';! if(mail.type == 'text') mail.value = 'sage';! else mail.checked = true;! } } function sageBtnEvent(e) {--- 795,806 ---- } function sageBtnFunc(mail, form) {+ var s = Cfg[32] == 1; var sage = $x('.//span[@id="sage_btn"]', form);! sage.innerHTML = s ? ' <span class="sage_icn"></span><b>SAGE</b>' : '<i>( )</i>';! sage.style.color = s ? 'red' : '';! if(mail.type == 'text') mail.value = s ? 'sage' : '';! else mail.checked = s ? true : false; } function sageBtnEvent(e) {****************** 792,798 **** function toggleUserName() { toggleCfg(35);! saveCfg(36, $id('usrname_field').value); var val = ($id('usrname_box').checked) ? Cfg[36] : ''; Rname.value = val; if(QR) ($x('.//input[@name="nya1" or @name="akane" or @name="field1"]', QR) || $x('.//input[@name="name"]', QR)).value = val;--- 842,848 ---- function toggleUserName() { toggleCfg(35);! saveCfg(36, $id('usrname_field').value.replace(/\|/g, '')); var val = ($id('usrname_box').checked) ? Cfg[36] : ''; Rname.value = val; if(QR) ($x('.//input[@name="nya1" or @name="akane" or @name="field1"]', QR) || $x('.//input[@name="name"]', QR)).value = val;****************** 800,806 **** function toggleUserPassw() { toggleCfg(33);! saveCfg(34, $id('usrpass_field').value); var val = $id('usrpass_box').checked ? Cfg[34] : rand10().substring(0, 8); Rpass.value = val; del_passw.value = val;--- 850,856 ---- function toggleUserPassw() { toggleCfg(33);! saveCfg(34, $id('usrpass_field').value.replace(/\|/g, '')); var val = $id('usrpass_box').checked ? Cfg[34] : rand10().substring(0, 8); Rpass.value = val; del_passw.value = val;****************** 953,962 **** if(captcha && (ch._0ch || ks)) { captcha.value = ' '; var a = $up($x('.//img[@id="captchaimage" or @id="faptchaimage"]', QR));! $before(a, [$new('img', {! 'src': 'http://' + domain + (!ch._410 ? '/captcha.php?' + Math.random() : '/faptcha.php?board=' + board),! 'style': 'cursor:pointer'}, {! 'click': function(e) {this.src = this.src.replace(/\?[^?]+$|$/, (!ch._410 ? '?' : '?board=' + board + '&') + Math.random())}})]); $del(a); } }--- 1003,1009 ---- if(captcha && (ch._0ch || ks)) { captcha.value = ' '; var a = $up($x('.//img[@id="captchaimage" or @id="faptchaimage"]', QR));! $before(a, [$new('img', {'src': 'http://' + domain + (!ch._410 ? '/captcha.php?' + Math.random() : '/faptcha.php?board=' + board), 'style': 'cursor:pointer'}, {'click': function(e) {this.src = this.src.replace(/\?[^?]+$|$/, (!ch._410 ? '?' : '?board=' + board + '&') + Math.random())}})]); $del(a); } }****************** 1027,1033 **** /*---------------------------Append styles for elements----------------------*/ function scriptStyles() {! var icn = function(nm, src) {return nm + ' {padding-left:18px; cursor:pointer; background:url(data:image/gif;base64,' + src + ') no-repeat} '}; var pre = 'R0lGODlhDgAPALMAAP//////AP8A//8AAAD//wD/AAAA/wAAAN3d3cDAwJmZmYCAgGBgYEtLS////wAAACH5BAEAAA4ALAAAAAAOAA8AAAR'; var txt = icn('.hide_icn', pre + 'U0MlJq7o4X7dQ+mCILAuohOdHfgpQJguQLowSA+7tKkxt4wgEbnHpkWhCAIJxNJIYyWWTSQMmqUYGDtBobJmMxhOAJZO6LM3l0/WE3oiGo0uv0x0RADs=') +--- 1074,1080 ---- /*---------------------------Append styles for elements----------------------*/ function scriptStyles() {! var icn = function(nm, src) {return nm + ' {vertical-align:middle; padding-left:18px; cursor:pointer; background:url(data:image/gif;base64,' + src + ') no-repeat} '}; var pre = 'R0lGODlhDgAPALMAAP//////AP8A//8AAAD//wD/AAAA/wAAAN3d3cDAwJmZmYCAgGBgYEtLS////wAAACH5BAEAAA4ALAAAAAAOAA8AAAR'; var txt = icn('.hide_icn', pre + 'U0MlJq7o4X7dQ+mCILAuohOdHfgpQJguQLowSA+7tKkxt4wgEbnHpkWhCAIJxNJIYyWWTSQMmqUYGDtBobJmMxhOAJZO6LM3l0/WE3oiGo0uv0x0RADs=') +****************** 1037,1044 **** icn('.expthr_icn', pre + 'P0MlJq7o4X7dQ+gsALF+CLCSIiGeJqiKbLkzGIEiNMfp15zYGCtXANYY04bCIOA55SKYTBV0akQxnMQZoEhulbRf8aRTDIrKp4TC7325HBAA7') + icn('.fav_icn', pre + 'T0MlJq7o4X7dQ+skFJsiyjAqCKKOJAgALLoxpInBpMzUM4D8frcbwGQHEGi1hTCh5puLxWWswAY0GLNGgdbVYE/hr5ZY/WXTDM2ojGo6sfC53RAAAOw==') + 'td.reply {width:auto} .pcount {font-size:13px;font-weight:bold;cursor:default;color:#4f7942} .pcountb {font-size:13px;font-weight:bold;cursor:default;color:#c41e3a} ';! if((ch._2ch && getCookie('wakabastyle') != 'Futaba') || ch._0ch)! txt += '.postblock {background:#bbb} '; // gray postform color if(Cfg[39] == 1) txt += '.spoiler {background:#888 !important; color:#CCC !important} '; // open spoilers if(Cfg[25] == 1) txt += 'blockquote {max-height:100% !important; overflow:visible !important} '; // no scroller if(Cfg[6] == 1) txt += '.commentpostername, .postername, .postertrip {display:none}'; // no post names--- 1084,1090 ---- icn('.expthr_icn', pre + 'P0MlJq7o4X7dQ+gsALF+CLCSIiGeJqiKbLkzGIEiNMfp15zYGCtXANYY04bCIOA55SKYTBV0akQxnMQZoEhulbRf8aRTDIrKp4TC7325HBAA7') + icn('.fav_icn', pre + 'T0MlJq7o4X7dQ+skFJsiyjAqCKKOJAgALLoxpInBpMzUM4D8frcbwGQHEGi1hTCh5puLxWWswAY0GLNGgdbVYE/hr5ZY/WXTDM2ojGo6sfC53RAAAOw==') + 'td.reply {width:auto} .pcount {font-size:13px;font-weight:bold;cursor:default;color:#4f7942} .pcountb {font-size:13px;font-weight:bold;cursor:default;color:#c41e3a} ';! if((ch._2ch && getCookie('wakabastyle') != 'Futaba') || ch._0ch) txt += '.postblock {background:#bbb} '; // gray postform color if(Cfg[39] == 1) txt += '.spoiler {background:#888 !important; color:#CCC !important} '; // open spoilers if(Cfg[25] == 1) txt += 'blockquote {max-height:100% !important; overflow:visible !important} '; // no scroller if(Cfg[6] == 1) txt += '.commentpostername, .postername, .postertrip {display:none}'; // no post names****************** 1073,1079 **** function getPost(node) { return !ch._0ch! ? $x('./ancestor::table', node) : $x('./ancestor::div[@class="postnode"]|./ancestor::table[@class="replypost"]', node); } --- 1119,1125 ---- function getPost(node) { return !ch._0ch! ? $x('./ancestor::table[@class="replypost"]', node) : $x('./ancestor::div[@class="postnode"]|./ancestor::table[@class="replypost"]', node); } ****************** 1271,1309 **** var w = sz[0] < maxw ? sz[0] : maxw; var h = w/r; $append(a, [! $attr(img.cloneNode(false), { 'id': 'pre_img', 'width': w, 'height': h,! 'style': 'display:block'}), $new('img', { 'class': 'thumb', 'id': 'full_img', 'src': a.href, 'width': w, 'height': h,! 'style': 'display:none'}, { 'load': function() {! $del($prev(this));! if(img.style.display == 'none') toggleDisp(this); }}) ]); } function expandHandleImg(post) {! if(post.Img) $event($up(post.Img, (ks ? 2 : 1)), {'click': function(e) {e.preventDefault(); expandImg(this, post)}}); } function allImgExpander() { if($X('.//img[@class="thumb"]', delform).snapshotLength <= 1) return; oPosts[0].appendChild($new('div', { 'id': 'expimgs_btn', 'style': 'cursor:pointer',! 'html': '[<a> </a>]'}, { 'click': function() { forPosts(function(post) {if(post.Img && post.Vis != HIDE) expandImg($up(post.Img), post)}); var btn = $id('expimgs_btn');! btn.innerHTML = //.test(btn.innerHTML) ? '[<a> </a>]' : '[<a> </a>]'; }})); } --- 1317,1359 ---- var w = sz[0] < maxw ? sz[0] : maxw; var h = w/r; $append(a, [! $if(Cfg[23] == 2, $attr(img.cloneNode(false), { 'id': 'pre_img', 'width': w, 'height': h,! 'style': 'display:block'})), $new('img', { 'class': 'thumb', 'id': 'full_img',+ 'alt': '...', 'src': a.href, 'width': w, 'height': h,! 'style': 'display:' + (Cfg[23] == 2 ? 'none' : 'block')}, { 'load': function() {! $del($x('.//img[@id="pre_img"]', $up(this)));! if(img.style.display == 'none') this.style.display = 'block'; }}) ]); } function expandHandleImg(post) {! if(post.Img) $event($up(post.Img, (ks ? 2 : 1)), {'click': function(e) {! if(Cfg[23] != 0) {e.preventDefault(); expandImg(this, post);! }}}); } function allImgExpander() { if($X('.//img[@class="thumb"]', delform).snapshotLength <= 1) return;+ var txt = '[<a> </a>]'; oPosts[0].appendChild($new('div', { 'id': 'expimgs_btn', 'style': 'cursor:pointer',! 'html': txt}, { 'click': function() { forPosts(function(post) {if(post.Img && post.Vis != HIDE) expandImg($up(post.Img), post)}); var btn = $id('expimgs_btn');! btn.innerHTML = //.test(btn.innerHTML) ? '[<a> </a>]' : txt; }})); } ****************** 1327,1336 **** var map = post ? $id('rfmap_' + rNum) : undefined; if(!map) { map = $new('small', {'id': 'rfmap_' + rNum, 'html': '<i><br>: ' + ref + '</i>'});! refPrewiev(map); var msg = postByNum[rNum].Msg; if(msg) $up(msg).appendChild(map);! } else refPrewiev($html(map.firstChild, map.firstChild.innerHTML + ', ' + ref)); } } --- 1377,1386 ---- var map = post ? $id('rfmap_' + rNum) : undefined; if(!map) { map = $new('small', {'id': 'rfmap_' + rNum, 'html': '<i><br>: ' + ref + '</i>'});! refPreview(map); var msg = postByNum[rNum].Msg; if(msg) $up(msg).appendChild(map);! } else refPreview($html(map.firstChild, map.firstChild.innerHTML + ', ' + ref)); } } ****************** 1356,1368 **** ' top:' + y + 'px;'}, { 'mouseout': function(e) { var el = $x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget);! if(!el) delPrewievClones(); else while(/pstprew/.test($next(el).id)) $del($next(el)); }}); var functor = function(clone, html) { clone.innerHTML = html; clone.Img = $x('.//img[@class="thumb"]', clone);! refPrewiev(clone); expandHandleImg(clone); }; if(b == board) var post = postByNum[pNum];--- 1406,1418 ---- ' top:' + y + 'px;'}, { 'mouseout': function(e) { var el = $x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget);! if(!el) delPreviewClones(); else while(/pstprew/.test($next(el).id)) $del($next(el)); }}); var functor = function(clone, html) { clone.innerHTML = html; clone.Img = $x('.//img[@class="thumb"]', clone);! refPreview(clone); expandHandleImg(clone); }; if(b == board) var post = postByNum[pNum];****************** 1382,1388 **** $before(ndelform, [clone]); } ! function refPrewiev(node) { $each($X('.//a[starts-with(text(),">>")]', node || delform), function(link) { if(ch.dc) { if(!nav.Opera) {if(link.getAttribute('onmouseover')) link.removeAttribute('onmouseover')}--- 1432,1438 ---- $before(ndelform, [clone]); } ! function refPreview(node) { $each($X('.//a[starts-with(text(),">>")]', node || delform), function(link) { if(ch.dc) { if(!nav.Opera) {if(link.getAttribute('onmouseover')) link.removeAttribute('onmouseover')}****************** 1392,1403 **** 'mouseover': doPostPreview, 'mouseout': function(e) { if(!$x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget))! delPrewievClones(); }}); }); } ! function delPrewievClones() { $each($X('.//div[starts-with(@id,"pstprew")]'), function(clone) {$del(clone)}); } --- 1442,1453 ---- 'mouseover': doPostPreview, 'mouseout': function(e) { if(!$x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget))! delPreviewClones(); }}); }); } ! function delPreviewClones() { $each($X('.//div[starts-with(@id,"pstprew")]'), function(clone) {$del(clone)}); } ****************** 1489,1496 **** if(post.Vis == HIDE) setPostVisib(post, HIDE); if(Cfg[12] == 1) mergeHidden(post); if(Cfg[15] == 1) refMap(post);! if(Cfg[23] == 1 && wk) expandHandleImg(post);! if(Cfg[26] == 1) refPrewiev(post.Msg); if(Cfg[27] == 1) addYouTube(post); if(Cfg[28] == 1) addMP3(post); }--- 1539,1546 ---- if(post.Vis == HIDE) setPostVisib(post, HIDE); if(Cfg[12] == 1) mergeHidden(post); if(Cfg[15] == 1) refMap(post);! if(Cfg[23] != 0 && wk) expandHandleImg(post);! if(Cfg[26] == 1) refPreview(post.Msg); if(Cfg[27] == 1) addYouTube(post); if(Cfg[28] == 1) addMP3(post); }****************** 1502,1508 **** var txt = ajaxPosts[tNum][post.Num]; post.Msg = $html(post.Msg, txt.substring(txt.indexOf('<blockquote') + 12, txt.lastIndexOf('</blockquote>'))); post.Text = getText(post.Msg);! if(Cfg[26] == 1) refPrewiev(post.Msg); if(Cfg[27] == 1) addYouTube(post); if(Cfg[28] == 1) addMP3(post); });--- 1552,1558 ---- var txt = ajaxPosts[tNum][post.Num]; post.Msg = $html(post.Msg, txt.substring(txt.indexOf('<blockquote') + 12, txt.lastIndexOf('</blockquote>'))); post.Text = getText(post.Msg);! if(Cfg[26] == 1) refPreview(post.Msg); if(Cfg[27] == 1) addYouTube(post); if(Cfg[28] == 1) addMP3(post); });****************** 1527,1532 ****--- 1577,1598 ---- }); } + function ajaxGetThread(parent, b, tNum, last) {+ AJAX('thr', b, tNum, function() {+ delChilds(parent);+ if(!ajaxPosts[tNum]) {alert(' '); return}+ addPostFunc(parent.appendChild(getNewPost(tNum, ajaxPosts[tNum][tNum], i)), tNum, 0, true);+ var len = ajaxPosts[tNum].keys.length;+ if(last != 1) last = len - last;+ if(last <= 0) last = 1;+ for(var i = last; i < len; i++) {+ var pNum = ajaxPosts[tNum].keys[i];+ addPostFunc(parent.appendChild(getNewPost(pNum, ajaxPosts[tNum][pNum], i)), pNum, i + 1, true);+ }+ if(!sav.cookie) storeHiddenPosts();+ });+ }+ function ajaxNewPosts() { var thread = $x('.//div[@class="thread"]'); var tNum = oPosts[0].Num;****************** 1661,1673 **** } else if(Cfg[13] == 1) unhideThread(post); } - function toggleSamePost(post, vis, expr, note) {- if(!expr) return;- $del($id('note_' + post.Num));- if(vis == UNHIDE) hidePost(post, note);- else unhidePost(post);- }- function storeHiddenPosts() { forPosts(function(post) {if(post.Vis == HIDE) setPostVisib(post, HIDE)}); storePostsVisib();--- 1727,1732 ----****************** 1977,2029 **** var j = words.length; while (j--) if((words[j] == origWords[i]) || (origWords[i].substring(0, 2) == '>>' && words[j].substring(0, 2) == '>>')) matchCount++; }! toggleSamePost(post, origVis, matchCount >= origLen*0.5 && words.length < origLen*2.5, ' same text as >>' + origPost.Num);! }! ! /*-------------------------Hide posts with similar images----------------------*/! ! function getPix(img, iw, ih) {! var cn = $new('canvas', {'width': iw, 'height': ih}).getContext('2d');! cn.drawImage(img, 0, 0);! return cn.getImageData(0, 0, iw, ih).data;! }! ! function hideBySameImage(post) {! var img = post.Img;! if(!img) {! toggleNoimage();! toggleChk($id('noimage_hider'));! return;! }! var iw = img.width, ih = img.height;! var iData = getPix(img, iw, ih);! for(var i = 0; i < ih; i += 10) ! for(var j = 0; j < iw; j += 10) {! var n = (i*4)*iw + (j*4);! var mix = Math.round((iData[n] + iData[n + 1] + iData[n + 2])*0.3333);! iData[n] = mix;! iData[n + 1] = mix;! iData[n + 2] = mix;! }! var vis = post.Vis;! forAll(function(target) {findSameImages(target, post, vis, iData)});! storeHiddenPosts();! }! ! function findSameImages(post, origPost, origVis, iData) {! var img = post.Img;! if(!img) return;! var matchCount = 0, count = 0;! var iw = img.width, ih = img.height;! var sData = getPix(img, iw, ih);! for(var i = 0; i < ih; i += 10) ! for(var j = 0; j < iw; j += 10) {! var n = (i*4)*iw + (j*4);! var mix = Math.round((sData[n] + sData[n + 1] + sData[n + 2])*0.3333);! if(iData[n] <= mix + 10 && iData[n] >= mix - 10) matchCount++;! count++;! }! toggleSamePost(post, origVis, matchCount/count >= 0.5, ' image as >>' + origPost.Num + ' (' + parseInt(matchCount/count*100) + '%)'); } --- 2036,2045 ---- var j = words.length; while (j--) if((words[j] == origWords[i]) || (origWords[i].substring(0, 2) == '>>' && words[j].substring(0, 2) == '>>')) matchCount++; }! if(!(matchCount >= origLen*0.5 && words.length < origLen*2.5)) return;! $del($id('note_' + post.Num));! if(origVis != HIDE) hidePost(post, ' same text as >>' + origPost.Num);! else unhidePost(post); } ****************** 2055,2074 **** else applyPostVisib(post, UNHIDE); } - function detectWipe_longColumn(txt) {- var n = 0;- var rows = txt.split('\n');- var len = rows.length;- for(var i = 0; i < len; i++) {- if(rows[i].length < 9) n++;- else return null;- }- if(len > 45) return 'long text x' + len;- if(n > 5) return 'columns x' + n;- return null;- }- function detectWipe_sameLines(txt) { var lines = txt.replace(/(> )/g, '').split('\n'); var len = lines.length; if(len < 5) return null;--- 2071,2078 ---- else applyPostVisib(post, UNHIDE); } function detectWipe_sameLines(txt) {+ if(Cfg[42] == 0) return null; var lines = txt.replace(/(> )/g, '').split('\n'); var len = lines.length; if(len < 5) return null;****************** 2082,2087 ****--- 2086,2092 ---- } function detectWipe_sameWords(txt) {+ if(Cfg[43] == 0) return null; txt = txt.replace(/[\.\?\!,>]/g, ' ').replace(/\s+/g, ' ').toUpperCase(); var words = txt.split(' '); var len = words.length;****************** 2103,2109 ****--- 2108,2140 ---- return null; } + function detectWipe_specSymbols(txt) {+ if(Cfg[44] == 0) return null;+ txt = txt.replace(/\s+/g, '');+ var all = txt; + txt = txt.replace(/[0-9A-Za-z--\.\?!,]/g, '');+ var proc = txt.length/all.length;+ if(all.length > 30 && proc > 0.40)+ return 'specsymbols: ' + parseInt(proc*100) + '%';+ return null;+ }+ + function detectWipe_longColumn(txt) {+ if(Cfg[45] == 0) return null;+ var n = 0;+ var rows = txt.split('\n');+ var len = rows.length;+ for(var i = 0; i < len; i++) {+ if(rows[i].length < 9) n++;+ else return null;+ }+ if(len > 45) return 'long text x' + len;+ if(n > 5) return 'columns x' + n;+ return null;+ }+ function detectWipe_longWords(txt) {+ if(Cfg[46] == 0) return null; txt = txt.replace(/http:\/\/.*?(\s|$)/g, '').replace(/[\.\?!,>:;-]/g, ' ').replace(/\s+/g, ' '); var words = txt.split(' '); var n = 0, all = '', lng = '';****************** 2118,2124 ****--- 2149,2165 ---- return null; } + function detectWipe_numbers(txt) {+ if(Cfg[47] == 0) return null;+ txt = txt.replace(/\s+/g, ' ').replace(/(>>)(\d+)/g, '').replace(/http:\/\/.*?(\s|$)/g, '');+ var len = txt.length;+ var proc = (len - txt.replace(/[0-9]/g, '').length)/len;+ if(len > 30 && proc > 0.4) return 'numbers: ' + parseInt(proc*100) + '%';+ return null;+ }+ function detectWipe_caseWords(txt) {+ if(Cfg[48] == 0) return null; txt = txt.replace(/[\.\?!,-]/g, ' ').replace(/\s+/g, ' '); var words = txt.split(' '); var len = words.length;****************** 2149,2172 **** return null; } - function detectWipe_specSymbols(txt) {- txt = txt.replace(/\s+/g, '');- var all = txt; - txt = txt.replace(/[0-9A-Za-z--\.\?!,]/g, '');- var proc = txt.length/all.length;- if(all.length > 30 && proc > 0.40)- return 'specsymbols: ' + parseInt(proc*100) + '%';- return null;- }- - function detectWipe_numbers(txt) {- txt = txt.replace(/\s+/g, ' ').replace(/(>>)(\d+)/g, '').replace(/http:\/\/.*?(\s|$)/g, '');- var len = txt.length;- var proc = (len - txt.replace(/[0-9]/g, '').length)/len;- if(len > 30 && proc > 0.4) return 'numbers: ' + parseInt(proc*100) + '%';- return null;- }- /*============================================================================= INITIALIZATION--- 2190,2195 ----****************** 2348,2354 **** addControls(); Log('addControls'); forAll(addPostButtons); Log('addPostButtons'); if(Cfg[26] == 1) {! refPrewiev(); Log('refPrewiev')} if(Cfg[15] == 1) { refMap(); Log('refMap')} forAll(doPostFilters); Log('doPostFilters');--- 2371,2377 ---- addControls(); Log('addControls'); forAll(addPostButtons); Log('addPostButtons'); if(Cfg[26] == 1) {! refPreview(); Log('refPreview')} if(Cfg[15] == 1) { refMap(); Log('refMap')} forAll(doPostFilters); Log('doPostFilters');****************** 2358,2364 **** initNewPosts(); Log('initNewPosts')} if(Cfg[12] == 1) { forPosts(mergeHidden); Log('mergeHidden')}! if(Cfg[23] == 1 && wk) { forAll(expandHandleImg); Log('expandHandleImg')} if(Cfg[24] == 1 && main && wk) { forAll(ajaxExpandPost); Log('ajaxExpandPost')}--- 2381,2387 ---- initNewPosts(); Log('initNewPosts')} if(Cfg[12] == 1) { forPosts(mergeHidden); Log('mergeHidden')}! if(Cfg[23] != 0 && wk) { forAll(expandHandleImg); Log('expandHandleImg')} if(Cfg[24] == 1 && main && wk) { forAll(ajaxExpandPost); Log('ajaxExpandPost')}