MediaWiki:Wp/khw/TourwikiInstaller.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
(function () {
'use strict';
function enToken() {
return $.ajax({
url: '//en.wikipedia.org/w/api.php',
data: {
action: 'query',
meta: 'tokens',
format: 'json',
origin: location.protocol + '//' + location.hostname
},
xhrFields: {
withCredentials: true
}
}).then(function (data) { return data.query.tokens.csrftoken; });
}
function loadEnPage(title) {
return new mw.Api({ ajax: { url: location.protocol + '//en.wikipedia.org/w/api.php' } }).get({
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'content',
format: 'json',
origin: location.protocol + '//' + location.hostname
}).then(function (data) {
try {
return $.map(data.query.pages, function (value) { return value; })[0].revisions[0]['*'];
} catch (ignore) { return ''; }
});
}
function saveEnPage(title, token, text, summary) {
return $.ajax({
url: '//en.wikipedia.org/w/api.php',
type: 'POST',
data: {
action: 'edit',
title: title,
text: text,
summary: summary,
minor: '',
token: token,
format: 'json',
origin: location.protocol + '//' + location.hostname
},
xhrFields: {
withCredentials: true
}
}).then(function (data) {
if (data.error && data.error.info) {
mw.notify(data.error.info);
throw data.error.info;
}
if (data.edit && data.edit.nochange !== undefined) {
throw 'no change!';
}
}, function (data) {
mw.notify(data);
});
}
$.when(
$.ready,
mw.loader.using('mediawiki.util')
).then(function () {
if (mw.config.get('wgCanonicalSpecialPageName') !== "Blankpage" || mw.config.get('wgPageName').split('/')[1] !== "tourwiki") {
return;
}
if (mw.config.get('wgUserName') === null) {
alert('آلہ استعمال کرنے کے لیے، آپ کو سب سے پہلے لاگ ان کرنا ضروری ہے.');
history.back();
return;
}
$('#content').html($('<div>', {
id: 'installermessage',
text: 'زیر التوا ہے. . .',
style: 'font-size: 200%; text-align: center; margin: 3em 0;'
}));
var userCommon = 'User:' + mw.config.get('wgUserName') + '/common.js';
loadEnPage(userCommon).then(function (content) {
if (content.indexOf('MediaWiki:Tourwiki.js') !== -1) {
$('#installermessage').html('به نظر میرسد ابزار «به ویکیفا» در حال حاضر برایتان نصب شده است.<br><br><small>اگر برگهٔ ابزار «tourwiki» را هنگام بازدید مقالههای ایجادنشدهٔ فارسی در ویکیپدیای انگلیسی مشاهده نمیکنید، برای نصب آن به صورت دستی بر اساس <a href="//ur.wikipedia.org/wiki/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7:%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1/%D8%A8%D9%87_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%81%D8%A7/%D9%86%D8%B5%D8%A8_%D8%AF%D8%B3%D8%AA%DB%8C">دستورالعمل</a> اقدام کنید؛ یا در <a href="//ur.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7:%D9%82%D9%87%D9%88%D9%87%E2%80%8C%D8%AE%D8%A7%D9%86%D9%87/%D9%81%D9%86%DB%8C">قهوهخانهٔ فنی</a> درخواست کمک کنید.</small>');
return;
}
$('#installermessage').empty().append(
$('<span>', { class: 'mw-ui-button mw-ui-primary', text: 'نصب tourwiki!', style: 'width: auto; top: 50%;' }).click(function () {
return enToken().then(function (token) {
return saveEnPage(
userCommon,
token,
'mw.loader.load("//ur.wikipedia.org/w/index.php?title=MediaWiki:Tourwiki.js&action=raw&ctype=text/javascript");\n' +
content
.replace('importScript("User:Ebraminio/tourwiki.js");\n', '')
.replace('importScriptURI("//ur.wikipedia.org/w/index.php?title=MediaWiki:Tourwiki.js&action=raw&ctype=text/javascript");\n', ''),
'+[[:ur:معاونت:آلہ/انگریزی سے اردو ویکی|tourwiki]]'
);
}).then(function () {
location.href = "//en.wikipedia.org/wiki/" + userCommon;
}, function (e) {
mw.notify('نصب موفق آمیز نبود ' + e);
});
}),
$('<div>', {
text: 'طریقهٔ استفاده: پس از نصب به کمک دکمهٔ بالا، مقالهای ناموجود در فارسی در ویکیپدیای انگلیسی را باز کنید و بر روی دکمهٔ «tourwiki» کلیک کنید.',
style: 'padding: 2em; font-size: 50%'
})
);
});
});
}());