MediaWiki:Gadget-revisionjumper.js: Difference between revisions
MediaWiki:Gadget-revisionjumper.js (view source)
Revision as of 21:12, September 3, 2020
, 3 years agono edit summary
Johnrdorazio (talk | contribs) No edit summary |
Johnrdorazio (talk | contribs) No edit summary |
||
Line 143: | Line 143: | ||
} | } | ||
function makeRequest(method, url) { | |||
return new Promise(function (resolve, reject) { | |||
let xhr = new XMLHttpRequest(); | |||
xhr.open(method, url); | |||
xhr.onload = function () { | |||
if (this.status >= 200 && this.status < 300) { | |||
resolve(xhr.response); | |||
} else { | |||
reject({ | |||
status: this.status, | |||
statusText: xhr.statusText | |||
}); | |||
} | |||
}; | |||
xhr.onerror = function () { | |||
reject({ | |||
status: this.status, | |||
statusText: xhr.statusText | |||
}); | |||
}; | |||
xhr.send(); | |||
}); | |||
} | |||
// get URL parameters (used for page type variables) | // get URL parameters (used for page type variables) | ||
Line 171: | Line 183: | ||
} | } | ||
function addrevisionjumper(){ | async function addrevisionjumper(){ | ||
if ((mw.config.get('wgCanonicalNamespace') != 'Special') && (mw.config.get('wgPageName') != 'Wikipedia:Vandalismusmeldung')) { | if ((mw.config.get('wgCanonicalNamespace') != 'Special') && (mw.config.get('wgPageName') != 'Wikipedia:Vandalismusmeldung')) { | ||
for(j=0;j<2;j++){ | for(j=0;j<2;j++){ | ||
Line 183: | Line 195: | ||
if (rightuser) { rightuser = rightuser.getElementsByTagName('a')[0].innerHTML; } else { rightuser = ''; } | if (rightuser) { rightuser = rightuser.getElementsByTagName('a')[0].innerHTML; } else { rightuser = ''; } | ||
} else if (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) { | } else if (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) { | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
let req10 = await makeRequest("GET", text); | |||
var firstrevision = req10.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'); | |||
if(mw.config.get('wgCurRevisionId')!=firstrevision) difflink[0] = document.getElementById('firstHeading'); | if(mw.config.get('wgCurRevisionId')!=firstrevision) difflink[0] = document.getElementById('firstHeading'); | ||
} else if (mw.config.get('wgAction') == 'history' && displayonhistory) { | } else if (mw.config.get('wgAction') == 'history' && displayonhistory) { | ||
Line 242: | Line 250: | ||
var text8 = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | var text8 = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | ||
let req8 = makeRequest("GET", text); | |||
continuereq8(req8.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'), nextrevision, difflink, j, newline); | |||
} | } | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | ||
let req4 = makeRequest("GET", text); | |||
continuereq4(req4.responseXML.getElementsByTagName("rev"), tempposition, tempnumber, templine); | |||
} | } | ||
if(tempnumber==0 && (leftuser==rightuser) && !disablepenultimateeditor){ | if(tempnumber==0 && (leftuser==rightuser) && !disablepenultimateeditor){ | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | ||
req19 | let req19 = makeRequest("GET", text); | ||
var thisrevision = req19.responseXML.getElementsByTagName("rev"); | var thisrevision = req19.responseXML.getElementsByTagName("rev"); | ||
var thisrevisionlength = thisrevision.length; | var thisrevisionlength = thisrevision.length; | ||
Line 281: | Line 273: | ||
nextrevision2 = thisrevision[l].getAttribute('revid'); | nextrevision2 = thisrevision[l].getAttribute('revid'); | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
let req9 = makeRequest("GET", text); | |||
var firstrevision = req9.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'); | |||
var changessincemylasteditid = document.getElementById('changessincemylastedit'); | var changessincemylasteditid = document.getElementById('changessincemylastedit'); | ||
Line 310: | Line 298: | ||
} | } | ||
} | } | ||
} | } | ||
if (UrlParameters["diff"]) { | if (UrlParameters["diff"]) { | ||
Line 381: | Line 368: | ||
} | } | ||
} | } | ||
if ( (UrlParameters["diff"] && !disabledisplayondiff) || (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) || (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) || (mw.config.get('wgAction') == 'history' && displayonhistory) ) $(addrevisionjumper); | if ( (UrlParameters["diff"] && !disabledisplayondiff) || (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) || (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) || (mw.config.get('wgAction') == 'history' && displayonhistory) ) $(addrevisionjumper); | ||
function movetodiff(type){ | async function movetodiff(type){ | ||
var handt = numberrevisionjumperlength+timerevisionjumperlength; | var handt = numberrevisionjumperlength+timerevisionjumperlength; | ||
for (i=0;i<(handt+4);i++) { | for (i=0;i<(handt+4);i++) { | ||
Line 418: | Line 406: | ||
anothercurrentid = RegExp.$1; | anothercurrentid = RegExp.$1; | ||
} | } | ||
if(UrlParameters["diff"]) { | if(UrlParameters["diff"]) { | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+anothercurrentid+'&rvlimit='+revisionlimit+'&rvprop=ids&rvdir='+direction; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+anothercurrentid+'&rvlimit='+revisionlimit+'&rvprop=ids&rvdir='+direction; | ||
Line 424: | Line 411: | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+currentid+'&rvlimit='+(parseInt(revisionlimit)+1)+'&rvprop=ids&rvdir='+direction; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+currentid+'&rvlimit='+(parseInt(revisionlimit)+1)+'&rvprop=ids&rvdir='+direction; | ||
} | } | ||
req | let req = makeRequest("GET", text); | ||
var firstrevision = req.responseXML.getElementsByTagName("rev"); | var firstrevision = req.responseXML.getElementsByTagName("rev"); | ||
firstrevision = firstrevision[firstrevision.length-1].getAttribute('revid'); | firstrevision = firstrevision[firstrevision.length-1].getAttribute('revid'); | ||
Line 434: | Line 420: | ||
else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+firstrevision+'&oldid='+currentid; | else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+firstrevision+'&oldid='+currentid; | ||
} | } | ||
} else if ((i>=numberrevisionjumperlength && i<=handt)|| i==(handt+1)) { | } else if ((i>=numberrevisionjumperlength && i<=handt)|| i==(handt+1)) { | ||
if(UrlParameters["diff"]) { | if(UrlParameters["diff"]) { | ||
Line 457: | Line 442: | ||
var permanentid = currentid; | var permanentid = currentid; | ||
} | } | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvstartid='+currentid+'&rvprop=timestamp&rvdir=older'; | |||
let req = makeRequest("GET", text); | |||
var lasttimestamp = req.responseXML.getElementsByTagName("rev")[0].getAttribute('timestamp'); | var lasttimestamp = req.responseXML.getElementsByTagName("rev")[0].getAttribute('timestamp'); | ||
var lastminute = lasttimestamp.match(/([^\-]*)\-([^\-]*)\-([^T]*)T([^\:]*)\:([^\:]*)\:([^Z]*)Z/); | var lastminute = lasttimestamp.match(/([^\-]*)\-([^\-]*)\-([^T]*)T([^\:]*)\:([^\:]*)\:([^Z]*)Z/); | ||
Line 563: | Line 546: | ||
if (newsecond < 10) { newsecond = "0" + newsecond; } | if (newsecond < 10) { newsecond = "0" + newsecond; } | ||
var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime; | |||
let req2 = makeRequest("GET", text); | |||
var lastrevision = req2.responseXML.getElementsByTagName("rev")[0]; | var lastrevision = req2.responseXML.getElementsByTagName("rev")[0]; | ||
if(!lastrevision){ | if(!lastrevision){ | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | ||
req3 | let req3 = makeRequest("GET", text); | ||
var lastrevision = req3.responseXML.getElementsByTagName("rev")[0]; | var lastrevision = req3.responseXML.getElementsByTagName("rev")[0]; | ||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { | ||
Line 583: | Line 560: | ||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | ||
} | } | ||
} else { | } else { | ||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { | ||
Line 597: | Line 573: | ||
} | } | ||
} | } | ||
} else if (i==(handt+2)) { | } else if (i==(handt+2)) { | ||
if(UrlParameters["diff"]) { | if(UrlParameters["diff"]) { | ||
Line 653: | Line 627: | ||
if (newsecond < 10) { newsecond = "0" + newsecond; } | if (newsecond < 10) { newsecond = "0" + newsecond; } | ||
var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime; | |||
let req6 = makeRequest("GET", text); | |||
var lastrevision = req6.responseXML.getElementsByTagName("rev")[0]; | var lastrevision = req6.responseXML.getElementsByTagName("rev")[0]; | ||
if(!lastrevision){ | if(!lastrevision){ | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | ||
req7 | let req7 = makeRequest("GET", text); | ||
var lastrevision = req7.responseXML.getElementsByTagName("rev")[0]; | var lastrevision = req7.responseXML.getElementsByTagName("rev")[0]; | ||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { | ||
Line 673: | Line 641: | ||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | ||
} | } | ||
} else { | } else { | ||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { | ||
Line 687: | Line 654: | ||
} | } | ||
} | } | ||
} else if (i==(handt+3)) { | } else if (i==(handt+3)) { | ||
if(UrlParameters["diff"]) { | if(UrlParameters["diff"]) { | ||
Line 705: | Line 671: | ||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | ||
let req = makeRequest("GET", text); | |||
continuereq(req.responseXML.getElementsByTagName("rev")[0].getAttribute('revid')); | |||
function continuereq(firstrevision) { | function continuereq(firstrevision) { | ||