میڈیاویکی:TourwikiUpload.js
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
اس اسکرپٹ کی دستاویزی تفصیلات میڈیاویکی:TourwikiUpload پر درج کی جا سکتی ہیں۔ |
$(function () {
'use strict';
var enName = new mw.Uri().query.enName;
$('#mw-htmlform-source').replaceWith($('<div>', {
text: 'انگریزی ویکیپیڈیا سے خودکار منتقلی',
id: 'tofawiki-image',
style: 'font-size: large'
}).prepend($('<img>', {
src: 'https://en.wikipedia.org/w/thumb.php?f=' + enName.replace('File:', '') + '&w=140'
})));
$('[name=wpUpload]').click(function (e) {
e.preventDefault();
$(this).prop('disabled', 'disabled');
mw.notify('براہ کرم انتظار کریں۔۔۔', { autoHide: false });
imageNameToUrl(enName).then(getBlob).then(function (blob) {
var formData = new FormData();
formData.append('action', 'upload');
formData.append('filename', $('#wpDestFile').val());
formData.append('token', mw.user.tokens.get('csrfToken'));
formData.append('format', 'json');
formData.append('text', $('#wpUploadDescription').val());
formData.append('comment', '[[وپ:ویکی معاون|ویکی معاون]] کی مدد سے خودکار طور پر انگریزی ویکیپیڈیا سے فائل ' + enName.replace('File:', '') + ' اپلوڈ کی گئی');
formData.append('watchlist', $('#wpWatchthis').prop('checked') ? 'watch' : 'nochange');
formData.append('ignorewarnings', $('#wpIgnoreWarning').prop('checked') ? '1' : '0');
formData.append('file', blob);
return $.ajax({
url: mw.util.wikiScript('api'),
contentType: false,
processData: false,
type: 'POST',
data: formData
});
}).then(function () {
location.href = mw.util.getUrl('تصویر:' + $('#wpDestFile').val());
}, function (data) {
mw.notify(data.error);
});
});
function imageNameToUrl(name) {
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({
action: 'query',
titles: name,
prop: 'imageinfo',
iiprop: 'url',
format: 'json',
origin: location.protocol + '//' + location.hostname
}).then(function (x) {
return x.query.pages[Object.keys(x.query.pages)[0]].imageinfo[0].url;
});
}
function getBlob(url) {
var defer = $.Deferred();
// http://stackoverflow.com/a/17682424
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
defer.resolve(this.response);
}
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();
return defer;
}
function loadPageTextAndCategoriesEn(title) {
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({
action: 'query',
prop: 'revisions|categories',
titles: title,
clprop: 'hidden',
rvprop: 'content',
format: 'json',
origin: location.protocol + '//' + location.hostname
}).then(function (data) {
var page = data.query.pages[Object.keys(data.query.pages)[0]];
return {
text: page.revisions[0]['*'],
categories: page.categories.map(function (x) { return x.title.replace(/^Category:/, ''); })
};
});
}
var PAGENAME_PLACEHOLDER = 'یہاں مضمون کا عنوان درج کریں';
loadPageTextAndCategoriesEn(enName).then(function (page) {
var text = page.text, categories = page.categories.join('\n');
$('#mw-htmlform-description').parent().after($('<textarea>', {
disabled: 'disabled',
dir: 'LTR',
style: 'width: 600px; height: 400px;'
}).val(text));
var license, template, description;
if (/Album covers/i.test(categories)) {
license = 'غلاف البم';
template = 'دلیل استعمال برائے غیر آزاد غلاف البم';
description = 'غلاف';
} else if (/Coat of arms/i.test(categories)) {
license = 'غیر آزاد علامت';
template = 'دلیل استعمال غیر آزاد';
description = 'غیر آزاد علامت';
} else if (/stamp/i.test(categories)) {
license = 'غیر آزاد ڈاک ٹکٹ';
template = 'دلیل استعمال غیر آزاد';
description = 'ڈاک ٹکٹ';
} else if (/Currency/i.test(categories)) {
license = 'غیر آزاد کرنسی';
template = 'دلیل استعمال غیر آزاد';
description = 'کرنسی کی تصویر';
} else if (/Film poster|video covers|movie posters/i.test(categories)) {
license = 'غلاف فلم';
template = 'دلیل استعمال برائے غیر آزاد غلاف فلم';
description = 'فلم کا غلاف';
} else if (/Software covers/i.test(categories)) {
license = 'غیر آزاد غلاف سافٹ ویئر';
template = 'دلیل استعمال غیر آزاد';
description = 'غلاف';
} else if (/game covers/i.test(categories)) {
license = 'غیر آزاد غلاف ویڈیو گیم';
template = 'دلیل استعمال غیر آزاد';
description = 'غلاف';
} else if (/Book covers/i.test(categories)) {
license = 'غلاف کتاب';
template = 'دلیل استعمال غیر آزاد';
description = 'سرورق';
} else if (/Magazine covers|newspaper covers|journal covers/i.test(categories)) {
license = 'غیر آزاد مجلہ سرورق';
template = 'دلیل استعمال غیر آزاد';
description = 'سرورق';
} else if (/audio samples|audio clips/i.test(categories)) {
license = 'غیر آزاد صوتی نمونہ';
template = 'دلیل استعمال غیر آزاد';
description = 'صوتی نمونہ';
} else if (/video samples|Fair use media/i.test(categories)) {
license = 'غیر آزاد ویڈیو نمونہ';
template = 'دلیل استعمال غیر آزاد';
description = 'ویڈیو نمونہ';
} else if (/logos|symbols|seals|icon/i.test(categories)) {
license = 'غیر آزاد لوگو';
template = 'دلیل استعمال برائے غیر آزاد لوگو';
description = 'لوگو';
} else if (/Fair use character artwork/i.test(categories)) {
license = 'غیر آزاد کردار';
template = 'دلیل استعمال غیر آزاد';
description = 'تصویر';
} else if (/Non-free posters/i.test(categories)) {
license = 'پوسٹر';
template = 'دلیل استعمال غیر آزاد';
description = 'پوسٹر/اشتہار';
} else if (/game covers/i.test(categories)) {
license = 'غیر آزاد غلاف ویڈیو گیم';
template = 'دلیل استعمال برائے غیر آزاد غلاف ویڈیو گیم';
description = 'غلاف ویڈیو گیم';
} else if (/{{Non-free biog-pic/i.test(text)) {
license = 'شخصیت کی غیر آزاد تصویر';
template = 'دلیل استعمال غیر آزاد';
description = 'تصویر';
} else if (/public domain/i.test(categories)) {
license = 'PD-USonly';
template = 'معلومات';
description = 'تصویر';
} else if (/abroad/i.test(categories)) {
license = 'PD-US-1923-abroad';
template = 'معلومات';
description = 'تصویر';
} else {
license = 'منصفانہ|تصویر|تصویر کش یا ناشر';
template = 'دلیل استعمال غیر آزاد';
description = 'تصویر';
}
if (template === 'معلومات') {
$('#wpUploadDescription').val([
'{{معلومات' ,
'| وضاحت = ' + description + ' [[' + PAGENAME_PLACEHOLDER + ']]',
'| ماخذ = [[:en:' + enName + '|انگریزی ویکیپیڈیا]]',
'| انگریزی = صارفین ویکیپیڈیا کے صارفین',
'| اجازت نامہ = {' + '{' + license + '}}',
'}}'
].join('\n'));
} else {
$('#wpUploadDescription').val([
'{{' + template,
'| Description = ' + description + ' [[' + PAGENAME_PLACEHOLDER + ']]',
'| Source = [[:en:' + enName + '|انگریزی ویکیپیڈیا]]',
'| Article = ' + PAGENAME_PLACEHOLDER,
'| Use = خانہ معلومات میں',
'| Minimality = ہاں',
'| Purpose = برائے استعمال در [[' + PAGENAME_PLACEHOLDER + ']]',
'| Replaceability = نہیں',
'| Other information = ',
'}}',
'',
'== اجازت نامہ ==',
'{' + '{' + license + '}}'
].join('\n'));
}
return (text.match(/\|Article\s*=\s*(.+)/i) || text.match(/''\[\[(.+?)\]\]''/) || [])[1];
}).then(replaceFairUsedOnPlaceholder);
function replaceFairUsedOnPlaceholder(enFairused) {
if (!enFairused) { return false; }
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({
action: 'query',
format: 'json',
redirects: '',
titles: enFairused,
origin: location.protocol + '//' + location.hostname
}).then(function (result) {
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({
action: 'wbgetentities',
format: 'json',
sites: 'enwiki',
titles: (result.query.pages[Object.keys(result.query.pages)[0]] || {}).title,
origin: location.protocol + '//' + location.hostname
});
}).then(function (data) {
return (data.entities[Object.keys(data.entities)[0]].sitelinks.urwiki || {}).title;
}).then(function (fairUsedOn) {
if (!fairUsedOn) {
mw.notify('معلوم ہوتا ہے کہ ابھی یہ تصویر کسی مضمون میں مستعمل نہیں ہے');
} else {
$('#wpUploadDescription').val(
$('#wpUploadDescription').val().replace(new RegExp(PAGENAME_PLACEHOLDER, 'g'), fairUsedOn)
);
}
});
}
});