Suka colek teman atau orang lain di Facebook ? Ternyata kita bisa dengan otomatis melakukan colek/Auto Poke kepada akun Facebook orang lain. Trik ini akan kita coba dengan menggunakan browser Google Chrome. Perlu diperhatikan bahwa Auto Poke ini menggunakan jQuery, yang diambil dari Google API. Fitur ini cukup aman digunakan karena memiliki delay waktu 30 detik untuk setiap "colekan" (poke) 10 akun Facebook.
Simak caranya dibawah ini:
- Login ke akun Facebook Anda dengan menggunakan browser Google Chrome
- Setelah login, tekan tombol CTRL+SHIFT+J
- Copy dan paste-kan code di bawah ini, lalu tekan ENTERvar DaT={settings:{noUserEdit:{intervalMin:100},pokeAllFriends:{pokesAtATime:10,timeDelay:3E4},shortDataRetry:5E3,intervalConstraints:{min:5E3,max:3E4},autoScroll:!0,showPrevInt:!1,showRawOutput:!1},error:{shortDataCount:0},dConsole:{cWindow:null,cWindowOpen:function(){DaT.dConsole.cWindow=window.open("about:blank","DaTAutopokeConsole","height=600,width=800,menubar=0,resizable=1,toolbar=0");DaT.dConsole.cWindow.document.write('<!DOCTYPE HTML>\n<html><head><title>Autopoke Console | Cyber4rt.com</title><style type="text/css">code{background:#FFF;color:#000;padding:10px}.showHideNext+*{display:none}#displayArea{background:#000;color:#FFF;margin:0;padding:10px;font-family:monospace;white-space:pre-wrap}</style></head><body><div id="displayArea"></div><button type="button" onclick="window.close()">Close</button></body></html>');
DaT.dConsole.displayTextOld[DaT.dConsole.displayTextOld.length]=DaT.dConsole.displayText;DaT.dConsole.displayText="";DaT.dConsole.cLog("-->Log created.\n")},displayArea:null,displayText:"",displayTextOld:[],cLog:function(a){(!DaT.dConsole.cWindow||DaT.dConsole.cWindow.closed)&&DaT.dConsole.cWindowOpen();DaT.dConsole.displayText+="<\!--"+String(new Date)+"--\>"+a;DaT.dConsole.displayArea=DaT.dConsole.cWindow.document.getElementById("displayArea");DaT.dConsole.displayArea.innerHTML=DaT.dConsole.displayText;
DaT.dConsole.displayArea.parent||DaT.dConsole.cWindow.document.body.appendChild(DaT.dConsole.displayArea);return a},showHideNext:function(a){a=a?" "+a:"";this.toggleScript||(this.toggleScript=DaT.escapeHtml('this.nextElementSibling.style.display = (this.nextElementSibling.style.display ? "" : "block");'));return'<a class="showHideNext" href="#" onclick="'+this.toggleScript+'">Show'+a+"</a>"}}};try{DocumentTitle.set("Autopoke Loading")}catch(e$$10){document.title="Autopoke Loading"}DaT.dConsole.cLog("Defining support routines... ");
DaT.loadSettings=function(){DaT.dConsole.cLog("\nChecking local storage for stored settings... ");if(localStorage&&(localStorage.DaTintervalConstraintsMax&&(DaT.settings.intervalConstraints.max=parseInt(localStorage.DaTintervalConstraintsMax),DaT.dConsole.cLog("DaTintervalConstraintsMax "),delete localStorage.DaTintervalConstraintsMax),localStorage.DaTintervalConstraintsMin&&(DaT.settings.intervalConstraints.min=parseInt(localStorage.DaTintervalConstraintsMin),DaT.dConsole.cLog("DaTintervalConstraintsMin "),
delete localStorage.DaTintervalConstraintsMin),localStorage.DaTfbAPsettings))DaT.settings=jQuery.extend(DaT.settings,jQuery.parseJSON(localStorage.DaTfbAPsettings));DaT.dConsole.cLog("done. ")};DaT.dConsole.cLog("loadSettings ");DaT.saveSettings=function(){try{return localStorage.DaTfbAPsettings=jQuery.stringifyJSON(DaT.settings),!0}catch(a){return console.error(a.message),!1}};DaT.dConsole.cLog("saveSettings ");DaT.deleteSettings=function(){delete localStorage.DaTfbAPsettings};DaT.dConsole.cLog("deleteSettings ");
DaT.escapeHtml=function(a){return a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\"/g,""").replace(/\'/g,"'")};DaT.dConsole.cLog("escapeHtml ");DaT.padString=function(a,c,b,d){"undefined"===typeof b&&(b=" ");"undefined"===typeof d&&(d=!0);a=String(a);if(d)for(;a.length<c;)a=b+a;else for(;a.length<c;)a+=b;return a};DaT.dConsole.cLog("padString ");
DaT.formatDate=function(a){return a.getFullYear()+"-"+DaT.padString(a.getMonth()+1,2,"0")+"-"+DaT.padString(a.getDate(),2,"0")+" "+DaT.padString(12<a.getHours()?a.getHours()%12:a.getHours(),2,"0")+":"+DaT.padString(a.getMinutes(),2,"0")+":"+DaT.padString(a.getSeconds(),2,"0")+" GMT-"+DaT.padString(a.getTimezoneOffset()/60,2,"0")+":00"};DaT.dConsole.cLog("formatDate ");
Array.prototype.average=function(){var a=0,c=0,b;for(b in this)this.hasOwnProperty(b)&&(a+=Number(this[b]),c++);a/=c;return isNaN(a)?0:a};DaT.dConsole.cLog("Array.prototype.average ...done defining.\nDefining main structure... ");DaT.reboot=function(){window.auto_reset&&window.location.reload()};DaT.dConsole.cLog("reboot ");DaT.previousIntervalCalc=0;
DaT.pokeBack=function(){var a=new Date;DaT.returnDelays=[];DaT.pokeBack.callCounts++;DaT.startTime=new Date;DaT.running=!1;DaT.docTitleBlink&&DaT.docTitleBlink.stop&&DaT.docTitleBlink.stop();DaT.setDocumentHead();DaT.saveSettings();DaT.pokeIntervalElement.innerHTML=String(DaT.currentPokeTimeInterval=Math.round(DaT.pokeTimeIntervals.concat(new Date-DaT.lastPokeTime).average()-DaT.returnDelays.average()));DaT.currentPokeTimeInterval!==DaT.previousIntervalCalc&&(DaT.previousIntervalCalc=DaT.currentPokeTimeInterval,
DaT.pokeIntervalHistoryElement.innerHTML+='<span class="intervalHistoryItem">'+DaT.currentPokeTimeInterval+"</span> ");DaT.currentPokeTimeInterval<DaT.settings.intervalConstraints.min?(DaT.currentPokeTimeInterval=DaT.settings.intervalConstraints.min,DaT.pokeIntervalElement.innerHTML+="<"+DaT.settings.intervalConstraints.min):DaT.currentPokeTimeInterval>DaT.settings.intervalConstraints.max&&(DaT.currentPokeTimeInterval=DaT.settings.intervalConstraints.max,DaT.pokeIntervalElement.innerHTML+=">"+DaT.settings.intervalConstraints.max);
DaT.pokeIntervalElement.innerHTML+=" milliseconds";DaT.iterationTime.innerHTML=String(DaT.startTime);200<new Date-a&&(DaT.pokeIntervalHistoryElement.innerHTML=DaT.pokeIntervalHistoryElement.innerHTMLDefault+"[Cleared] ");DaT.lastRunResultElement.innerHTML="Another one is now running… ";jQuery([DaT.raw_outputElement,DaT.lastRunResultElement]).addClass("active");jQuery([DaT.raw_outputElement,DaT.lastRunResultElement]).removeClass("error");jQuery.ajax({type:"GET",url:"/pokes",data:{ajaxpipe:"1",
ajaxpipe_token:Env.ajaxpipe_token,"quickling[version]":Env.svn_rev+"%3B0",__user:Env.user},dataType:"text",timeout:DaT.currentPokeTimeInterval,success:function(a){var b;if(a.length<5E3){++DaT.error.shortDataCount>=5&&DaT.reboot();if(DaT.currentPokeTimeInterval>DaT.settings.shortDataRetry&&window.auto_reset){window.setTimeout(DaT.goNow,DaT.settings.shortDataRetry);DaT.countdown.counter=DaT.settings.shortDataRetry/1E3}}else DaT.error.shortDataCount=0;DaT.raw_outputElement.innerHTML=DaT.escapeHtml(a);
DaT.lastRunResultElement.innerHTML="The Poke page fetch succeeded in "+String(new Date-DaT.startTime)+" milliseconds. ";var a=a.match(/\{\"pagelet_pokes\"\:\".*?\"}/g),d;for(d in a)if(a.hasOwnProperty(d)){b=jQuery.parseJSON(a[d]);if(b.pagelet_pokes){b=jQuery('[id^="poke_"]',b.pagelet_pokes);b.each(DaT.pokeExecute(b.length));DaT.running=DaT.running||b.length!=0}}},error:function(){DaT.lastRunResultElement.innerHTML="The Poke page fetch failed. ";jQuery([DaT.raw_outputElement,DaT.lastRunResultElement]).addClass("error")},
complete:function(){jQuery([DaT.raw_outputElement,DaT.lastRunResultElement]).removeClass("active")}});clearTimeout(DaT.Autopoke_Reference);DaT.Autopoke_Reference=window.setTimeout(DaT.pokeBack,DaT.currentPokeTimeInterval);DaT.nameListWindow.document.getElementById("lastRunDuration").innerHTML="ran for a total of "+String(new Date-DaT.startTime)+" milliseconds";DaT.countdown.counter=DaT.currentPokeTimeInterval/1E3;a=0<DaT.nameListWindow.scrollMaxY&&DaT.nameListWindow.scrollY>=DaT.nameListWindow.scrollMaxY&&
1<DaT.pokeBack.callCounts;DaT.raw_outputElement.style.height=DaT.nameListWindow.innerHeight+"px";DaT.raw_outputElement.style.display=DaT.settings.showRawOutput?"":"none";DaT.pokeIntervalHistoryElement.style.display=DaT.settings.showPrevInt?"":"none";jQuery("#raw_output~*").remove();a&&DaT.nameListWindow.scrollTo(DaT.nameListWindow.scrollX,DaT.nameListWindow.scrollMaxY)};DaT.dConsole.cLog("pokeBack ");
DaT.pokeExecute=function(a){return function(c){var b=new Date,d=jQuery('[ajaxify^="/ajax/pokes/poke_inline.php?uid="]',this).attr("ajaxify").substring(32).replace("&pokeback=1",""),e=new Date(1E3*Number(jQuery("[data-utime]",this).attr("data-utime"))),f="[Error]",h=!(c>=a-1),g;isNaN(e.valueOf())&&(e=b);void 0==DaT.lastTimeForURL[d]?(f="First Time",g=1E3):(g=e-DaT.lastTimeForURL[d],f=g/1E3+" seconds",0!=g&&(DaT.pokeTimeIntervals=DaT.pokeTimeIntervals.concat(g)));500>g||(DaT.lastTimeForURL[d]=e,DaT.returnDelays=
DaT.returnDelays.concat(b-e),DaT.nameListElement.innerHTML+='<li id="poke_'+b.valueOf()+'" class="iStep_'+c+'"><span class="pokeURL" onclick="window.open("/profile.php?id='+d+'");">'+DaT.escapeHtml(jQuery(".pokeHeader a",this).html())+'</span> <span class="receive date">'+DaT.formatDate(e)+'</span> <span class="send date">'+DaT.formatDate(b)+'</span> <span class="pokeStatus">Poke Pending…</span> </li>',DaT.docTitleBlink&&DaT.docTitleBlink.stop&&DaT.docTitleBlink.stop(),DaT.docTitleBlink=
DocumentTitle.blink("Poked!"+(2<=c?" x"+(c+1):"")),DaT.settings.autoScroll&&DaT.nameListWindow.scrollBy(0,DaT.nameListWindow.document.getElementById("poke_"+b.valueOf()).offsetHeight),DaT.pokeUser(d,{success:function(a){DaT.nameListWindow.document.getElementById("poke_"+b.valueOf()).getElementsByClassName("pokeStatus")[0].innerHTML="<code>"+DaT.escapeHtml(a)+"</code> in "+String(new Date-b)+" milliseconds. "},error:function(){DaT.nameListWindow.document.getElementById("poke_"+b.valueOf()).getElementsByClassName("pokeStatus")[0].innerHTML=
"The poke failed after "+String(new Date-b)+" milliseconds. "},complete:function(){DaT.running=h;DaT.nameListWindow.document.getElementById("poke_"+b.valueOf()).innerHTML+='Since Last: <span class="timesince">'+f+"</span>"}}))}};DaT.dConsole.cLog("pokeExecute ");
DaT.pokeUser=function(a,c){jQuery.ajax(jQuery.extend({type:"POST",url:"/ajax/poke.php?__a=1",data:{__d:"1",__user:Env.user,fb_dtsg:Env.fb_dtsg,lsd:"","nctr[_mod]":"pagelet_pokes",opp:"",pk01:"Poke",pokeback:1,post_form_id:Env.post_form_id,post_form_id_source:"AsyncRequest",uid:a},dataType:"text"},c))};DaT.dConsole.cLog("pokeUser ");DaT.goNow=function(){DaT.reviveCounter();window.clearTimeout(DaT.Autopoke_Reference);DaT.pokeBack()};DaT.dConsole.cLog("goNow ");
DaT.halt=function(){window.clearTimeout(DaT.Autopoke_Reference);DaT.nameListWindow.clearInterval(DaT.countdown.timer)};DaT.dConsole.cLog("halt ");DaT.pokeBack.callCounts=0;DaT.lastTimeForURL=[];DaT.pokeTimeIntervals=[];DaT.returnDelays=[];DaT.lastPokeTime=new Date;DaT.nameListWindowTitle="Autopoke Log";DaT.currentPokeTimeInterval=DaT.settings.intervalConstraints.min;DaT.popupDefaultStyles='<style type="text/css">#winManage{text-align:right}h1{margin:15px 0 0;padding:0}</style>';DaT.running=!1;DaT.dConsole.cLog("[Variables] ");
DaT.reviveCounter=function(){DaT.nameListWindow.clearInterval(DaT.countdown.timer);DaT.countdown.timer=DaT.nameListWindow.setInterval(function(){DaT.countdown.display.innerHTML=String(DaT.countdown.counter--)+" second(s)";-2>DaT.countdown.counter&&DaT.reboot()},1E3)};DaT.dConsole.cLog("reviveCounter ");DaT.setDocumentHead=function(){DaT.nameListWindow.document.head.innerHTML="<style type=\"text/css\">\nbody{margin:10px;padding:0}p{max-width:800px;text-align:justify;font-family:'Berlin Sans FB',serif;font-size:17px;line-height:19px}h1{margin:0}.pokeStatus:before{content:'- ';font-style:normal;color:#F00}.pokeStatus{background:#FFF}.pokeStatus code{color:#FFF;display:inline-block;max-width:400px;overflow:hidden;background:#000 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAABCAMAAACrDw2AAAAAllBMVEUAAAAFBQUKCgoPDw8VFRUZGRkfHx8kJCQpKSkuLi4zMzM4ODg+Pj5CQkJISEhMTExSUlJXV1dcXFxhYWFmZmZra2twcHB1dXV7e3t/f3+FhYWKioqPj4+UlJSZmZmfn5+jo6Opqamurq6zs7O4uLi9vb3CwsLIyMjMzMzR0dHW1tbc3Nzh4eHm5ubr6+vx8fH19fX6+vqMR4IOAAAAO0lEQVR4XgUAAxKAQHDPyLbt+v/nGgCECWVcSKUN07Id1/ODMIqTNMuLsqqbtuuHcZqXdduP87qf9/sBUYwEynTDVdQAAAAASUVORK5CYII=') right top repeat-y}.pokeStatus code:before{display:inline;content:'Server Response ';font-family:serif;color:#0F0;padding-left:3px}.date{color:#888;font-style:italic}.pokeURL{color:#00F;border-bottom:1px dotted #00F;cursor:pointer;text-decoration:none}.intervalHistoryItem:after{content:',';}.intervalHistoryItem:last-child:after{content:'';}.iStep_0:after{color:#F00;content:' Iteration Start'}.active{color:#00F}.error{color:#F00}.alwaysOnTop{position:fixed;left:820px;background-color:rgba(255,255,255,.75);border:5px double #000}.date.receive{display:none}#misc_info{min-height:57px;}#lastRunTime{color:#0C0}#nameList{overflow-x:scroll;display:block;margin:0 -10px;padding-bottom:3px}#nameList>li{white-space:nowrap}#countdown_p{top:0px;font-size:40px;white-space:nowrap;padding:19px 3px}#previous_intervals{padding-bottom:1px;max-width:none}#manualControls{top:120px;max-width:400px}#raw_output{font-family:'Courier New',Consolas,monospace;font-size:50%;overflow:scroll;width:100%;margin:0 0 -10px}.fbPhotoSnowbox,.hidden_elem{display:none!important}\n</style>"};
DaT.dConsole.cLog("setDocumentHead ");
DaT.userControlPanelOpen=function(){var a=window.open("","DaTAutopokeControlPanel","height=320,width=420,menubar=0,resizable=1,toolbar=0");0>=a.document.body.children.length&&a.document.write("<!DOCTYPE HTML><html><head><title>Autopoke Settings</title>"+DaT.popupDefaultStyles+'<style type="text/css">#settings td:first-child{text-align:right}#settings td:last-child{text-align:left}</style></head><body><h1>Settings</h1><div id="settings"><table><tr><td>Refresh Maximum (Milliseconds)</td><td><input type="text" id="refreshMax" value="'+DaT.settings.intervalConstraints.max+
'"/></td></tr><tr><td>Refresh Minimum (Milliseconds)</td><td><input type="text" id="refreshMin" value="'+DaT.settings.intervalConstraints.min+'"/></td></tr><tr><td>Failure Retry Delay (Milliseconds)</td><td><input type="text" id="shortDataRetry" value="'+DaT.settings.shortDataRetry+'"/></td></tr><tr><td colspan="2"><input type="checkbox" id="autoScroll"'+(DaT.settings.autoScroll?' checked="checked"':"")+'/><label for="autoScroll">Automatically Scroll the Window as Pokes are Returned</label></td></tr><tr><td colspan="2"><input type="checkbox" id="showPrevInt"'+
(DaT.settings.showPrevInt?' checked="checked"':"")+'/><label for="showPrevInt">Show Previous Intervals</label></td></tr><tr><td colspan="2"><input type="checkbox" id="showRawOutput"'+(DaT.settings.showRawOutput?' checked="checked"':"")+'/><label for="showRawOutput">Show Pokes Page Source</label></td></tr><tr><td>Program State Dump</td><td><input type="button" value="Start" onclick="window.opener.DaT.programState(true,true);window.close();"/></td></tr><tr><td>Halt Timer</td><td><input type="button" value="Halt" onclick="window.opener.DaT.halt();alert("The timer has been halted.");window.close();"/></td></tr></table></div><div id="winManage"><button type="button" onclick="window.opener.DaT.userControlPanelSave(false);">OK</button><button type="button" onclick="window.close();">Cancel</button><button type="button" onclick="window.opener.DaT.userControlPanelSave(true);">Apply</button></div></body></html>');
DaT.userControlPanelSave=function(c){var b=!1,d=parseInt(a.document.getElementById("refreshMax").value),e=parseInt(a.document.getElementById("refreshMin").value),f=parseInt(a.document.getElementById("shortDataRetry").value);!isNaN(d)&&parseInt(d)==d&&!isNaN(e)&&parseInt(e)==e&&!isNaN(f)&&parseInt(f)==f?e<=d?e>=DaT.settings.noUserEdit.intervalMin?f>=DaT.settings.noUserEdit.intervalMin?b=!0:a.alert("The failure retry delay must be at least "+DaT.settings.noUserEdit.intervalMin+" milliseconds."):a.alert("The minimum refresh interval must be at least "+
DaT.settings.noUserEdit.intervalMin+" milliseconds."):a.alert("The minimum refresh interval is greater than the maximum."):a.alert("All time intervals must be integers. Real numbers are truncated.");b&&(DaT.settings.intervalConstraints.max=d,DaT.settings.intervalConstraints.min=e,DaT.settings.shortDataRetry=f,DaT.settings.autoScroll=a.document.getElementById("autoScroll").checked,DaT.settings.showPrevInt=a.document.getElementById("showPrevInt").checked,DaT.settings.showRawOutput=a.document.getElementById("showRawOutput").checked,
DaT.goNow(),c||a.close())}};DaT.dConsole.cLog("userControlPanelOpen ");
DaT.functionsToStrings=function(a){var c=jQuery.extend(!0,a instanceof Array?[]:{},a),a=a instanceof Array?[]:{};for(i in c)if(c.hasOwnProperty(i)&&null!=c[i])if(c[i].ELEMENT_NODE)a[i]=String(c[i]);else switch(c[i].constructor){case Function:a[i]=String(c[i]);break;case Date:a[i]=new Date(c[i].valueOf());break;case Array:case Object:a[i]=DaT.functionsToStrings(c[i]);break;case String:case Boolean:case Number:a[i]=c[i];break;default:a[i]=String(c[i])}return a};DaT.dConsole.cLog("functionsToStrings ");
DaT.programState=function(a,c){var b=jQuery.stringifyJSON(DaT.functionsToStrings(window));if(void 0==a||a)DaT.programStateSave||(DaT.programStateSave=document.createElement("script"),DaT.programStateSave.type="application/x-dat-program-state-save",document.body.appendChild(DaT.programStateSave)),DaT.programStateSave.textContent=b;c&&window.open().document.write(DaT.escapeHtml(b));return b};DaT.dConsole.cLog("programState ");
DaT.pokeAllFriendsCallback=function(a){return function(){var c,b,d;b=function(a){DaT.dConsole.cLog(this.name+" has been poked after "+(new Date-this.starttime)+" milliseconds. ");DaT.dConsole.cLog(DaT.dConsole.showHideNext("Server Response")+"<code>"+DaT.escapeHtml(a)+"</code>");DaT.dConsole.cLog("\n")};d=function(){DaT.dConsole.cLog(this.name+" could not be poked.\n")};for(c=0;c<a.length;c++)DaT.pokeUser(a[c].uid,{context:{name:a[c].text,starttime:new Date},success:b,error:d})}};DaT.dConsole.cLog("pokeAllFriendsCallback ");
DaT.pokeAllFriends=function(a){a?(DaT.startTime=new Date,DaT.dConsole.cLog("The Automatic Facebook Poke Returner will now poke every one of your Facebook friends.\nThere will be a "+DaT.settings.pokeAllFriends.timeDelay/1E3+" second pause between each group of "+DaT.settings.pokeAllFriends.pokesAtATime+" friends.\n"),DaT.dConsole.cLog("Getting Friends List... "),jQuery.ajax({type:"GET",url:"/ajax/typeahead/search/bootstrap.php",data:{__a:"1",user:Env.user,viewer:Env.user,lazy:"0",token:"v7","filter[0]":"user",
"options[0]":"friends_only"},dataType:"text",success:function(a){DaT.dConsole.cLog("success! ");DaT.dConsole.cLog(DaT.dConsole.showHideNext("Server Response")+"<code>"+DaT.escapeHtml(a)+"</code>");DaT.dConsole.cLog("\n");DaT.raw_outputElement.innerHTML=DaT.escapeHtml(a);jQuery([DaT.raw_outputElement,DaT.lastRunResultElement]).removeClass("active");DaT.lastRunResultElement.innerHTML="The friend list fetch succeeded in "+String(new Date-DaT.startTime)+" milliseconds. ";var b=jQuery.parseJSON(a.substring(9));
if(b.payload&&b.payload.entries)for(a=0;a*DaT.settings.pokeAllFriends.pokesAtATime<b.payload.entries.length;a++)window.setTimeout(DaT.pokeAllFriendsCallback(b.payload.entries.slice(a*DaT.settings.pokeAllFriends.pokesAtATime,a*DaT.settings.pokeAllFriends.pokesAtATime+DaT.settings.pokeAllFriends.pokesAtATime)),a*DaT.settings.pokeAllFriends.timeDelay+10)},error:function(){DaT.lastRunResultElement.innerHTML="The friend list fetch failed. ";DaT.dConsole.cLog("failure.\n")}})):window.open("about:blank",
"DaTAutopokePokeAllFriendsConfirm","height=250,width=528,menubar=0,resizable=1,toolbar=0").document.write("<!DOCTYPE HTML><html><head><title>Poke All Friends | Cyber4rt.com</title>"+DaT.popupDefaultStyles+"</head><body><h1>Poke All Friends | Cyber4rt.com</h1><p>This is a new feature and does not always work right. Sometimes, users who are not your friends are poked. If you have many friends, you may exceed the poke limit and Facebook will disable your ability to return pokes! Proceed at your own risk.</p><p>Are you really sure that you want to poke all of your Facebook friends? They will be poked in groups of "+
DaT.settings.pokeAllFriends.pokesAtATime+" in "+DaT.settings.pokeAllFriends.timeDelay/1E3+' second intervals.</p><div id="winManage"><button type="button" onclick="window.opener.DaT.pokeAllFriends(true);window.close();">I understand the risks. Go ahead and annoy all of my friends for me.</button><button type="button" onclick="window.close();">Cancel</button></div></body></html>')};DaT.dConsole.cLog("pokeAllFriends ");
DaT.ArbiterResponder=function(){console.log(["Arbiter Responder",DaT.running,new Date-DaT.ArbiterResponder.lastTime<DaT.settings.intervalConstraints.min,DaT.ArbiterResponder.waiting]);DaT.running||new Date-DaT.ArbiterResponder.lastTime<DaT.settings.intervalConstraints.min?DaT.ArbiterResponder.waiting||(window.setTimeout(DaT.ArbiterResponder,DaT.settings.intervalConstraints.min),DaT.ArbiterResponder.waiting=!0):(DaT.ArbiterResponder.lastTime=new Date,DaT.ArbiterResponder.waiting=!1,DaT.countdown.display.innerHTML=
"Notification",DaT.goNow())};DaT.ArbiterResponder.lastTime=new Date;DaT.ArbiterResponder.waiting=!1;DaT.dConsole.cLog("ArbiterResponder ");
DaT.boot=function(){DaT.dConsole.cLog("\nAutopoke bootloading... ");if("facebook.com"!=document.domain)alert("This is not Facebook!"),DaT.dConsole.cLog("This is not Facebook!");else if("undefined"==typeof Env)DaT.dConsole.cLog("Env is undefined."),window.setTimeout(DaT.boot,1E3);else{DaT.dConsole.cLog("\nIntervals cleared.\n");DaT.nameListWindow=window;DaT.nameListWindow.document.body.parentElement.id="Autopoke";DaT.setDocumentHead();DaT.nameListWindow.document.body.innerHTML='<h1>Autopoke Log</h1><p id="instructions">A list of the pokes received and returned will appear below. When the network action completes, the data returned and the duration of the action will be displayed after the two times. The last piece of data is a time interval that represents the time since the same person last poked you. </p><ol id="nameList"></ol><p id="misc_info">The current poke interval is <span id="currentPokeInterval">not defined</span>. The last iteration run started at <span id="lastRunTime">{Time}</span> and <span id="lastRunDuration">has not finished</span>. <span id="lastRunResult">Nothing has happened. </span></p><p id="countdown_p" class="alwaysOnTop">Countdown: <span id="countdown">Not Initialized</span></p><div id="manualControls" class="alwaysOnTop"><button type="button" onclick="DaT.goNow()">Load Poke List Now</button><button type="button" onclick="DaT.pokeAllFriends()">Poke All Friends</button><button type="button" onclick="DaT.userControlPanelOpen()">Settings</button><a href="http://blog.cyber4rt.com"><button>Cyber4rt.com</button></a></div><p id="previous_intervals" onclick="this.style.maxHeight=this.style.maxHeight?this.style.overflowY="":(this.style.overflowY="scroll","209px");">Previous Intervals: </p>\r\n<div id="raw_output"></div>';
DaT.dConsole.cLog("Autopoke Log displayed.\n");try{window.DocumentTitle=window.require("DocumentTitle"),DocumentTitle.set("Autopoke Log"),DaT.dConsole.cLog("Document title set.\n")}catch(a){DaT.dConsole.cLog("Whoops, could not set document title: "+a.message+"\n"),alert("Whoa! Facebook has, apparently, changed its document title system. ")}DaT.nameListElement=DaT.nameListWindow.document.getElementById("nameList");DaT.iterationTime=DaT.nameListWindow.document.getElementById("lastRunTime");DaT.raw_outputElement=
DaT.nameListWindow.document.getElementById("raw_output");DaT.lastRunResultElement=DaT.nameListWindow.document.getElementById("lastRunResult");DaT.pokeIntervalElement=DaT.nameListWindow.document.getElementById("currentPokeInterval");DaT.pokeIntervalHistoryElement=DaT.nameListWindow.document.getElementById("previous_intervals");DaT.dConsole.cLog("Autopoke Log element references defined.\n");DaT.pokeIntervalHistoryElement.innerHTMLDefault=DaT.pokeIntervalHistoryElement.innerHTML;DaT.dConsole.cLog("Control defaults saved.\n");
DaT.countdown={counter:DaT.currentPokeTimeInterval,display:DaT.nameListWindow.document.getElementById("countdown")};DaT.dConsole.cLog("Countdown display defined.\n");DaT.reviveCounter();DaT.dConsole.cLog("Countdown display started.\n");DaT.pokeBack();window.scrollTo(0,0);DaT.dConsole.cLog("Bootloading has completed. ");DaT.dConsole.cLog("You may close this window, or it will automatically close in five seconds.\n");window.setTimeout(function(){DaT.dConsole.cWindow.close();Arbiter.subscribe("channel/message:live_poke",
DaT.ArbiterResponder)},5E3)}};DaT.dConsole.cLog("boot ");
DaT.d_com=function(){DaT.dConsole.cLog("jQuery loaded.\nExtending jQuery for JSON stringify... ");jQuery.extend({stringifyJSON:function(a){if(window.JSON&&window.JSON.stringify)return JSON.stringify(a);var c=typeof a;if("object"!=c||null===a)return"string"==c&&(a='"'+a+'"'),String(a);var b,d,e=[],f=a&&a.constructor==Array;for(b in a)d=a[b],c=typeof d,a.hasOwnProperty(b)&&("string"==c?d='"'+d.replace(/\\/g,"\\\\").replace(/\"/g,'\\"').replace(/\r\n/g,"\\n").replace(/\r/g,"\\n").replace(/\n/g,"\\n").replace(/\t/g,
"\\t")+'"':"object"==c&&null!==d&&(d=jQuery.stringifyJSON(d)),e.push((f?"":'"'+b+'":')+String(d)));return(f?"[":"{")+String(e)+(f?"]":"}")}});DaT.dConsole.cLog("done.");DaT.loadSettings();DaT.boot()};DaT.dConsole.cLog("d_com ...done defining.\nLoading jQuery... ");DaT.d_jqs=document.createElement("script");DaT.d_jqs.src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js";DaT.d_jqs.type="text/javascript";document.head.appendChild(DaT.d_jqs);DaT.d_jqs.onload=DaT.d_com;
DaT.d_jqs.onreadystatechange=function(){"complete"==this.readyState&&DaT.d_com()};klik gambar untuk memperbesar - Pilih Poke All Friends, lalu pilih I understand the risks... Lihat gambar.
- Jika berhasil, maka akan muncul pop up window seperti ini:
Sumber:blog.cyber4rt.com
0 Comments and Thoughs for "Auto Poke Facebook"