Benutzer:Merlissimo/export.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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
//<nowiki>
var exportscript = {
  execute : function () {
    if (wgServer.search(/secure/)==-1 || wgAction != 'purge') return;
    var exportwiki = prompt('Exportwiki:', 'wikipedia/de');
    var exportlemma = prompt('Exportlemma:', '');
//    var exportwiki = 'wikipedia/de';
//    var exportlemma = 'IRC';
    new exportscript.Revisions( exportwiki, exportlemma);
  },
  Revisions : function ( exportwikiarg, exportlemmaarg ) {
    this.exportwiki = exportwikiarg;
    this.exportlemma = exportlemmaarg;
    this.exportxml = '';
    this.requrl = 'https://secure.wikimedia.org/'+this.exportwiki+'/w/api.php';
    this.requrl += '?format=json&action=query&prop=revisions&rvlimit=50&rvprop=ids|timestamp|user|comment|content&indexpageids';
    this.requrl += '&titles='+encodeURIComponent(this.exportlemma);

//    alert(this.exportwiki +'/'+ this.exportlemma);
    this.doQuery( null );
  },
};
exportscript.Revisions.prototype.doQuery = function ( rvstartid ) {
  var q = this;
  var req = sajax_init_object();
  if ( !req ) return;
  var newrequrl = this.requrl;
  if(rvstartid) newrequrl += "&rvstartid="+rvstartid;
  req.open( 'GET', newrequrl, true );
  req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
  req.onreadystatechange = function () {
    if ( req.readyState == 4 && req.status == 200 )
      eval( 'q.resultArrived(' + req.responseText + ');' );
  };
  req.send( null );
  delete req;
};
exportscript.Revisions.prototype.resultArrived = function ( res ) {
    if ( !res || !res.query || !res.query.pages ) return;
    var q = res.query;
    for ( var i = 0; i < q.pageids.length; i++ ) {
      var page = q.pages[q.pageids[i]];
      if ( page.missing === '') continue;
      for ( var k = 0; k < page.revisions.length; k++ ) {            
        this.exportxml += '<revision>'
                       + '\t<id>' + page.revisions[k].revid + '</id>'
                       + '\t<timestamp>' + page.revisions[k].timestamp + '</timestamp>'
                       + '\t<contributor><username>' + page.revisions[k].user + '</username></contributor>'
                       + '\t<text xml:space="preserve">' + page.revisions[k]['*'] + '</text><br/>'
                       + '</revision>';
      }
    }
    if ( res && res['query-continue'] && res['query-continue'].revisions ) {
      this.doQuery( res['query-continue'].revisions.rvstartid );
    } else {
      this.doOutput(this.exportxml);
    }
};
exportscript.Revisions.prototype.doOutput = function ( text ) {
  appendCSS('.export-output {position:fixed;left:0;bottom:0;z-index:100;background-color:#fff9ee;'
           + 'font-size:115%;border:2px solid grey;padding:0.3em;width:95%;max-height:60%;overflow:auto;}');
  this.box = document.createElement( 'div' );
  this.box.className = 'export-output';
  document.body.appendChild( this.box );
  this.box.style.display = 'block';
  this.box.appendChild( document.createTextNode( text ));
};
if ( wgNamespaceNumber >= 0 ) addOnloadHook( exportscript.execute );

//</nowiki>