میڈیاویکی:Gadget-Peshkar-addAuthorityControl.js
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
![]() | اس اسکرپٹ کی دستاویزی تفصیلات میڈیاویکی:Gadget-Peshkar-addAuthorityControl پر درج کی جا سکتی ہیں۔ |
var peshkarAddAuthorityControl = (function() {
async function addAuthorityControl(pageContent) {
var api = new mw.Api();
async function getEnPage() {
const pageName = mw.config.get('wgPageName');
const params = {
action: 'query',
titles: pageName,
prop: 'langlinks',
lllang: 'en',
format: 'json',
formatversion: 2
};
try {
const data = await api.get(params);
if (data && data.query && data.query.pages) {
const pages = data.query.pages;
for (const pageId in pages) {
if (pages.hasOwnProperty(pageId)) {
const langlinks = pages[pageId].langlinks;
if (langlinks && langlinks.length > 0) {
return langlinks[0].title;
}
}
}
}
} catch (error) {
console.error('Failed to fetch English article:', error);
}
return null;
}
async function checkTemplate(englishTitle) {
const endpoint = 'https://en.wiki.x.io/w/api.php';
const params = new URLSearchParams({
action: 'query',
titles: englishTitle,
prop: 'templates',
tllimit: 'max',
format: 'json',
formatversion: 2,
tltemplates: 'Template:Authority control'
});
try {
const response = await fetch(`${endpoint}?origin=*&${params.toString()}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
if (data.query && data.query.pages) {
const page = data.query.pages[0];
if (page.templates) {
return page.templates.some(template => template.title === 'Template:Authority control');
}
}
} catch (error) {
console.error('Failed to check Authority Control template:', error);
}
return false;
}
const englishTitle = await getEnPage();
if (englishTitle) {
const hasTemplate = await checkTemplate(englishTitle);
if (hasTemplate) {
if (!/{{\s*(Authority control|معلومات کتب خانہ)\s*}}/i.test(pageContent)) {
const categoryRegex = /(\[\[\s*زمرہ\s*:[^\]]+\]\])/i;
const updatedContent = pageContent.replace(categoryRegex, '{{معلومات کتب خانہ}}\n\n$1');
return updatedContent;
} else {
return pageContent;
}
} else {
return pageContent;
}
} else {
return pageContent;
}
}
return {
addAuthorityControl: addAuthorityControl
};
}());
if (typeof window !== "undefined") {
window.peshkarAddAuthorityControl= peshkarAddAuthorityControl;
}