Benutzer:Ireas/bilderpruefen.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
/*
   bilderpruefen.js
   Skript zum Prüfen von Bildern ([[WP:WPDK]])
*/

// <nowiki>
// Erlaubte Prüfer
var pruefer = new Array("Brackenheim", "Chaddy", "ChrisiPK", "Emha", "Gruß Tom", "Guandalug", "Historiograf", "Ireas", "JuTa", "Leyo", "Ralf Roletschek", "Saibo", "Suhadi Sadono", "Wikijunkie", "Yellowcard");

// Überprüfe, ob alles ok ist (d. h., Benutzer ist Prüfer,
// wir betrachten oder bearbeiten eine Datei, die nicht
// auf Commons liegt)
function ueberpruefe() {
    var ret = true;
    if (!istPruefer(mw.config.get('wgUserName')) || mw.config.get('wgCanonicalNamespace') != "File" ||
	!(mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "view" || mw.config.get('wgAction') == "submit") ||
        document.getElementById("commons_descr") != null) {
	ret = false;
    }
    return ret;
}

// Prüf-Button auf der Dateibeschreibungsseite
function pruefButton() {
    if (!ueberpruefe()) {
	return;
    }
    addJSTab("Prüfen", function() { pruefe(); });
}

// Prüfe diese Datei
function pruefe() {
    if (!ueberpruefe()) {
	return;
    }

    // Bearbeiten wir? Dann kann's gleich losgehen ...
    if (mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "submit") {
	setzeBaustein();
    } else {
	// Wir müssen in den Bearbeiten-Modus wechseln...
	var url = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + encodeURIComponent(mw.config.get('wgPageName'))
	    + "&action=edit&pruefe=1";
	window.open(url, "_self");
    }
}

// Setzt den Geprüfte-Datei-Baustein
function setzeBaustein() {
    if (!ueberpruefe() || !(mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "submit")) {
	return;
    }

    var textbox = document.getElementById("wpTextbox1");
    var text = textbox.value;
    var wpSummary = document.getElementById("wpSummary");

    // schon gesichtet?
    if (text.match(/{{[g|G]eprüfte Datei\|\[\[Benutzer:[^\|]+?\|.+?\]\] \d+:\d+, \d+\. .+\.* \d+ \(.+\)\|\[\[Benutzer:[^\|]+?\|.+?\]\] \d+:\d+, \d+\. .+\. \d+ \(.+\)}}/)) {
	// bereits zwei Mal geprüft
	alert("Diese Datei ist bereits zweimal geprüft worden!");
	return;
    } else if (text.match(/{{[g|G]eprüfte Datei\|\[\[Benutzer:[^\|]+?\|.+?\]\] \d+:\d+, \d+\. .+\.* \d+ \(.+\)\|?}}/)) {
	// erstsichter
	var m = text.match(/{{[g|G]eprüfte Datei\|(\[\[Benutzer:[^\|]+?\|.+?\]\] \d+:\d+, \d+\. .+\.* \d+ \(.+\))\|?}}/);
	if (m != null && m.length > 1) {
	    var n = m[1];
	    var tmp = n.match(/\[\[Benutzer:([^\|]+?)\|.+?\]\]/);
	    if (tmp != null && tmp.length > 1) {
		var ersterPruefer = tmp[1];
		if (ersterPruefer == mw.config.get('wgUserName')) {
		    alert("Du hast diese Datei bereits geprüft!");
		} else {
	            var newtext = text.replace(/{{[g|G]eprüfte Datei\|(\[\[Benutzer:[^\|]+?\|.+?\]\] \d+:\d+, \d+\. .+\.* \d+ \(.+\))\|?}}/,
		"{{Geprüfte Datei|" + n + "|[[Benutzer:" + mw.config.get('wgUserName') + "|" + mw.config.get('wgUserName') + "]] 23:21, 6. Feb. 2021 (CET)}}");
		    textbox.value = newtext;
                    if (wpSummary.value == "") {
                      wpSummary.value = "geprüft";
                    }
		}
	    }
	}
    } else {
	var newtext = text + "\n{{Geprüfte Datei|[[Benutzer:" + mw.config.get('wgUserName') + "|" + mw.config.get('wgUserName') + "]] 23:21, 6. Feb. 2021 (CET)}}\n";
	textbox.value = newtext;
        if (wpSummary.value == "") {
          wpSummary.value = "geprüft";
        }
    }
}

// Liefert true zurück, wenn user ein Prüfer ist
function istPruefer(user) {
    var ret = false;
    for (i = 0; i < pruefer.length && !ret; i++) {
	if (pruefer[i] == user) {
	    ret = true;
	}
    }
    return ret;
}

// Fügt einen Tab hinzu
function addJSTab(label, clicked) {
    var a   = document.createElement("a");
    a.textContent   = label;
    a.onclick       = clicked;
    var span = document.createElement("span");
    span.appendChild(a);
    var li  = document.createElement("li");
    li.appendChild(span);
    li.className = "collapsible";
    var watch = document.getElementById('ca-watch') ||
	document.getElementById('ca-unwatch');
    if (!watch) {
	return;
    }
    watch.parentNode.insertBefore(li, watch);
}

$(pruefButton);
if (document.URL.match(/.+index.php\?.+&pruefe=1/)) {
    addOnloadHook(setzeBaustein);
}