|
Tags: Blanking Manual revert |
| Line 1: |
Line 1: |
| mw.loader.using(['mediawiki.api'],function(){
| | |
| if(!$('.build-layout-container .vote').length)return;
| |
| var api=new mw.Api(),title=mw.config.get('wgPageName')||'',THROTTLE=30,last=0;
| |
| function touch(){
| |
| var now=Date.now();if(now-last<THROTTLE*1000)return;last=now;
| |
| api.get({action:'query',prop:'revisions',rvprop:'content|timestamp',rvslots:'main',titles:title,format:'json'}).done(function(r){
| |
| var pages=r.query&&r.query.pages;if(!pages)return;var p=pages[Object.keys(pages)[0]];
| |
| if(!p||!p.revisions||!p.revisions.length)return;var rev=p.revisions[0];
| |
| var text=(rev.slots&&rev.slots.main&&rev.slots.main['*'])||rev['*']||'';var ts=rev.timestamp;
| |
| var m=/<!--\s*VOTE_TOUCH:\s*([^>]*)\s*-->/i;var d=new Date(),z=function(n){return n<10?'0'+n:n;};
| |
| var stamp=''+d.getUTCFullYear()+z(d.getUTCMonth()+1)+z(d.getUTCDate())+z(d.getUTCHours())+z(d.getUTCMinutes())+z(d.getUTCSeconds());
| |
| if(m.test(text))text=text.replace(m,'<!-- VOTE_TOUCH: '+stamp+' -->');else text+='\n<!-- VOTE_TOUCH: '+stamp+' -->\n';
| |
| api.postWithToken('csrf',{action:'edit',title:title,text:text,summary:'Refresh build votes (auto)',minor:1,bot:1,basetimestamp:ts});
| |
| });
| |
| }
| |
| var t=null,obs=new MutationObserver(function(){if(t)clearTimeout(t);t=setTimeout(touch,600);});
| |
| obs.observe(document.body,{childList:true,subtree:true,characterData:true});
| |
| });
| |