Benutzer:Magnus Manske/image undelete.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
/* Verwendung :
importScript('Benutzer:Magnus_Manske/image_undelete.js');
*/
Array.prototype.getUniqueValues = function () {
var hash = new Object();
for (j = 0; j < this.length; j++) {hash[this[j]] = true}
var array = new Array();
for (value in hash) {array.push(value)};
return array;
}
// Erzeugt den Link in der Seitenleiste unter "Werkzeuge"
function init_undelete_usage () {
var permalink = document.getElementById ( 't-permalink' ) ;
var ul = permalink.parentNode ;
var li = document.createElement ( 'li' ) ;
var a = document.createElement ( 'a' ) ;
a.onclick = run_undelete_usage ;
a.href = '#' ;
a.appendChild ( document.createTextNode ( 'Nutzung vor Löschung' ) ) ;
li.appendChild ( a ) ;
ul.appendChild ( li ) ;
}
function run_undelete_usage () {
var request = new XMLHttpRequest();
// Suche alte Verwendungen
var url = "http://de.wikipedia.org/w/api.php?format=xml&action=query&prop=revisions&rvprop=timestamp|user|comment|content&rvlimit=500&titles=" + wgPageName ;
request.open("GET", url, false);
request.send ( "" ) ;
var text = request.responseText ;
var results = text.split ( "Dateiüberprüfung/benachrichtigt (einzelne Verwendung)|" ) ;
results.shift () ;
var unique = new Array () ;
for ( var i = 0 ; i < results.length ; i++ ) {
var s = results[i].split ( "}}" ) ;
s = s.shift() ;
unique.push ( s ) ;
}
// Aktuelle Verwendungen
url = "http://de.wikipedia.org/w/api.php?format=xml&action=query&list=imageusage&iulimit=500&iutitle=" + wgPageName ;
request.open("GET", url, false);
request.send ( "" ) ;
text = request.responseText ;
results = text.split ( 'title="' ) ;
results.shift () ;
var used = new Array () ;
for ( var i = 0 ; i < results.length ; i++ ) {
var s = results[i].split ( '"' ) ;
s = s.shift() ;
used.push ( s ) ;
unique.push ( s ) ;
}
unique = unique.getUniqueValues () ;
// Ausgabe
var df = document.getElementById ( 'file' ) ;
var div = document.createElement ( 'div' ) ;
var ul = document.createElement ( 'ul' ) ;
var cnt = 0 ;
for ( var i = 0 ; i < unique.length ; i++ ) {
var s = unique[i] ;
var cur = 0 ;
for ( var j = 0 ; j < used.length ; j++ ) {
if ( used[j] != s ) continue ;
cur = 1 ;
break ;
}
if ( cur == 1 ) continue ;
var li = document.createElement ( 'li' ) ;
var a = document.createElement ( 'a' ) ;
a.appendChild ( document.createTextNode ( s ) ) ;
a.href = "/wiki/" + s ;
li.appendChild ( a ) ;
ul.appendChild ( li ) ;
cnt++ ;
}
if ( cnt == 0 ) {
var li = document.createElement ( 'li' ) ;
li.appendChild ( document.createTextNode ( "Diese Datei wurde früher nicht verwendet (ausgenommen gegenwärtige Nutzung)." ) ) ;
ul.appendChild ( li ) ;
}
div.style.border = '2px solid red' ;
div.appendChild ( document.createTextNode ( "Alte (und aktuelle) Verwendung dieser Datei:" ) ) ;
div.appendChild ( ul ) ;
df.parentNode.insertBefore ( div , df ) ;
return false ;
}
if ( wgAction == "view" && wgNamespaceNumber == 6 ) addOnloadHook ( init_undelete_usage ) ;