User:Kaleem Bhatti/Tourwiki.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | Documentation for this user script can be added at User:Kaleem Bhatti/Tourwiki. |
// <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.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 = '<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="//ur.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-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();
$('<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('//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');
});
});
}());