ذريعات وڪي:Tourwiki.js

تفصيل جي لاءِ ڪلڪ ڪريويادگيري: محفوظ ڪرڻ کانپوءِ تازين تبديلن کي کي ڏسڻ جي لاءِ توهان کي پنهنجي برائوزر جي ڪيش کي صاف ڪرڻ جي ضرورت آهي.

  • فائرفاڪس: جڏهن Reload تي ڪلڪ ڪريو ته Shift دٻائي رکو یا Ctrl-F5 یا Ctrl-R دٻايو (Mac تي R-⌘)
  • گوگل ڪروم: Ctrl-Shift-R دٻايو (Mac تي Shift-R-⌘)
  • انٽرنيٽ ايڪسپلورر: جڏهن Refresh تي ڪلڪ ڪريو ته Ctrl یا Ctrl-F5 دٻايو
  • اوپيرا: Tools → Preferences ۾ وڃو ۽ ڪيش صاف ڪريو
دستاويز[تخليق]
// <nowiki> // DO NOT REMOVE THIS LINE EVER
// Author: User:Ebraminio

(function () {
	'use strict';
 
	if (mw.config.get('wgAction') !== 'view' ||
			(mw.config.get('wgNamespaceNumber') !== 0 &&
			mw.config.get('wgNamespaceNumber') !== 6 &&
			mw.config.get('wgNamespaceNumber') !== 10 &&
			mw.config.get('wgNamespaceNumber') !== 14)) {
		return;
	}
 
	/**
	 * resolves redirect and get title of fair use image article
	 */
	var fairUsedOn = 'عنوان مضمون';
	function getFairUsedOn() {
		var title = $('th:contains("Article")').next().find('a').first().prop('title');
		if (title === undefined) { return false; }
		return new mw.Api().get({ action: 'query', format: 'json', redirects: '', titles: title }).then(function (result) {
			return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({
				action: 'wbgetentities',
				format: 'json',
				sites: 'enwiki',
				titles: $.map(result.query.pages, function (x, y) {
					return x.title;
				})[0],
				origin: window.location.protocol + '//' + window.location.hostname
			}).then(function (data) {
				try {
					fairUsedOn = $.map(data.entities, function (x) { var fawiki = x.sitelinks.sdwiki; return sdwiki ? sdwiki.title : undefined; })[0];
					if (fairUsedOn === undefined) { return false; }
					return fairUsedOn;
				} catch(ignore) {
					return false;
				}
			});
		});
	}
 
	var GENERAL_BOT = 'وڪي‌پيڊيا:درخواست ڪيل مضمون (رباتیک)';
	var CITIES_BOT = 'ویکی‌پدیا:ویکی‌پروژه ایجاد مقاله‌های شهرها با ربات/درخواست ساخت رباتیک';
	var PEOPLE_BOT = 'ویکی‌پدیا:درخواست ایجاد مقاله (رباتیک)/انسان';
	var OTHER_REQUESTS = 'ویکی‌پدیا:مقاله‌های درخواستی';
	var CATEGORIES_BOT = 'ویکی‌پدیا:درخواست ایجاد رده (رباتیک)';
	var FAIRUSE_IMAGES = 'منصفانه استعمال جي تصوير';
	var TEMPLATE_TRANSLATOR = 'مرتجم سانچو';
	var DISAMBIGUATION_BOT = 'سلجهائپ';
 
	var requestingPages = {
		'سوانح عمري، فلم، موسيقي، دياره يا ندي، عمارتون ۽ وڊيو رانديون': GENERAL_BOT,
		'شهرها و مکان‌های مسکونی': CITIES_BOT,
		'انسان ۽ شخصيتون': PEOPLE_BOT,
		'سلجهائپ': DISAMBIGUATION_BOT,
		'مطالب عمومی': OTHER_REQUESTS,
		'زمرا': CATEGORIES_BOT,
		'منصفانه تصويرون': FAIRUSE_IMAGES,
		'سانچا': TEMPLATE_TRANSLATOR
	};
 
	function suggestRequestPlace() {
		if ($('.infobox.geography').length !== 0 && ($('#catlinks a[href^="/wiki/Category:Rivers"]').length === 0)) {
			return CITIES_BOT;
		} else if (($('.infobox.biota, .infobox.haudio, .description a[href="/wiki/Single_(music)"]').length !== 0) ||
				($('#coordinates').length !== 0 && $('.infobox.vcard .fn').length !== 0) ||
				($('#catlinks a[href^="/wiki/Category:Rivers"]').length !== 0) ||
				($('#catlinks a[href^="/wiki/Category:Songs"]').length !== 0) ||
				($('#catlinks a[href^="/wiki/Category:Films"]').length !== 0) ||
				($('#catlinks a[href$="films"]').length !== 0) ||
				($('#catlinks a[href*="video_games"], #catlinks a[href*="Video_game"]').length !== 0)) {
			return GENERAL_BOT;
		} else if ($('#catlinks a[href^="/wiki/Category:All_article_disambiguation_pages"]').length !== 0) {
			return DISAMBIGUATION_BOT;
		} else if (mw.config.get('wgNamespaceNumber') === 14) {
			return CATEGORIES_BOT;
		} else if (mw.config.get('wgNamespaceNumber') === 10) {
			return TEMPLATE_TRANSLATOR;
		} else if (mw.config.get('wgNamespaceNumber') === 6) {
			return FAIRUSE_IMAGES;
		} else if (($('.infobox.vcard .fn, #catlinks a[href^="people"]').length !== 0) &&
				($('#catlinks a[href*="Ethnic_groups"]').length === 0)) {
			return PEOPLE_BOT;
		}
		return OTHER_REQUESTS;
	}
 
	function pageExists(page) {
		return $.ajax({
			url: '//sd.wikipedia.org/w/api.php',
			data: {
				action: 'query',
				titles: page,
				format: 'json',
				origin: location.protocol + '//' + location.hostname
			}
		}).then(function (data) { return data.query.pages['-1'] === undefined; });
	}
 
	var passedHtml = '<span style="color: green; font-size: 140%">✓</span>';
	var failedHtml = '<span style="color: red; font-size: 140%">✗</span>';
	function validityCheck() {
		var origValue = $('#tofawiki-name').val(), page = origValue;
		if (page === '') { $('#tofawiki-status').html(''); return; }
		if (mw.config.get('wgNamespaceNumber') === 14) { page = 'زمرو:' + page.replace(/^زمرو:/, ''); }
		if (mw.config.get('wgNamespaceNumber') === 10) { page = 'سانچو:' + page.replace(/^سانچو:/, ''); }
		if (mw.config.get('wgNamespaceNumber') === 6) { page = 'فائل:' + page.replace(/^فائل:/, ''); }
		pageExists(page).then(function (exists) {
			if ($('#tofawiki-name').val() !== origValue) { // that request is no longer relevant
				return;
			}
			if (!exists) {
				$('#tofawiki-status').html(passedHtml + ' پيش نظر صفحو بعنوان «' + page + '» ' +
					'سنڌي وڪيپيڊيا ۾ موجود ناهي، اوهان هن عنوان سان صفحو تخليق ڪري سگھو ٿا!');
			} else {
				$('#tofawiki-status').html(failedHtml + ' عنوان «<a target="_blank" href="//sd.wikipedia.org/wiki/' +
					encodeURI(page) + '">' + page + '</a>» ' +
					'سنڌي وڪيپيڊيا تي موجود آهي، ان ڳالهه جي پڪ ڪري وٺو ته صفحو ورجايو نه وڃي.!');
				if ($('#tofawiki-select').val() === DISAMBIGUATION_BOT) {
					$('#tofawiki-status').append('<br><br>', $('<a>', {
						text: 'سلجهائپ صفحو جوڙڻ لاءِ عنوان تي ڪلڪ ڪيو',
						href: '#'
					}).click(function (e) {
						e.preventDefault();
						$('#tofawiki-name').val($('#tofawiki-name').val() + ' (سلجھائپ)');
						validityCheck();
					}));
				}
			}
		});
	}
 
	$.when($.ready, mw.loader.using('jquery.ui')).then(function () {
		// if already has a link to fawiki, give up
		if ($('.interlanguage-link.interwiki-sd').length !== 0) { return; }
		// if is commons image, give up
		if ($('#ca-view-foreign').length !== 0) { return; }
 
		$('#ca-tofawiki').remove();
		if ($('#mw-imagepage-nofile, #noarticletext').length !== 0) {
			return;
		}
		// if it is a free image, bring TransferToCommons instead
		if (mw.config.get('wgNamespaceNumber') === 6 && $('#catlinks a[href="/wiki/Category:GFDL_files"], ' +
				'#catlinks a[href^="/wiki/Category:Creative_Commons_Attribution"], ' +
				'#catlinks a[href="/wiki/Category:Move_to_Commons_Priority_Candidates"],' +
				'#catlinks a[href="/wiki/Category:Convert_to_SVG_and_copy_to_Wikimedia_Commons"], ' +
				'#catlinks a[href^="/wiki/Category:Copy_to_Wikimedia_Commons"]').length !== 0 &&
				$('#catlinks a[href^="/wiki/Category:Wikipedia_files_not_suitable_for_Commons"]').length === 0) {
			mw.loader.load('//sd.wikipedia.org/w/index.php?title=MediaWiki:Gadget-TransferToCommons.js&action=raw&ctype=text/javascript');
			return;
		}
 
		mw.util.addCSS(
			"#tofawiki-form * { font-family: 'Segoe UI', Tahoma, 'Iranian Sans', 'DejaVu Sans', 'Noto Sans', 'Droid Arabic Kufi', sans-serif !important; } " +
			"#tofawiki-form .ui-dialog-buttonset { float: left; } " +
			"#tofawiki-form .ui-dialog-titlebar-close { right: initial; left: .75em; } " +
			"#tofawiki-form .ui-dialog-title { float: right; }"
		);
		$(mw.util.addPortletLink($('#p-views').length !== 0 ? 'p-views' : 'p-cactions', '#', 'مدد وڪي', 'ca-tofawiki', null, null, '#ca-view')).click(function (e) {
			e.preventDefault();
			$('#tofawiki-form').remove();
			$('<div>', {
				dir: 'rtl',
				style: "position: relative;"
			}).append($('<div>', {
				style: 'margin-top: 0.4em;',
				text: 'تخلیق بذریعہ: '
			}).append($('<a>', {
				text: 'مدد',
				tabindex: '-1',
				title: 'مدد اوزار',
				target: '_blank',
				style: 'float: left; font-size: smaller;',
				href: '//sd.wikipedia.org/wiki/' + encodeURI('مدد:اوزار_مترجم_ڳنڍڻا')
			}), $('<select>', {
				id: 'tofawiki-select',
				style: 'padding: 1px; vertical-align: baseline; font-family: inherit;'
			}).append(
				$.map(requestingPages, function (item, description) {
					var disabled = false;
					if (mw.config.get('wgNamespaceNumber') === 14 && item !== CATEGORIES_BOT ||
							mw.config.get('wgNamespaceNumber') === 0 && item === CATEGORIES_BOT) {
						disabled = true;
					}
					if (mw.config.get('wgNamespaceNumber') === 6 && item !== FAIRUSE_IMAGES ||
							mw.config.get('wgNamespaceNumber') === 0 && item === FAIRUSE_IMAGES) {
						disabled = true;
					}
					return $('<option>', { value: item, text: description, disabled: disabled });
				})
			)), $('<div>', {
				style: 'padding-top: 1em',
				text: 'عنوان: '
			}).append($('<input>', {
				dir: 'rtl',
				id: 'tofawiki-name',
				style: 'font-family: inherit; width: 50%'
			}).on('input', validityCheck), $('<div>', {
				id: 'tofawiki-status'
			}))).dialog({
				width: 500,
				title: 'سنڌي وڪيپيڊيا تي منتقل ڪيو',
				open: function () {
					$('#tofawiki-select').val(suggestRequestPlace());
					if (mw.config.get('wgNamespaceNumber') === 10) {
						$('#tofawiki-name').val(mw.config.get('wgTitle'));
						validityCheck();
					}
					if (mw.config.get('wgNamespaceNumber') === 6) {
						$('#tofawiki-name').val(mw.config.get('wgTitle')).prop('dir', 'ltr').css('width', '80%');
						validityCheck();
					}
				},
				buttons: [{
					text: mw.config.get('wgNamespaceNumber') === 6 ? 'اپلوڊ' : 'تخليق',
					title: 'ااپلوڊ ٿي وڃڻ کان پوءِ تصوير ۽ ان جا تفضيل جي نظر ثاني ضرور ڪيو',
					class: 'ui-button-blue',
					click: function () {
						var faName = $('#tofawiki-name').val();
						var requestingPage = $('#tofawiki-select').val();
						var uri = new mw.Uri('//sd.wikipedia.org/w/index.php');
						if (!faName || !requestingPage) {
							$('#tofawiki-status').text('نالو لکو!');
							return;
						}
						if (requestingPage === FAIRUSE_IMAGES) {
							uri.query = {
								title: 'خاص:چاڙهيو',
								wpDestFile: faName,
								enName: mw.config.get('wgRelevantPageName'),
								withJS: 'MediaWiki:TourwikiUpload.js',
								wpUploadDescription: '----'
							};
						} else {
							if (requestingPage === CATEGORIES_BOT) { faName = "زمرو:" + faName.replace(/^زمرو:/, ''); }
							if (requestingPage === TEMPLATE_TRANSLATOR) { faName = "سانچو:" + faName.replace(/^سانچو:/, ''); }
							uri.query = {
								title: faName,
								enName: mw.config.get('wgRelevantPageName'),
								enOldid: mw.config.get('wgRevisionId'),
								redlink: 1,
								action: 'edit',
								withJS: 'MediaWiki:Tourwikihelper.js',
								requestingPage: requestingPage,
								editintro: 'سانچو:در سنڌي وڪي/اعلان ترمیم'
							};
						}
						window.open(uri.toString());
						$(this).dialog('close');
					}
				}],
				close: function () {
					$(this).remove();
				}
			}).parent().prop('id', 'tofawiki-form');
		});
	});
}());