مدیاویکی:Gadget-AHK.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
/* A tool to add Template:information to images
Author: User:Ladsgroup
*/
(function ($, mw) {
'use strict';
function setwindow (text) {
var uri = new mw.Uri();
uri.query = {
action: 'edit',
withJS: 'MediaWiki:AHK2.js',
text: text,
summary: 'افزودن الگوهای اطلاعات به کمک [[مدیاویکی:Gadget-AHK.js|ابزار]]',
}
window.location = uri.toString();
}
function check (text, callback) {
if (text.search(/\-([Ss]elf|خود)\}\}/) !== -1) {
var date = '';
try {
date = document.getElementsByClassName('exif-datetimeoriginal')[0].lastElementChild.innerHTML.split("،")[0] + ' (طبق اطلاعات فراداده)';
} catch (err) {
date = '';
}
var author = document.getElementById('mw-imagepage-section-filehistory').lastElementChild.lastElementChild.lastElementChild.children[5].firstElementChild.title.replace(' (صفحه وجود ندارد)','');
var info = "{{اطلاعات\n |توضیحات = $2\n |تاریخ = "+date+"\n |منبع = اثر شخصی\n |پدیدآور = [[کاربر:" + author + "|" + author + "]]\n |اجازهنامه = \n |دیگر نسخهها = \n}}\n";
text = text.replace(/(^(?:\=\= *?شرح\:? *?\=\=\n)?)([\s\S]*?)((?:\=\=[\s\S]+?)?\{\{(?:.+?)\-(?:[Ss]elf|خود)\}\})/, "$1" + info + "$3");
callback(text);
} else if (text.search("{{جلد آلبوم}}") !== -1) {
var art = document.getElementsByClassName('mw-imagepage-linkstoimage-ns0')[0].firstElementChild.title
if (!art) {
art = '';
}
var info = '{{دلیل استفاده جلد آلبوم غیر آزاد\n |توضیحات = $2 \n |منبع = \n |مقاله = ' + art + ' \n |بخش یا قسمت = \n |کیفیت پایینتر = \n |دلیل = \n |جایگزین = \n |اطلاعات بیشتر = \n}}\n';
text = text.replace(/(^(?:\=\= *?شرح\:? *?\=\=\n)?)([\s\S]*?)((?:\=\=[\s\S]+?)?\{\{جلد آلبوم\}\})/, "$1" + info + "$3");
callback(text);
} else if (text.search("{{پوستر}}") !== -1) {
var art = document.getElementsByClassName('mw-imagepage-linkstoimage-ns0')[0].firstElementChild.title
if (!art) {
art = '';
}
var info = '{{دلیل استفاده پوستر غیر آزاد\n |توضیحات = $2 \n |منبع = \n |مقاله = ' + art + ' \n |بخش یا قسمت = \n |کیفیت پایینتر = \n |دلیل = \n |جایگزین = \n |اطلاعات بیشتر = \n}}\n';
text = text.replace(/(^(?:\=\= *?شرح\:? *?\=\=\n)?)([\s\S]*?)((?:\=\=[\s\S]+?)?\{\{پوستر\}\})/, "$1" + info + "$3");
callback(text);
} else if ($('#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D9%85%D8%AD%D8%AA%D9%88%DB%8C%D8%A7%D8%AA_%D8%BA%DB%8C%D8%B1_%D8%A2%D8%B2%D8%A7%D8%AF"]').length) { // non free content
var art = document.getElementsByClassName('mw-imagepage-linkstoimage-ns0')[0].firstElementChild.title
if (!art) {
art = '';
}
var info = '{{دلیل استفاده اثر غیر آزاد\n| توضیحات = $2\n| منبع = \n| مقاله = ' + art + '\n| بخش یا قسمت = <!-- از کل محتوای غیر آزاد استفاده شدهاست یا از جزئی آن؟ -->\n| کیفیت پایینتر = \n| کاربرد = \n| جایگزین = \n| اطلاعات بیشتر = \n}}\n'
text = text.replace(/(^(?:\=\= *?شرح\:? *?\=\=\n)?)([\s\S]*?)((?:\=\=[\s\S]+?)?\{\{)/, "$1" + info + "$3");
callback(text);
} else {
var info = '{{اطلاعات\n|توضیحات = $2\n|منبع = \n|تاریخ = \n|پدیدآور = \n|اجازهنامه = \n|دیگر نسخهها = \n}}\n';
text = text.replace(/(^(?:\=\= *?شرح\:? *?\=\=\n)?)([\s\S]*?)((?:\=\=[\s\S]+?)?\{\{)/, "$1" + info + "$3");
callback(text);
}
};
function loadPage(title, callback) {
new mw.Api().get({
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'content',
format: 'json'
}).done(function (data) {
try {
callback($.map(data.query.pages, function (value) {
return value;
})[0].revisions[0]['*'], setwindow);
}
catch (exception) {
callback('', setwindow)}
}).fail(function (data) {
callback($.map(data.query.pages, function (value) {
return value;
})[0].revisions[0], setwindow);
});
};
if (mw.config.get('wgNamespaceNumber') === 6 && !(document.getElementById("fileinfotpl_desc"))) {
$(function () {
$(mw.util.addPortletLink('p-views', '#', 'افزودن اطلاعات', 'ca-ahk', 'افزودن الگوی اطلاعات'))
.click(function (e) {
loadPage(mw.config.get('wgPageName'), check);
});
});
}
}(jQuery, mediaWiki));