ذريعات وڪي:TourwikiFinal.js
يادگيري: محفوظ ڪرڻ کانپوءِ تازين تبديلن کي کي ڏسڻ جي لاءِ توهان کي پنهنجي برائوزر جي ڪيش کي صاف ڪرڻ جي ضرورت آهي.
- فائرفاڪس: جڏهن Reload تي ڪلڪ ڪريو ته Shift دٻائي رکو یا Ctrl-F5 یا Ctrl-R دٻايو (Mac تي R-⌘)
- گوگل ڪروم: Ctrl-Shift-R دٻايو (Mac تي Shift-R-⌘)
- انٽرنيٽ ايڪسپلورر: جڏهن Refresh تي ڪلڪ ڪريو ته Ctrl یا Ctrl-F5 دٻايو
- اوپيرا: Tools → Preferences ۾ وڃو ۽ ڪيش صاف ڪريو
دستاويز[تخليق]
$(function () {
'use strict';
if (!$('#t-wikibase').length && $('.interlanguage-link').length && $('.wbc-editpage').length) {
mw.notify('بين الوڪي ڳنڍڻي وڪي ڊيٽا ڏي منتقل ٿي رهيو آهي، مهرباني ڪري صفحو بند نه ڪيو۔۔۔', { autoHide: false });
}
function wikidataToken() {
return $.ajax({
url: '//www.wikidata.org/w/api.php',
data: {
action: 'query',
meta: 'tokens',
format: 'json',
origin: location.protocol + '//' + location.hostname
},
xhrFields: { withCredentials: true }
}).then(function (data) {
var token = data.query.tokens.csrftoken;
if (token === '+\\') {
// not logged in
return $.Deferred().reject('login');
} else {
return token;
}
});
}
function getWikidataId(enTitle) {
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({
action: 'wbgetentities',
format: 'json',
sites: 'enwiki',
titles: enTitle,
props: 'info',
origin: location.protocol + '//' + location.hostname
}).then(function (x) {
return x.entities[Object.keys(x.entities)[0]].id;
});
}
function addWikidataSitelink(token, wikidataId, title, site) {
return $.ajax({
url: '//www.wikidata.org/w/api.php',
type: 'POST',
data: {
action: 'wbsetsitelink',
format: 'json',
id: wikidataId,
linksite: site,
linktitle: title,
bot: '1',
token: token,
origin: location.protocol + '//' + location.hostname
},
xhrFields: { withCredentials: true }
}).then(function (data) {
if (data.error) {
return $.Deferred().reject(data);
} else {
return data;
}
});
}
function loadPage(title) {
return new mw.Api().get({
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'content',
format: 'json'
}).then(function (data) {
return data.query.pages[Object.keys(data.query.pages)[0]].revisions[0]['*'];
});
}
function savePage(title, text, summary) {
return new mw.Api().post({
action: 'edit',
title: title,
text: text,
summary: summary,
nocreate: '',
minor: '',
token: mw.user.tokens.get('csrfToken')
});
}
function purgePage(title, site) {
return new mw.Api().post({
action: 'purge',
format: 'json',
titles: title,
forcelinkupdate: '1'
});
}
function purgePageEn(title, site) {
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).post({
action: 'purge',
format: 'json',
titles: title,
forcelinkupdate: '1',
origin: location.protocol + '//' + location.hostname
});
}
var faTitle = mw.config.get('wgPageName');
function trigFillcat() {
if (mw.config.get('wgNamespaceNumber') !== 14) { return; }
var defer = $.Deferred();
$.get('//tools.wmflabs.org/zumraband/zumra.php', { title: faTitle }).then(function () {
return $.get('//tools.wmflabs.org/zumraband/zzumra.php', { title: faTitle });
}).then(defer.resolve, defer.resolve);
mw.notify('زمرا بندي شروع ٿي چڪي آهي', { autoHide: false });
return defer;
}
function trigMissedRef() {
if (mw.config.get('wgNamespaceNumber') !== 0) { return; }
if ($('#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B5%D9%81%D8%AD%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%A8%D8%A7_%DB%8C%D8%A7%D8%AF%DA%A9%D8%B1%D8%AF_%D8%AE%D8%B1%D8%A7%D8%A8_(%D9%81%D9%82%D8%AF%D8%A7%D9%86_%D9%85%D9%86%D8%A8%D8%B9)"]').length === 0) {return; } //رده:صفحههای با یادکرد خراب (فقدان منبع)
var defer = $.Deferred();
$.get('//tools.wmflabs.org/dexbot/e.php', {title: faTitle}).then(defer.resolve, defer.resolve);
mw.notify('درخواست اصلاح منبع ناموجود', { autoHide: false });
return defer;
}
function trigMissedFileUpload() {
if ($('#catlinks a[href="/wiki/%D8%B2%D9%85%D8%B1%D9%88:%D9%BD%D9%BD%D9%84_%D9%81%D8%A7%D8%A6%D9%84_%DA%B3%D9%86%DA%8D%DA%BB%D9%86_%D9%88%D8%A7%D8%B1%D8%A7_%D8%B5%D9%81%D8%AD%D8%A7"]').length === 0){return;}//زمرو:ٽٽل فائل ڳنڍڻن وارا صفحا
if (mw.config.get('wgNamespaceNumber') !== 0) { return; }
if ($('[class=new][title^="فائل:"]').length === 0) { return; }
var defer = $.Deferred();
$.get('//tools.wmflabs.org/shuaib-bot/upload.php', { title: faTitle }).then(defer.resolve, defer.resolve);
mw.notify('غير موجود منصفنه تصوير چاڙهيل جي درخواست ڏني وئي آهي۔', { autoHide: false });
return defer;
}
function putHiddenWikidataPage() {
$('<iframe>', {
src: "https://www.wikidata.org/wiki/Q3",
style: "display: none;"
}).insertAfter('#content');
}
window.onbeforeunload = function () {
return 'منتقل ٿيڻ کان اڳ صفحو بند نه ڪيو';
};
function refreshAndRecommend() {
window.onbeforeunload = undefined;
var uri = new mw.Uri(mw.util.getUrl(faTitle));
if (mw.config.get('wgNamespaceNumber') === 0)
uri.extend({ withJS: 'MediaWiki:TourwikiRecommend.js' });
location.href = uri.toString();
}
var enTitle = new mw.Uri().query.enName;
$("#ca-abar-abzar").hide();
$.when(wikidataToken(), getWikidataId(enTitle), mw.loader.using('mediawiki.util'))
.then(function (token, id) {
return addWikidataSitelink(token, id, faTitle, 'sdwiki');
}).then(function () {
return mw.config.get('wgNamespaceNumber') === 10
? purgePage(faTitle) // just purge is enough for templates (ns 10)
: loadPage(faTitle).then(function (text) {
return savePage(faTitle, text.replace(/\[\[en:.*/, ''), ' ڪليم بوٽ جي مدد سان وڪي ڊيٽا ۾ بین الویڪی ڳنڍڻن جي خودڪار منتقلي');
});
})
.then(function () {
return purgePageEn(enTitle);
})
.then(trigFillcat, trigFillcat).then(function () {
mw.notify('زمرا بندي مڪمل ٿي۔');
}, function () {
putHiddenWikidataPage();
return $.get('//tools.wmflabs.org/shuaib-bot/interwikidata.php', {
page: faTitle,
en: enTitle
});
})
.then(trigFillcat, trigFillcat)
.then(trigMissedFileUpload, trigMissedFileUpload)
.then(trigMissedRef, trigMissedRef)
.then(refreshAndRecommend, refreshAndRecommend);
});