Benutzer:Magnus Manske/neuer artikel kategorievorschlag.js
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
/*
Schlaegt vor dem Speichern neuer Artikel Kategorien vor. Vorschlaege basierend auf Worten aus dem 1. Absatz, die mit Grossbuchstaben beginnen.
Verwendung:
importScript('Benutzer:Magnus_Manske/neuer_artikel_kategorievorschlag.js');
*/
addOnloadHook(init_neuer_artikel_kategorievorschlag);
function init_neuer_artikel_kategorievorschlag () {
if ( wgNamespaceNumber != 0 ) return ; // Kein NS0-Artikel
if ( wgArticleId != 0 ) return ; // Kein neuer Artikel
if ( wgAction != 'edit' && wgAction != 'submit' ) return ; // Keine Bearbeitungsseite
jQuery('#wpSave').click ( neuer_artikel_kategorievorschlag ) ;
}
function neuer_artikel_kategorievorschlag ( event ) {
var wiki = jQuery('#wpTextbox1').val() ;
wiki = wiki.split("\n")[0] ; // Erster Absatz
var words = wiki.split(/\b/) ;
var q = new Array () ;
jQuery(words).each( function () { if ( this.match ( /^[A-Z]/ ) ) q.push ( this ) ; } ) ;
var cats = new Array () ;
jQuery(q).each ( function () {
var url = "http://de.wikipedia.org/w/api.php?action=opensearch&limit=5&format=xml&namespace=14&search=" + escape ( this ) ;
jQuery.ajax({
url:url,
dataType:'xml',
success: function(data){
jQuery(data).find('Text').each(function(){var k=jQuery(this).text(); if(-1==wiki.indexOf("[["+k))cats.push(k)}) ;
},
async:false
} ) ;
} );
jQuery('#wpSave').unbind('click',neuer_artikel_kategorievorschlag);
if ( cats.length == 0 ) return true ; // Keine Vorschlaege
event.preventDefault();
jQuery('#content').append("<div id='nak_dialog' title='Kategorie-Vorschläge'><textarea rows='15'>[["+cats.join("]]\n[[")+"]]</textarea></div>");
jQuery("#nak_dialog").dialog({
bgiframe: true, height: 350, width:600, modal: true
});
return false ;
}