ميډياويکي:Gadget-CatMaker.js
يادښت: د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئ.
- فايرفاکس/ سفري: په دې کتنمل کې د Reload د ټکوهلو په وخت د Shift تڼۍ نيولې وساتی، او يا هم Ctrl-F5 يا Ctrl-Rتڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ⌘-R کېښکاږۍ)
- گووگل کروم: په دې کتنمل کې د Ctrl-Shift-R تڼۍ کېښکاږۍ (د مک لپاره ⌘-Shift-R)
- انټرنټ اېکسپلورر: په دې کتنمل کې د Refresh د ټکوهلو په وخت کې د Ctrl تڼۍ کېښکاږلې ونيسۍ، او يا هم د Ctrl-F5 تڼۍ کېښکاږۍ
- اوپرا: په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی Tools→Preferences
لاسوند[جوړول]
/*global mw, $, prompt, location*/
/*jslint indent: 2*/
/*!
* @author User:Ebraminio, User:Yamaha5
* Translated to Pashto by User:Af420
*/
$(function () {
//mw.notify('نسخه '+'۲.۰۲');
mw.loader.using(['jquery.ui'], function () {
var formFind = '<div id="catmaker" title="په اتوماتيک ډول ليبلونه جوړ کړئ"><form>';
formFind += '<p>دا وسیله د یو وېشنيزي کولو یا د انګرېزي سره د ډیرو وېشنيزو د جوړولو لپاره کارول کیږي.</p>';
formFind += '<p>انګریزي وېشنيزې<input type="text" id="enlink1" size="30" value="Category:" dir="LTR"/> ';
formFind += ' پښتو طبقه بندي <input type="text" id="falink1" size="30" value="وېشنيزه:"/></p>';
formFind += '<p>انګریزي وېشنيزه<input type="text" id="enlink2" size="30" value="Category:" dir="LTR"/> ';
formFind += ' عربي وېشنيزه <input type="text" id="falink2" size="30" value="وېشنيزه:"/></p>';
formFind += '<p>انګریزي وېشنيزه <input type="text" id="enlink3" size="30" value="Category:" dir="LTR"/> ';
formFind += ' پښتو وېشنيزه <input type="text" id="falink3" size="30" value="وېشنيزه:"/></p>';
formFind += '<p>انګریزي وېشنيزه <input type="text" id="enlink4" size="30" value="Category:" dir="LTR"/> ';
formFind += ' پښتو وېشنيزه <input type="text" id="falink4" size="30" value="وېشنيزه:"/></p>';
formFind += '<p>انګریزي وېشنيزه <input type="text" id="enlink5" size="30" value="Category:" dir="LTR"/> ';
formFind += ' پښتو وېشنيزه <input type="text" id="falink5" size="30" value="وېشنيزه:"/></p>';
formFind += '</form></div>';
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;
var falink1 = document.getElementById("falink1").value;
var enlink2 = document.getElementById("enlink2").value;
var falink2 = document.getElementById("falink2").value;
var enlink3 = document.getElementById("enlink3").value;
var falink3 = document.getElementById("falink3").value;
var enlink4 = document.getElementById("enlink4").value;
var falink4 = document.getElementById("falink4").value;
var enlink5 = document.getElementById("enlink5").value;
var falink5 = document.getElementById("falink5").value;
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[[en:'+enlink+']]';
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().post({
action: 'edit',
title: title,
text: text,
summary: summary,
minor: '',
token: mw.user.tokens.get('csrfToken')
}).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 === 'ps';
})[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));