خدايمي:سمير تامر/تجاريب/3

/*global mw, $, prompt, location*/ /*jslint indent: 2*/ /*!

* @author User:Ebraminio, User:Yamaha5
* Translated to M.Darija by User:سمير تامر
*/

$(function () {

   //mw.notify('إصدار '+'۲.۰۲');
   mw.loader.using(['jquery.ui'], function () {

var formFind = '

<form>'; formFind += '

هاد لأداة تعملات باش يتصاوب تصنيف أولا بزاف ديال التصانيف اللي كاين بحالها فلينݣليزية.

'; formFind += '

التصنيف النݣليزي <input type="text" id="enlink1" size="30" value="Category:" dir="LTR"/> '; formFind += ' التصنيف بالدارجة <input type="text" id="falink1" size="30" value="تصنيف:"/>

'; formFind += '

التصنيف النݣليزي <input type="text" id="enlink2" size="30" value="Category:" dir="LTR"/> '; formFind += ' التصنيف بالدارجة <input type="text" id="falink2" size="30" value="تصنيف:"/>

'; formFind += '

التصنيف النݣليزي <input type="text" id="enlink3" size="30" value="Category:" dir="LTR"/> '; formFind += ' التصنيف بالدارجة <input type="text" id="falink3" size="30" value="تصنيف:"/>

'; formFind += '

التصنيف النݣليزي <input type="text" id="enlink4" size="30" value="Category:" dir="LTR"/> '; formFind += ' التصنيف بالدارجة <input type="text" id="falink4" size="30" value="تصنيف:"/>

'; formFind += '

التصنيف النݣليزي <input type="text" id="enlink5" size="30" value="Category:" dir="LTR"/> '; formFind += ' التصنيف بالدارجة <input type="text" id="falink5" size="30" value="تصنيف:"/>

'; formFind += '</form>

';

       var messageFind = $(formFind).appendTo('#content');
       messageFind.dialog({
           autoOpen: false,
           modal: true,
           width: 660,
           buttons: [{
               id: 'catmaker-button-import',
               text: 'صاوب التصنيف',
               click: function () {
                   var enlink1 = document.getElementById("enlink1").value.trim();
                   var falink1 = document.getElementById("falink1").value.trim();
                   var enlink2 = document.getElementById("enlink2").value.trim();
                   var falink2 = document.getElementById("falink2").value.trim();
                   var enlink3 = document.getElementById("enlink3").value.trim();
                   var falink3 = document.getElementById("falink3").value.trim();
                   var enlink4 = document.getElementById("enlink4").value.trim();
                   var falink4 = document.getElementById("falink4").value.trim();
                   var enlink5 = document.getElementById("enlink5").value.trim();
                   var falink5 = document.getElementById("falink5").value.trim();
                   var PurgePage=true;
                   if (falink2 !=='تصنيف:' ||falink3 !=='تصنيف:'||falink4 !=='تصنيف:'||falink5 !=='تصنيف:'){
                       PurgePage=false;
                   }
                   if (enlink1 !=='Category:' && falink1 !=='تصنيف:'){
                       mw.notify('بدا صاوب '+falink1+' !');
                       StartCreating(falink1,enlink1,PurgePage);
                   };
                   setTimeout(function(){
                   if (enlink2 !=='Category:' && falink2 !=='تصنيف:'){
                       mw.notify('بدا صاوب '+falink2+' !');
                       StartCreating(falink2,enlink2,PurgePage);
                   };
                   if (enlink3 !=='Category:' && falink3 !=='تصنيف:'){
                       mw.notify('بدا صاوب '+falink3+' !');
                       StartCreating(falink3,enlink3,PurgePage);
                   };
                   if (enlink4 !=='Category:' && falink4 !=='تصنيف:'){
                      mw.notify('بدا صاوب '+falink4+' !');
                       StartCreating(falink4,enlink4,PurgePage);
                   };
                   if (enlink5 !=='Category:' && falink5 !=='تصنيف:'){
                      mw.notify('بدا صاوب '+falink5+' !');
                       StartCreating(falink5,enlink5,PurgePage);
                   };
                   },1000);
                   /*
                   setTimeout(function(){
                   if (PurgePage==false){
                          location.reload();
                   }},15000);*/
               }
           }]
       });
       var CatMakerLink = mw.util.addPortletLink('p-views', '#', 'لمنشئ \u200cدالتصانيف', 'ca-catmaker', 'إنشاء ديريكت دالتصنيفات');
       $(CatMakerLink).click(show);
   });


   function show() {
       $('div#catmaker').dialog('open');
   }
   function StartCreating(falink,enlink,PurgePage) {
       if ((enlink=='Category:'||falink=='تصنيف:')&& PurgePage){
          alert ('خاصك تكتب سمية التصنيفات!');
          return;
       }
       catParents(enlink).done(function (x) {
           $.when.apply(null, $.map(x, function (y) {
               return faWikiName(y);
           })).done(function () {
               var CatText=$.map(arguments, function (x) {
                       return '' + x + '';
                   }).join('\n')+'\n';
               CatText=CatText.replace(/\[\[undefined\]\]/g, );
               CatText=CatText.replace(/\n\n/g, '\n');
               savePage(falink,
                   CatText,
                   'صاوب تصنيف بلمعاونة ديال لمنشئ \u200cدالتصانيف',
                   function () {
                       mw.notify('تصاوب '+falink+' بنجاح. تسنى شوية.',{ autoHide: false});
                      if (PurgePage){
                          window.location = mw.util.getUrl(falink) + '?action=purge';
                      }
                   }
               );
           });
       });
   }
   function savePage(title, text, summary, callback) {

new mw.Api().create( title,

{ summary: summary },
text

).done(function (data) {

           if (data.error && data.error.info) {
               mw.notify(data.error.info);
           } else {
               callback();
           }
       }).fail(function (data) {
           mw.notify(data);
       });
   }
   function faWikiName(title) {
       'use strict';
       return $.ajax({
           url: '//en.wikipedia.org/w/api.php',
           data: {
               action: 'query',
               prop: 'langlinks',
               titles: title,
               redirects: 1,
               format: 'json',
               lllimit: 500
           },
           dataType: 'jsonp'
       }).then(function (data) {
           return $.grep($.map(data.query.pages, function (x) {
               return x;
           })[0].langlinks, function (x) {
               return x.lang === 'ar';
           })[0];
       }).then(function (x) {
           if (x){
               return x['*'];
           };
       });
   }
   function catParents(title) {
       'use strict';
       return $.ajax({
           url: '//en.wikipedia.org/w/api.php',
           data: {
               action: 'query',
               prop: 'categories',
               titles: title,
               clshow: '!hidden',
               cllimit: 500,
               format: 'json'
           },
           dataType: 'jsonp'
       }).then(function (data) {
           return $.map($.map(data.query.pages, function (x) {
               return x;
           })[0].categories, function (x) {
               return x.title;
           });
       });
   }

}(jQuery, mediaWiki));