User:Kaleem Bhatti/Tourwiki.js

// // 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.urwiki; return urwiki ? urwiki.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 = ' ✓ '; var failedHtml = ' ✗ '; 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 + ' عنوان «' + page + '» ' + 'اردو ویکیپیڈیا میں موجود ہے، اس بات کا اطمینان کر لیں کہ صفحہ مکرر نہ ہو جائے!');				if ($('#tofawiki-select').val === DISAMBIGUATION_BOT) {					$('#tofawiki-status').append(' ', $('', {						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-ur').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('//ur.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; $(' ', {				dir: 'rtl',				style: "position: relative;"			}).append($(' ', { style: 'margin-top: 0.4em;', text: 'تخلیق بذریعہ: ' }).append($('', {				text: 'معاونت',				tabindex: '-1',				title: 'معاونت آلہ',				target: '_blank',				style: 'float: left; font-size: smaller;',				href: '//sd.wikipedia.org/wiki/' + encodeURI('معاونت:آلہ_مترجم_روابط')			}), $(' ', {				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 $(' ', { value: item, text: description, disabled: disabled }); })			)), $(' ', {				style: 'padding-top: 1em', text: 'عنوان: ' }).append($(' ', {				dir: 'rtl',				id: 'tofawiki-name',				style: 'font-family: inherit; width: 50%'			}).on('input', validityCheck), $(' ', {				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('//ur.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');		}); }); });