خدايمي:سمير تامر/تجاريب/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 = '
هاد لأداة تعملات باش يتصاوب تصنيف أولا بزاف ديال التصانيف اللي كاين بحالها فلينݣليزية.
'; 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));