User:CRLF/common.js

Explain xkcd: It's 'cause you're dumb.
< User:CRLF
Revision as of 02:04, 21 May 2022 by CRLF (talk | contribs) (add)
Jump to: navigation, search
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);}