نوٹ: بچان مگروں توانوں اپنے براؤزر دے کاشے توں بار جانا پوے گا تبدیلیاں ویکھن لئی۔

  • Firefox / Safari: Shift پھڑی رکھو ریلوڈ تے کلکنگ کردیاں ہویاںCtrl-F5 or Ctrl-R (Command-R میک تے)
  • گوکل کروم: دباؤ Ctrl-Shift-R (Command-Shift-R میک تے)

Internet Explorer: hold Ctrl کلک کردیاں Refresh, یا دباؤ Ctrl-F5 Konqueror:کلک ریلوڈ یا F5 دباؤ۔ Opera: کاشے نوں صاف کرو آوزار → تانگاں

// <nowiki> // DO NOT REMOVE THIS LINE EVER
/*jslint browser: true, white: true*/
/*global mediaWiki, jQuery*/
/*!
 * @author User:Ebraminio, User:Yamaha5,User:Abbas dhothar
 */
(function ($, mw) {
	'use strict';

	function createPage(title, text, summary, callback) {
		return new mw.Api().post({
			action: 'edit',
			title: title,
			text: text,
			summary: summary,
			createonly: '',
			minor: '',
			token: mw.user.tokens.get('csrfToken')
		}).then(function (data) {
			if (data.error && data.error.info) {
				mw.notify(title + ' نا کام: ' + data.error.info);
			} else {
				callback();
			}
			return data;
		}, function (data) {
			mw.notify(title + ' نا کام: ' + data);
			return data;
		});
	}

	function pnbWikiName(title) {
		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) {
			try {
				return $.grep($.map(data.query.pages, function (x) { return x; })[0].langlinks, function (x) {
					return x.lang === 'pnb';
				})[0]['*'];
			} catch (ignore) { }
		});
	}

	function catParents(title) {
		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) {
			try {
				return $.map($.map(data.query.pages, function (x) { return x; })[0].categories, function (x) {
					return x.title;
				});
			} catch (ignore) { }
		});
	}

	function getWikidataEntity(entitle) {
		return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({
			action: 'wbgetentities',
			format: 'json',
			sites: 'enwiki',
			titles: entitle,
			normalize: 'true',
			origin: window.location.protocol + '//' + window.location.hostname
		}).then(function (x) { return $.map(x.entities, function (x) { return x; })[0]; });
	}

	function commonsCatFromEntity(entity) {
		try {
			return entity.claims.P373[0].mainsnak.datavalue.value;
		} catch (ignore) { }
	}

	function startCat(pnblink, enlink) {
		enlink = enlink.replace(/\_/g, ' ');
		return pnbWikiName(enlink).then(function (x) {
			if (x) {
				mw.notify('گٹھ پہلے توں موجود  اے');
				return;
			}
			return catParents(enlink).then(function (x) {
				if (!x) {
					mw.notify('صفہ "' + enlink + '" ہدف ویکی چ موجود نہیں یا گٹھ موجود نہیں اے');
					return;
				}
				return $.when.apply(null, $.map(x, function (y) {
					return pnbWikiName(y);
				})).then(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');
					catText = catText.trim();
					return createPage(
						pnblink,
						catText,
						'تخلیق گٹھ بمطابق [[:en:' + enlink + ']] بذریعہ آلہ گٹھ ساز',
						function () {
							mw.notify('تخلیق ' + pnblink + ' کامیابی نال مکمل۔');
						}
					);
				});
			});
		});
	}

	function loadPage(title) {
		return new mw.Api().get({
			action: 'query',
			prop: 'revisions',
			titles: title,
			rvprop: 'content',
			format: 'json'
		}).then(function (data) {
			return $.map(data.query.pages, function (value) { return value; })[0].revisions[0]['*'];
		});
	}
 
	/**
	 * Save a page
	 */
	function savePage(title, text, summary) {
		return new mw.Api().post({
			action: 'edit',
			title: title,
			text: text,
			summary: summary,
			nocreate: '',
			minor: '',
			token: mw.user.tokens.get('csrfToken')
		}).then(function (data) {
			if (data.error && data.error.info) {
				mw.notify(data.error.info);
			}
		}, function (data) {
			mw.notify(data);
		});
	}

	function init(e) {
		e.preventDefault();
		$('<div>' +
			'<div style="width: 40em">گٹھاں بنان لئی تھلویاں مثالیں ملاحظہ کرو:<br>گٹھ1@Cateogry1<br>گٹھ2@Cateogry2<br>گٹھ3@Cateogry3</div><br><B>اہم نُکتے:</B><br><B>1-</B> نویاں بنیاں گٹھاں  کجھ گھینٹےآں دے بعد <a href="//pnb.wikipedia.org/w/index.php?title=وکیپیڈیا:بوٹ" target="وکیپیڈیا:بوٹ">وکیپیڈیا:بوٹ</a> دی مدد نال<a href="//pnb.wikipedia.org/w/index.php?title=وکیپیڈیا:ویکی_ڈیٹا" target="وکیپیڈیا:ویکی ڈیٹا">وکیپیڈیا:ویکی ڈیٹا</a> نال جُڑ جان گئیاں، جس دے بعد ہی دوسرے خودکار ذرائع نال انہاں نوں صفحےآں اتے لگایا جائے گا؛ پر جے تسیں چاہو تاں  فوری طور اتے خود انہاں  گٹھاں نوں ویکی ڈیٹا نال جوڑ  سکدے او، تے انہاں نوں صفحےآں اتے استعمال کر سکدے  او۔<br><B>2-</B>جو گٹھاں انگریزی ویکی اتےموجود نئیں اوہ نئیں بنائیاں جا سکن گئیاں۔<br>' +
			'<textarea style="width: 100%; background-color: yellow;" placeholder="گٹھ1@Cateogry1" id="catmakerinput" rows="7"></textarea>' +
			'</div>'
			).dialog({
			modal: true,
			width: 700,
			buttons: [{
				id: 'catmaker-button-import',
				text: 'تخلیق گٹھ',
				click: function () {
					var formInput = $('#catmakerinput').val();
					formInput = formInput.replace('*', '').replace('#', '').replace('---', '@')
					if (formInput === '') { mw.notify('براہ کرم درست اندراج کرو'); return; }
					var requests = formInput.trim().split('\n');
					if (requests.length > 1000) {
						loadPage('وکیپیڈیا:ویکی منصوبہ گٹھیاں/درخواست تخلیق').then(function (content) {
							return savePage('وکیپیڈیا:ویکی منصوبہ گٹھیاں/درخواست تخلیق', content + '\n*' + requests.join('\n*').replace(/@/g, '---'), 'مدد طلب کرو[[میڈیا ویکی:Gadget-CatMaker.js|آلہ گٹھ ساز]]').then(function () {
								mw.notify('تساں دیاں درخواستاں بوٹ نال بنان لئی رکھ دتیاں گئیاں نیں، براہ کرم جانچ لو۔');
								window.location = mw.util.getUrl('وکیپیڈیا:ویکی منصوبہ گٹھیاں/درخواست تخلیق', { action: 'history' });
							});
						});
						return;
					}
					$.when.apply(null, $.map(requests, function (x) {
						var req = x.replace(/گٹھ:/, '').replace(/Category:/i, '').split('@');
						if (req.length !== 2) { return; }
						return startCat('گٹھ:' + req[0], 'Category:' + req[1]);
					})).then(function () {
						mw.notify('تخلیق گٹھ مکمل، برائے مہربانی جانچ کر لو.');
						window.location = mw.util.getUrl('Special:Contributions/' + mw.config.get('wgUserName'));
					});
				}
			}]
		});
	}

	$(function () {
		mw.util.addCSS('#t-catmaker { font-weight: bold; }');
		$(mw.util.addPortletLink('p-tb-label', '#', 'گٹھ ساز', 't-catmaker', ' آلہ گٹھ ساز راہیں گٹھاں بناؤ')).click(init);
	});
}(jQuery, mediaWiki));