3,554
edits
(Created page) |
(Updated script to most recent version.) |
||
Line 19: | Line 19: | ||
'How long to skip? [a = year; m = month; d = day; h = hour; all items optional -> "1h" only causes a jump of 1 hour in the selected direction]', | 'How long to skip? [a = year; m = month; d = day; h = hour; all items optional -> "1h" only causes a jump of 1 hour in the selected direction]', | ||
"What time to skip to? [syntax: year-month-day hour:minute; year-month-day possible as well -> thus 2007-12-31 shows the revision that has been available on New Year's Eve at 00:00]"); | "What time to skip to? [syntax: year-month-day hour:minute; year-month-day possible as well -> thus 2007-12-31 shows the revision that has been available on New Year's Eve at 00:00]"); | ||
// Version: 1.2.5 | |||
if(!getoldid) var getoldid = false; | if(!getoldid) var getoldid = false; | ||
if(!displayonview) var displayonview = false; | if(!displayonview) var displayonview = false; | ||
if(!displayonhistory) var displayonhistory = | if(!displayonhistory) var displayonhistory = false; | ||
if(!disabledisplayonpermalink) var disabledisplayonpermalink = false; | if(!disabledisplayonpermalink) var disabledisplayonpermalink = false; | ||
if(!disabledisplayondiff) var disabledisplayondiff = false; | if(!disabledisplayondiff) var disabledisplayondiff = false; | ||
if(!disablepenultimateeditor) var disablepenultimateeditor = false; | if(!disablepenultimateeditor) var disablepenultimateeditor = false; | ||
if(!disablechangessincemylastedit) var disablechangessincemylastedit = false; | if(!disablechangessincemylastedit) var disablechangessincemylastedit = false; | ||
if(!numberrevisionjumper) var numberrevisionjumper = new Array(" | if(!numberrevisionjumper) var numberrevisionjumper = new Array("10", "50", "150", "500"); | ||
if(!timerevisionjumper) var timerevisionjumper = new Array("1h", "4h", "12h", "3d", "7d", "1m", "3m", "1a", "2a"); | if(!timerevisionjumper) var timerevisionjumper = new Array("1h", "4h", "12h", "3d", "7d", "1m", "3m", "1a", "2a"); | ||
var diffoptionnames = new Array(); | var diffoptionnames = new Array(); | ||
Line 70: | Line 72: | ||
function addrevisionjumper(){ | function addrevisionjumper(){ | ||
if ( | if (wgCanonicalNamespace != 'Special') { | ||
for(j=0;j<2;j++){ | for(j=0;j<2;j++){ | ||
var difflink = new Array(); | var difflink = new Array(); | ||
Line 107: | Line 109: | ||
difflink[j].parentNode.insertBefore( newlink, difflink[j].nextSibling ); | difflink[j].parentNode.insertBefore( newlink, difflink[j].nextSibling ); | ||
if(!disablechangessincemylastedit && !document.getElementById('changessincemylastedit')) { | if(!disablechangessincemylastedit && !document.getElementById('changessincemylastedit')) { | ||
function continuereq4(thisrevisionreq4) { | |||
var thisrevisionlength = thisrevisionreq4.length; | |||
var thisrevisionlength = | |||
var l = 0; | var l = 0; | ||
while( | while(thisrevisionreq4[l]) { | ||
if( | if(thisrevisionreq4[l].getAttribute('user')!=wgUserName && l<(thisrevisionlength-1)) { l++; } else { break; } | ||
} | } | ||
nextrevision = thisrevisionreq4[l].getAttribute('revid'); | |||
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 req8 = newRequest(); | |||
req8.open("GET", text, true); | |||
req8.onreadystatechange = function () { | |||
if(req8.readyState == 4) { | |||
continuereq8(req8.responseXML.getElementsByTagName("rev")[0].getAttribute('revid')); | |||
} | |||
}; | |||
req8.send(""); | |||
function continuereq8(firstrevision) { | |||
if(nextrevision!=mw.config.get('wgCurRevisionId') && nextrevision!=firstrevision) { | if(nextrevision!=mw.config.get('wgCurRevisionId') && nextrevision!=firstrevision) { | ||
var newrevisionlink = document.createElement('a'); | var newrevisionlink = document.createElement('a'); | ||
newrevisionlink.setAttribute('id', 'changessincemylastedit'); | newrevisionlink.setAttribute('id', 'changessincemylastedit'); | ||
newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur'); | newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur'); | ||
if(j==0) var EditTextNode = document.createTextNode('← '+ | if(j==0) var EditTextNode = document.createTextNode('← '+configrevisionjumper[0]); | ||
else if(j==1) var EditTextNode = document.createTextNode( | else if(j==1) var EditTextNode = document.createTextNode(configrevisionjumper[0]+' →'); | ||
newrevisionlink.appendChild(EditTextNode); | newrevisionlink.appendChild(EditTextNode); | ||
var newline = document.createElement('br'); | var newline = document.createElement('br'); | ||
Line 138: | Line 142: | ||
difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling ); | difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling ); | ||
} | } | ||
} | |||
} | |||
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 req4 = newRequest(); | |||
req4.open("GET", text, true); | |||
req4.onreadystatechange = function () { | |||
if(req4.readyState == 4) { | |||
continuereq4(req4.responseXML.getElementsByTagName("rev")); | |||
} | |||
}; | |||
req4.send(null); | |||
} | } | ||
if(j==0 && (leftuser==rightuser) && !disablepenultimateeditor){ | if(j==0 && (leftuser==rightuser) && !disablepenultimateeditor){ | ||
Line 170: | Line 187: | ||
var newrevisionlink = document.createElement('a'); | var newrevisionlink = document.createElement('a'); | ||
newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur'); | newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur'); | ||
var EditTextNode = document.createTextNode('← '+ | var EditTextNode = document.createTextNode('← '+configrevisionjumper[1]); | ||
newrevisionlink.appendChild(EditTextNode); | newrevisionlink.appendChild(EditTextNode); | ||
newrevisionlink.setAttribute('id', 'penultimateeditor'); | newrevisionlink.setAttribute('id', 'penultimateeditor'); | ||
Line 191: | Line 208: | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
if(j==0) var newoptiontext = document.createTextNode( | if(j==0) var newoptiontext = document.createTextNode(configrevisionjumper[2]); | ||
else if (j==1) var newoptiontext = document.createTextNode( | else if (j==1) var newoptiontext = document.createTextNode(configrevisionjumper[3]); | ||
currentmovetodiffid.getElementsByTagName("option")[0].appendChild(newoptiontext); | currentmovetodiffid.getElementsByTagName("option")[0].appendChild(newoptiontext); | ||
for (var k=0; k<2; k++) { | for (var k=0; k<2; k++) { | ||
Line 200: | Line 217: | ||
if(k==0) { | if(k==0) { | ||
if(j==0) { | if(j==0) { | ||
var thisnewtextnode = diffoptionnames[k][m-1]+' '+ | var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[4]; | ||
} else if (j==1) { | } else if (j==1) { | ||
var thisnewtextnode = diffoptionnames[k][m-1]+' '+ | var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[5]; | ||
} | } | ||
} else if (k==1) { | } else if (k==1) { | ||
Line 208: | Line 225: | ||
var regexpnumber = RegExp.$1; | var regexpnumber = RegExp.$1; | ||
var regexptype = RegExp.$2; | var regexptype = RegExp.$2; | ||
if(regexptype=='a') { var regexptypename = | if(regexptype=='a') { var regexptypename = configrevisionjumper[6]; } else if(regexptype=='m') { var regexptypename = configrevisionjumper[7]; } else if(regexptype=='d') { var regexptypename = configrevisionjumper[8]; } else if(regexptype=='h') { var regexptypename = configrevisionjumper[9]; } | ||
if (j==0) { | if (j==0) { | ||
var thisnewtextnode = regexpnumber+' '+regexptypename+' '+ | var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[10]; | ||
} else if (j==1) { | } else if (j==1) { | ||
var thisnewtextnode = regexpnumber+' '+regexptypename+' '+ | var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[11]; | ||
} | } | ||
} | } | ||
Line 222: | Line 239: | ||
var handt = numberrevisionjumperlength+timerevisionjumperlength; | var handt = numberrevisionjumperlength+timerevisionjumperlength; | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
var thisnewtextnode = | var thisnewtextnode = configrevisionjumper[12]; | ||
var newoptiontext = document.createTextNode(thisnewtextnode); | var newoptiontext = document.createTextNode(thisnewtextnode); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
currentmovetodiffid.getElementsByTagName("option")[handt+1].appendChild(newoptiontext); | currentmovetodiffid.getElementsByTagName("option")[handt+1].appendChild(newoptiontext); | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
var thisnewtextnode = | var thisnewtextnode = configrevisionjumper[13]; | ||
var newoptiontext = document.createTextNode(thisnewtextnode); | var newoptiontext = document.createTextNode(thisnewtextnode); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
currentmovetodiffid.getElementsByTagName("option")[handt+2].appendChild(newoptiontext); | currentmovetodiffid.getElementsByTagName("option")[handt+2].appendChild(newoptiontext); | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
var thisnewtextnode = | var thisnewtextnode = configrevisionjumper[14]; | ||
var newoptiontext = document.createTextNode(thisnewtextnode); | var newoptiontext = document.createTextNode(thisnewtextnode); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
Line 238: | Line 255: | ||
if(j==0) { | if(j==0) { | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
var thisnewtextnode = | var thisnewtextnode = configrevisionjumper[15]; | ||
var newoptiontext = document.createTextNode(thisnewtextnode); | var newoptiontext = document.createTextNode(thisnewtextnode); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
Line 244: | Line 261: | ||
} else if (j==1) { | } else if (j==1) { | ||
var newoption = document.createElement("option"); | var newoption = document.createElement("option"); | ||
var thisnewtextnode = | var thisnewtextnode = configrevisionjumper[16]; | ||
var newoptiontext = document.createTextNode(thisnewtextnode); | var newoptiontext = document.createTextNode(thisnewtextnode); | ||
currentmovetodiffid.appendChild(newoption); | currentmovetodiffid.appendChild(newoption); | ||
Line 278: | Line 295: | ||
var revisionlimit = 'a'; | var revisionlimit = 'a'; | ||
while(revisionlimit.search(/\D/)!=-1) { | while(revisionlimit.search(/\D/)!=-1) { | ||
revisionlimit = prompt( | revisionlimit = prompt(configrevisionjumper[17],'50'); | ||
} | } | ||
if (revisionlimit>499) revisionlimit = 499; | if (revisionlimit>499) revisionlimit = 499; | ||
Line 379: | Line 396: | ||
} | } | ||
} else if (i==(handt+1)) { | } else if (i==(handt+1)) { | ||
var getjumptime = prompt( | var getjumptime = prompt(configrevisionjumper[18], '1a 12m 30d 24h'); | ||
var newregularexp = /(\d*)(\D*)(\d*)?(\D*)?(\d*)?(\D*)?(\d*)?(\D*)?/; | var newregularexp = /(\d*)(\D*)(\d*)?(\D*)?(\d*)?(\D*)?(\d*)?(\D*)?/; | ||
var regexprevision = newregularexp.exec(getjumptime); | var regexprevision = newregularexp.exec(getjumptime); | ||
Line 493: | Line 510: | ||
var lasttime = false; | var lasttime = false; | ||
while(!lasttime){ | while(!lasttime){ | ||
var getjumptime = prompt( | var getjumptime = prompt(configrevisionjumper[19], actualyear+'-'+actualmonth+'-'+actualday+' 00:00'); | ||
var lasttime = getjumptime.match(/([^\-]*)\-([^\-]*)\-(\S*)\s?([^\:]*)?\:?([^\b]*)?/); | var lasttime = getjumptime.match(/([^\-]*)\-([^\-]*)\-(\S*)\s?([^\:]*)?\:?([^\b]*)?/); | ||
lastyear = RegExp.$1; | lastyear = RegExp.$1; | ||
Line 575: | Line 592: | ||
} | } | ||
if(type==0) { | if(type==0) { | ||
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'; | ||
req.open("GET", text, | var req = newRequest(); | ||
req. | req.open("GET", text, true); | ||
req.onreadystatechange = function () { | |||
if(req.readyState == 4) { | |||
continuereq(req.responseXML.getElementsByTagName("rev")[0].getAttribute('revid')); | |||
} | |||
}; | |||
req.send(null); | |||
function continuereq(firstrevision) { | |||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { | ||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision; | location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision; | ||
Line 585: | Line 610: | ||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+firstrevision; | location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+firstrevision; | ||
} | } | ||
} | |||
} else if (type==1) { | } else if (type==1) { | ||
if(getoldid && !UrlParameters["diff"]) { | if(getoldid && !UrlParameters["diff"]) { |