Benutzer:DerHexer/fixlinks.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// token functions
function generate_auser () {
return encodeURIComponent(wgUserName);
}
function validate_auser (auser) {
var retval = false;
if (auser == encodeURIComponent(encodeURIComponent(generate_auser())) )
retval = true;
return retval;
}
function generate_atime () {
var arbitrary_datestamp = Date.UTC(2008,10,1,0,0,0,0); // 1.11.2008
var current_date = new Date();
var current_timestamp = current_date.getTime();
return ( Math.floor((current_timestamp - arbitrary_datestamp) / 1000) );
}
function validate_atime (atime) {
var retval = false;
var timediff = generate_atime() - atime;
if ((timediff >= 0) && (timediff < 45))
retval = true;
return retval;
}
// get URL parameters (used for page type variables)
var UrlParameters = new Array ();
readparams();
function readparams() {
var asReadInUrlParameters;
var asReadInUrlParameter;
// Get URL parameters
asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
for (i = 0; i < asReadInUrlParameters.length; i++) {
asReadInUrlParameter = asReadInUrlParameters[i].split("=");
UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = asReadInUrlParameter[1];
}
}
// Funktion zum Öffnen der Links
function fixlinksurls() {
if(confirm("Möchtest du fortfahren?")){
;
var req;
if (req = sajax_init_object()) {
var text = '/w/api.php?action=query&format=xml&list=imageusage&iulimit=500&iutitle='+wgPageName;
req.open("GET", text, false);
req.send("");
var imageusage = req.responseXML.getElementsByTagName("iu");
}
for(i=0;i<imageusage.length;i++){
var replacewith = document.getElementById('mw-imagepage-section-duplicates').getElementsByTagName('a')[1].innerHTML.replace(/\b[^:]+:/,'');
var getuser = generate_auser();
var getimage = imageusage[i].getAttribute('title');
var gettime = generate_atime();
var url = wgServer+wgScript+"?title="+getimage+"&action=edit&replace="+encodeURIComponent(wgTitle)+"&replacewith="+encodeURIComponent(replacewith)+"&auser="+encodeURIComponent(getuser)+"&atime="+encodeURIComponent(gettime);
url = encodeURI(url);
window.open(url);
}
}
}
// Funktion zum Ändern der Artikelinhalte
function fixlinks(){
if (validate_auser(UrlParameters["auser"])) {
if (validate_atime(UrlParameters["atime"])) {
var replacer = decodeURIComponent(decodeURIComponent(UrlParameters["replace"])).replace(/[\s_\.]/g,'.');
replacer = new RegExp(replacer, 'ig');
var replacewith = decodeURIComponent(UrlParameters["replacewith"]);
document.editform.wpMinoredit.checked=true;
document.editform.wpSummary.value = "Die Datei [[Datei:"+decodeURIComponent(UrlParameters["replace"])+"]] ist nun auf Commons unter [[commons:File:"+decodeURIComponent(replacewith)+"]] zu finden.";
document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(replacer, replacewith);
document.editform.wpSave.click();
//window.setTimeout(function() { window.close(); }, 1000);
} else {
alert("Token zur automatischen Speicherung ist abgelaufen.");
}
}
}
if(UrlParameters["replace"] && UrlParameters["replacewith"]) addOnloadHook(fixlinks);
if(wgNamespaceNumber==6)
{
addOnloadHook(function()
{
addPortletLink('p-tb', "javascript:fixlinksurls();", "FixLinks", 't-fixlinks', 'fix Links', '', document.getElementById('t-whatlinkshere'));
});
}