Benutzer:Magnus Manske/neuer artikel kategorievorschlag.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
/*
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 ;
}