User:DerHexer/monobook.js

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
  // API request for delete token; made by [[User:Codeispoetry]]
  function newRequest()
   {
     try {
       if (window.XMLHttpRequest) {
         return new XMLHttpRequest();
       } else {
         return new ActiveXObject("MSXML2.XMLHTTP");
       }
     } catch (e) {
       return false;
     }
   }
   
 if(wgPageName=='User:DerHexer/test' && wgAction=='edit') {
 // als erstes wird der Kategoriebaum geschrieben
 var searchcategory = prompt('Enter category:','');
 var allcategories = new Array(searchcategory);
 var integer = 0;
 var newline = "\n";
 var XXX = '';
 
 function addcategoriestoarray (getcategories){ // schreibe gefundene Kategorien in Array; Hilfsfunktion
   for(i=0;i<getcategories.length;i++){
     for(j=0;j<allcategories.length;j++){
       if(getcategories[i].getAttribute('title')==allcategories[j]) break;
       if(j==allcategories.length-1) allcategories[allcategories.length] = getcategories[i].getAttribute('title');
     }
   }
 }
 
 function getimages(){
  if (allcategories[integer]) {
   var categoryisset = false;
   var req2 = newRequest();
   if (req2) {
     var text = '/w/api.php?action=query&format=xml&rawcontinue=&list=categorymembers&cmtitle='+allcategories[integer].replace(/\s/g, "_").replace(/\&/g, "%26").replace(/\"/g, "%22").replace(/\+/g, "%2B").replace(/\#/g, "%23")+'&cmprop=title&cmnamespace=6&cmlimit=500';
     req2.open("GET", text, false);
     req2.send("");
 
     if(req2.responseXML.getElementsByTagName("query-continue")[0]) { XXX = XXX + "'''WARNING'''" + newline; }
     var getnewimages = req2.responseXML.getElementsByTagName("cm");
     for(i=0;i<getnewimages.length;i++){
       var req3 = newRequest();
       if (req3) {
         var text = '/w/api.php?action=query&format=xml&prop=imageinfo&iiprop=mime&titles='+getnewimages[i].getAttribute('title').replace(/\s/g, "_").replace(/\&/g, "%26").replace(/\"/g, "%22").replace(/\+/g, "%2B").replace(/\#/g, "%23");
         req3.open("GET", text, false);
         req3.send("");
 
         if(req3.responseXML.getElementsByTagName("ii")[0].getAttribute('mime').search(/jpe?g/)!=-1) {
           if(!categoryisset) {
             XXX = XXX + '== [[:'+allcategories[integer]+']] =='+newline;
             categoryisset = true;
           }
           XXX = XXX + ' [[:'+getnewimages[i].getAttribute('title')+']]' + newline;
         }
       }
     }
     integer++;
     getimages();
   }
  } else {
   alert(XXX);
  }
 }
 
 function createcategorytree() {
   var req = newRequest();
   if (req) {
    if (allcategories[integer]) {
     var text = '/w/api.php?action=query&format=xml&list=categorymembers&cmtitle='+allcategories[integer]+'&cmprop=title&cmnamespace=14&cmlimit=500';
     req.open("GET", text, false);
     req.send("");
 
     var getcategories = req.responseXML.getElementsByTagName("cm");
     if(getcategories) {
       addcategoriestoarray(getcategories);
     }
     integer++;
     createcategorytree();
    } else {
      integer = 0;
      getimages();
    }
   }
 }
 
 addOnloadHook(createcategorytree());
 }