Monchoman45

MagicRollbacks

Feb 9th, 2012
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* rollback without rights */
  2. importScriptPage('MediaWiki:APIQuery.js', 'monchbox');
  3. function MagicRollbacks() {
  4.     var list = document.getElementById(skin == 'oasis' ? 'WikiaArticle' : 'bodyContent').getElementsByTagName('li');
  5.     var api = new APIQuery();
  6.     var used = {};
  7.     for(var i = 0; i < list.length; i++) {
  8.         var as = list[i].getElementsByTagName('a');
  9.         if(!used[as[0].title]) {
  10.             list[i].innerHTML += ' <span class="mw-rollback-link">[<a href="#" onclick="Rollback(\'' + as[0].title + '\', \'' + as[3].innerHTML + '\'); this.innerHTML = decodeURIComponent(\'%3Cimg%20src%3D%22http%3A%2F%2Fimages2.wikia.nocookie.net%2Fdev%2Fimages%2F8%2F82%2FFacebook_throbber.gif%22%3E\'); return false;">rollback</a>]</span>';
  11.             used[as[0].title] = true;
  12.         }
  13.     }
  14. }
  15. addOnloadHook(MagicRollbacks);
  16.  
  17. function Rollback(page, user) {
  18.     api.send(new api.Query(api, 'GET', {action: 'query', prop: 'revisions', titles: page, rvlimit: '5000', indexpageids: 1}, function(result) {
  19.         var revs = result.query.pages[result.query.pageids[0]].revisions;
  20.         if(revs[0].user != user) {return;}
  21.         var i = 1;
  22.         while(revs[i].user == revs[0].user) {i++;}
  23.         api.send(new api.Query(api, 'POST', {action: 'edit', title: this.params.titles, undo: revs[i].revid, undoafter: revs[0].revid, summary: 'Reverted edits by [[User:' + revs[0].user + '|' + revs[0].user + ']] ([[User talk:' + revs[0].user + '|talk]] | [[Special:Contributions/' + revs[0].user + '|contribs]]) to last version by [[User:' + revs[i + 1].user + '|' + revs[i + 1].user + ']]'}, function(result) {
  24.             var el = (skin == 'oasis' ? '#WikiaArticle' : '#bodyContent');
  25.             $(el).load(location.href + ' ' + el + ' > *', function() { //stolen from AjaxRC
  26.                             MagicRollbacks();
  27.                         });
  28.         }));
  29.     }));
  30. }
Advertisement
Add Comment
Please, Sign In to add comment