Difference between revisions of "User:CRLF/common.js"
(gah) |
(add) |
||
Line 1: | Line 1: | ||
− | function rvt( undop, undoafterp ) { | + | function rvt( undop, undoafterp, c ) { // Implements one-click undo |
$.ajax({ | $.ajax({ | ||
url: 'https://www.explainxkcd.com/wiki/api.php', | url: 'https://www.explainxkcd.com/wiki/api.php', | ||
Line 12: | Line 12: | ||
}, | }, | ||
dataType: 'json', | dataType: 'json', | ||
− | type: 'POST' | + | type: 'POST', |
+ | success: function() {if(c){$('.mw-diff-undo > a').text("success");}else{$('#link'+undop).text("success");}} | ||
}); | }); | ||
} | } | ||
+ | |||
var href = $('.mw-diff-undo > a').attr('href').split("="); | var href = $('.mw-diff-undo > a').attr('href').split("="); | ||
var undop = href[4]; | var undop = href[4]; | ||
var undoafterp = href[3].substr(0,href[3].length-5); | var undoafterp = href[3].substr(0,href[3].length-5); | ||
$('.mw-diff-undo > a').removeAttr('href'); | $('.mw-diff-undo > a').removeAttr('href'); | ||
− | $('.mw-diff-undo > a').attr('onclick','rvt('+undop+','+undoafterp+')'); | + | $('.mw-diff-undo > a').attr('onclick','rvt('+undop+','+undoafterp+',1)'); |
+ | |||
+ | function lastTwoRevs(page){ // Implements undo links on contribs page | ||
+ | $.ajax({ | ||
+ | url: 'https://www.explainxkcd.com/wiki/api.php', | ||
+ | type:'GET', | ||
+ | dataType:'json', | ||
+ | data:{action: 'query', prop:'revisions',titles:page,rvprop:'ids',formatversion:2}) | ||
+ | success: function(data) { | ||
+ | return {'u': data["query"]["pages"][0]["revisions"][0]["revid"], 'a': data["query"]["pages"][0]["revisions"][0]["parentid"]} | ||
+ | }}) | ||
+ | } | ||
+ | |||
+ | for (var i in $('mw-contributions-title')){ | ||
+ | var title = i.attr("title"); | ||
+ | var res = lastTwoRevs(title); | ||
+ | $('<a id="link'+res[u]+'" onclick="rvt('+res[u]+','+res[a]+',0)">[rvt]</a>').insertAfter(i);} |
Revision as of 02:04, 21 May 2022
function rvt( undop, undoafterp, c ) { // Implements one-click undo $.ajax({ url: 'https://www.explainxkcd.com/wiki/api.php', data: { format: 'json', action: 'edit', title: $("#firstHeading").text().substr(33,$("#firstHeading").text().length-34), undo: undop, undoafter: undoafterp, summary: "Reverted vandalism with [[User:CRLF/common.js]]", token: mw.user.tokens.get( 'csrfToken' ) }, dataType: 'json', type: 'POST', success: function() {if(c){$('.mw-diff-undo > a').text("success");}else{$('#link'+undop).text("success");}} }); } var href = $('.mw-diff-undo > a').attr('href').split("="); var undop = href[4]; var undoafterp = href[3].substr(0,href[3].length-5); $('.mw-diff-undo > a').removeAttr('href'); $('.mw-diff-undo > a').attr('onclick','rvt('+undop+','+undoafterp+',1)'); function lastTwoRevs(page){ // Implements undo links on contribs page $.ajax({ url: 'https://www.explainxkcd.com/wiki/api.php', type:'GET', dataType:'json', data:{action: 'query', prop:'revisions',titles:page,rvprop:'ids',formatversion:2}) success: function(data) { return {'u': data["query"]["pages"][0]["revisions"][0]["revid"], 'a': data["query"]["pages"][0]["revisions"][0]["parentid"]} }}) } for (var i in $('mw-contributions-title')){ var title = i.attr("title"); var res = lastTwoRevs(title); $('<a id="link'+res[u]+'" onclick="rvt('+res[u]+','+res[a]+',0)">[rvt]</a>').insertAfter(i);}