نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
// <nowiki> // DO NOT REMOVE THIS LINE EVER /*jslint browser: true, white: true*/ /*global mediaWiki, jQuery*/ /*!  * @author User:Ebraminio, User:Yamaha5  */ (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 faWikiName(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 === 'fa'; 				})[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(falink, enlink) { 		enlink = enlink.replace(/\_/g, ' '); 		return faWikiName(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 faWikiName(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( 						falink, 						catText, 						'ایجاد ردهٔ همسنگ [[:en:' + enlink + ']] با ابزار رده\u200cساز', 						function () { 							mw.notify('ساخت ' + falink + ' با موفقیت انجام شد.'); 						} 					); 				}); 			}); 		}); 	}  	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">درخواست\u200cهای ساخت رده را در خطوط جداگانه مانند مثال زیر وارد کنید:<br>رده۱@Cateogry1<br>رده۲@Cateogry2<br>رده۳@Cateogry3</div><br><B>نکات مهم:</B><br><B>۱-</B>رده‌ها باید شیوه‌نامه <a href="//fa.wikipedia.org/w/index.php?title=ویکی‌پدیا:ترجمه_رده‌ها" target="ویکی‌پدیا:ترجمه رده‌ها">ویکی‌پدیا:ترجمه_رده‌ها</a> را رعایت کنند.<br><B>۲-</B>رده‌هایی که تازه ساخته می‌شوند نیازی به افزودن به مقالات و صفحات ندارد و این رده‌ها پس از چند ساعت به صورت رباتیک به صفحه‌های مرتبط، اضافه می‌گردند و میان‌ویکی‌شان به ویکی‌داده افزوده می‌شود.<br><B>۳-</B>ابزار رده‌ساز رده‌هایی که در ویکی‌انگلیسی موجود نباشند را نمی‌سازد.<br><B>۴-</B>ابزار رده‌ساز رده‌هایی که رده مادر نداشته باشند یا همسنگ رده مادر در ویکی‌پدیای فارسی نباشد یا همهٔ رده‌های مادرشان رده پنهان باشد را نمی‌سازد.(رده رده‌بندی نشده نمی‌سازد)<br><B>۵-</B>اگر رده‌ای را که پیشنهاد دادید ساخته نشده‌است، ممکن است [[ویژه:پالایهٔ_خرابکاری/91]] از عمل شما جلوگیری کرده باشد (دقت کنید که شرایط موجود در [[<a href="//fa.wikipedia.org/w/index.php?title=مدیاویکی:Abusefilter-warning-category" target="مدیاویکی:Abusefilter-warning-category">مدیاویکی:Abusefilter-warning-category</a>]] را رعایت کرده‌اید.)<br><B>۶-</B> به منظور پرنشدن صفحهٔ تغییرات اخیر، بیش از <B>۱۰</B> درخواست به صورت خودکار به <a href="//fa.wikipedia.org/wiki/وپ:دارر">رباتی</a> با عملکرد مشابه تحویل داده می‌شود.' + 			'<textarea style="width: 100%; background-color: white;" placeholder="رده۱@Cateogry1" id="catmakerinput" rows="7"></textarea>' + 			'</div>' 			).dialog({ 			modal: true, 			width: 700, 			buttons: [{ 				id: 'catmaker-button-import', 				text: 'ساخت رده', 				click: function () { 					var formInput = $('#catmakerinput').val(); 					if (formInput === '') { mw.notify('لطفاً فرم درخواست را به درستی پر کنید'); return; } 					var requests = formInput.trim().split('\n'); 					if (requests.length > 10) { 						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('ساخت رده\u200cها به پایان رسید، لطفاً بررسی کنید.'); 						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', '#', 'رده\u200cساز', 't-catmaker', 'ساخت رده به صورت خودکار')).click(init); 	}); }(jQuery, mediaWiki));