МедиаУики:Gadget-CatMaker.js
Навигацияға өту
Іздеуге өту
Ескерту: Сақтағаннан кейін өзгерістерді көру үшін браузеріңіздің бүркемесін (кэшін) тазарту керек болуы мүмкін.
- Firefox / Safari: Қайта жүктеуді нұқығанда ⇧ Shift пернесін басып тұрыңыз немесе Ctrl+F5 не Ctrl+⇧ Shift+R екеуінің біреуін басыңыз
- (Mac — ⌘+R)
- Google Chrome: Ctrl+⇧ Shift+R басыңыз (Mac — ⌘+⇧ Shift+R)
- Internet Explorer: Жаңарту батырмасын нұқығанда Ctrl пернесін басып тұрыңыз немесе Ctrl+F5 басыңыз, не F5 пернесін басыңыз
- Opera: Құралдар → Бапталымдар дегеннен бүркемесін тазарту керек.
/*global mw, $, prompt, location*/
/*jslint indent: 2*/
/*!
* @author User:Ebraminio, [[:fa:User:Yamaha5]]
* Translated to Arabic to Kazakh by User:Arystanbek
*/
$(function () {
//mw.notify('Version '+' 2.02');
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:"/> ';
formFind += ' Қазақша Уикипедия санаты <input type="text" id="kklink1" size="30" value="Санат:"/></p>';
formFind += '<p>Ағылышынша Уикипедия санаты <input type="text" id="enlink2" size="30" value="Category:"/> ';
formFind += ' Қазақша Уикипедия санаты <input type="text" id="kklink2" size="30" value="Санат:"/></p>';
formFind += '<p>Ағылышынша Уикипедия санатыي <input type="text" id="enlink3" size="30" value="Category:"/> ';
formFind += ' Қазақша Уикипедия санаты <input type="text" id="kklink3" size="30" value="Санат:"/></p>';
formFind += '<p>Ағылышынша Уикипедия санатыي <input type="text" id="enlink4" size="30" value="Category:"/> ';
formFind += ' Қазақшаша Уикипедия санаты <input type="text" id="kklink4" size="30" value="Санат:"/></p>';
formFind += '<p>Ағылышынша Уикипедия санатыي <input type="text" id="enlink5" size="30" value="Category:"/> ';
formFind += ' Қазақшаша Уикипедия санаты <input type="text" id="kklink5" 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 kklink1 = document.getElementById("kklink1").value;
var enlink2 = document.getElementById("enlink2").value;
var kklink2 = document.getElementById("kklink2").value;
var enlink3 = document.getElementById("enlink3").value;
var kklink3 = document.getElementById("kklink3").value;
var enlink4 = document.getElementById("enlink4").value;
var kklink4 = document.getElementById("kklink4").value;
var enlink5 = document.getElementById("enlink5").value;
var kklink5 = document.getElementById("kklink5").value;
var PurgePage=true;
if (kklink2 !=='Санат:' ||kklink3 !=='Санат:'||kklink4 !=='Санат:'||kklink5 !=='Санат:'){
PurgePage=false;
}
if (enlink1 !=='Category:' && kklink1 !=='Санат:'){
mw.notify('Жасауды бастау '+kklink1+' !');
StartCreating(kklink1,enlink1,PurgePage);
};
setTimeout(function(){
if (enlink2 !=='Category:' && kklink2 !=='Санат:'){
mw.notify('Жасауды бастау '+kklink2+' !');
StartCreating(kklink2,enlink2,PurgePage);
};
if (enlink3 !=='Category:' && kklink3 !=='Санат:'){
mw.notify('Жасауды бастау '+kklink3+' !');
StartCreating(kklink3,enlink3,PurgePage);
};
if (enlink4 !=='Category:' && kklink4 !=='Санат:'){
mw.notify('Жасауды бастау '+kklink4+' !');
StartCreating(kklink4,enlink4,PurgePage);
};
if (enlink5 !=='Category:' && kklink5 !=='Санат:'){
mw.notify('Жасауды бастау '+kklink5+' !');
StartCreating(kklink5,enlink5,PurgePage);
};
},1000);
/*
setTimeout(function(){
if (PurgePage==false){
location.reload();
}},15000);*/
}
}]
});
var CatMakerLink = mw.util.addPortletLink('p-views', '#', 'Санат жасаушы', 'ca-catmaker', 'Санаттарды автоматты түрде жасау');
$(CatMakerLink).click(show);
});
function show() {
$('div#catmaker').dialog('open');
}
function StartCreating(kklink,enlink,PurgePage) {
if ((enlink=='Category:'||kklink=='Санат:')&& PurgePage){
alert ('Санаттардың атын жазыңыз!');
return;
}
catParents(enlink).done(function (x) {
$.when.apply(null, $.map(x, function (y) {
return kkWikiName(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(kklink,
CatText,
'إنشاء تصنيفات باستخدام منشئ \u200cالتصانيف',
function () {
mw.notify('Ол жасалды '+kklink+' Сәтті болды, кішкене күте тұрыңыз.',{ autoHide: false});
if (PurgePage){
window.location = mw.util.getUrl(kklink) + '?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 kkWikiName(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));