// ==UserScript== // @name AUTO DRFE // @namespace thesickthsense@gmail.com // @description Makes dailyrotten threads auto-update... refresh is obselete. // @include http://forums.dailyrotten.com/* // @author TSS // ==/UserScript== var xmlhttp,buffer='',append=false,updateTimer=0,updateSecs=0,updateAdj=30,pulseMod=0,pulseByte=0; function postClick(evt){if (evt.target.className!='mess') return;evt.target.style.backgroundColor="#FFFFFF";this.removeEventListener("click", function (event) postClick(event),false);} function update(){if (updateSecs<1){update_check();updateSecs=updateAdj;append=true;}else{updateSecs--;}} function update_check(){ var moded=xmlhttp_modified(document.location.href); if (moded!=pulseMod){ buffer=xmlhttp_buffer(pulseByte,'',document.location.href); update_extract(); buffer=''; pulseMod=moded; }else{ if (updateAdj<180) updateAdj=(updateAdj+15); updateSecs=updateAdj;}} function update_extract(){ var dA=0,dZ=0,dZ2=pulseByte; do{ dA=buffer.indexOf("
",dZ); if (dA!=-1){ dZ=buffer.indexOf("
",dA); if (dZ!=-1){ pulseByte=dZ2+dZ; if (append) update_append(buffer.substring(dA+18,dZ)); }else{break;} }else{break;} }while ((dZ!=-1)&&(dZ>dA)); updateAdj=30; updateSecs=updateAdj;} function update_append(content){ var post=document.createElement("div"); post.className='mess';post.innerHTML=content;post.style.backgroundColor="#ECF1EF"; post.addEventListener("click", function (event) postClick(event),false); anchordiv.parentNode.insertBefore(post,anchordiv);} function xmlhttp_buffer(start,stop,url){xmlhttp.open("GET",url,false);xmlhttp.setRequestHeader("RANGE","bytes="+start+"-"+stop);xmlhttp.send(null);return xmlhttp.responseText;} function xmlhttp_modified(url){xmlhttp.open("HEAD",url,false);xmlhttp.send("");return xmlhttp.getResponseHeader("Last-Modified");} function main(){ try{xmlhttp=new XMLHttpRequest;} catch (e) {return;} var divs=document.getElementsByTagName("div"); if (divs.length<=3) return; anchordiv=divs[divs.length-2]; var theClass=new Array(); theClass=document.styleSheets[0].cssRules; theClass[12].style.display='block'; theClass[12].style.overflow='hidden'; theClass[12].style.width='705px'; hsInt = setInterval(function(){update();},1000);} window.addEventListener("load",main,false);