مدیاویکی:Gadget-BotTools.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
$(function() {
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]['*']);
} catch (exception) {
callback('');
}
}).fail(function(data) {
callback($.map(data.query.pages, function(value) {
return value;
})[0].revisions[0]);
});
}
function savePage(title, text, summary, callback) {
new mw.Api().post({
action: 'edit',
title: title,
text: text,
summary: summary,
minor: '',
token: mw.user.tokens.get('csrfToken')
}).done(function(data) {
if (data.error && data.error.info) {
mw.notify(data.error.info);
} else {
callback();
}
}).fail(function(data) {
mw.notify(data);
});
}
function CloseTalkPage(text) {
text = text.replace("<!-- ↓ پایین این خط - جدید در بالا ↓ -->", "<!-- ↓ پایین این خط - جدید در بالا ↓ -->\n{{ویکیپدیا:گزیدن نگاره برگزیده/" + mw.config.get('wgTitle') + "}}");
mw.notify('الگو پیشنهاد برگزیدگی به صفحه افزوده شد!');
return text;
}
function loadSavePageRefresh(page, replaceCallback, summary) {
loadPage(page, function(text) {
savePage(page, replaceCallback(text), summary, function() {
//window.location = mw.util.getUrl(page) + '?action=purge';
});
});
}
function addBotLink2(botName, id, tooltip, note, botUrl, imageUrl) {
$(mw.util.addPortletLink(
'p-cactions',
'#',
botName,
id,
tooltip
)).click(function(e) {
e.preventDefault();
mw.notify(note, {
autoHide: false
});
$.get(new mw.Uri(botUrl).extend({
enwiki: mw.config.get('wgTitle'),
}).toString()).then(function(result) {
mw.notify(result.msg, {
autoHide: false
});
loadSavePageRefresh("ویکیپدیا:گزیدن نگاره برگزیده",
function(text) {
return CloseTalkPage(text)
}, '/' + '*افزودن نظرخواهی جدید*' + '/');
var uri = new mw.Uri();
uri.query = {
title: "ویکیپدیا:گزیدن نگاره برگزیده/" + mw.config.get('wgTitle'),
action: 'edit',
redlink: 1,
withJS: 'MediaWiki:AHK2.js',
summary: 'ایجاد صفحه نظرخواهی بر اساس ابزار',
text: result.page_content,
};
uri.path = mw.config.get('wgScriptPath') + '/index.php';
window.location = uri.toString();
})
}).find('a').prepend(imageUrl ? [$('<img>', {
src: imageUrl,
height: 20,
width: 20
}), ' '] : '');
}
function addBotLink(botName, id, tooltip, note, botUrl, imageUrl) {
$(mw.util.addPortletLink(
'p-cactions',
'#',
botName,
id,
tooltip
)).click(function(e) {
e.preventDefault();
mw.notify(note, {
autoHide: false
});
var pageTitle=mw.config.get('wgTitle')
if (id === 'ca-r-replace') {//اگر ابزار جایگزینی پیوند بود
alert('ویرایش صرفاً به قصد جایگزینی [[تغییرمسیر]] > [[صفحهٔ هدف]]، عمل پسندیدهای نیست. لطفاً از این ابزار فقط در جهت اصلاح پیوندهای نادرست به درست استفاده کنید.')
var link1 = prompt("برای [[پیوند۱]] > [[پیوند۲]] عنوان پیوند مبدأ یا پیوند۱ چیست؟");
var link2 = prompt("برای [[پیوند۱]] > [[پیوند۲]] عنوان پیوند مقصد یا پیوند۲ چیست؟");
if (link1.length > 1 && link2.length > 1){
var reResion = prompt("چرا میخواهید [["+link1+"]] > [["+link2+"]] جایگزین شود؟");
if (reResion.length <= 1){
alert('دلیل جایگزینی را مشخص نکردید!')
var reResion = prompt("چرا میخواهید [["+link1+"]] > [["+link2+"]] جایگزین شود؟");
if (reResion.length <= 1){return;}
}
pageTitle=link1+'---'+link2+'---'+reResion
}else{
alert('پیوند۱ یا پیوند۲ تعریف مشخص نشدهاند در نتیجه عمل جایگزینی انجام نمیشود!')
}
}
$.get(new mw.Uri(botUrl).extend({
title: pageTitle,
fawiki: mw.config.get('wgTitle').replace(/ /g,'_'),
user: 'کاربر:' + mw.config.get('wgUserName'),
namespace: mw.config.get('wgNamespaceNumber')
}).toString()).then(function(result) {
mw.notify(result.msg, {
autoHide: false
});
var resultmsg = result.msg;
var uri = new mw.Uri(),
pageTitle;
if (id === 'ca-eval' && mw.config.get('wgNamespaceNumber') === 0) {
pageTitle = 'بحث:' + mw.config.get('wgPageName')
} else if (id === 'ca-articleneeded') {
pageTitle = resultmsg;
} else {
pageTitle = mw.config.get('wgPageName')
}
uri.query = {
'title': pageTitle,
'diff': 'cur',
'oldid': 'prev'
};
uri.path = mw.config.get('wgScriptPath') + '/index.php';
if (id !== 'ca-articlefilling' && id !== 'ca-filling'&& id !== 'ca-navebox' && id !== 'ca-pipe'){
window.location = uri.toString();
}else if (id !== 'ca-r-replace'){
mw.notify('ربات شروع به کار کرد.');
}else{
setTimeout(function() {
var uri = new mw.Uri()
uri.query = {
'title': pageTitle
};
uri.path = mw.config.get('wgScriptPath') + '/index.php';
window.location = uri.toString();
}, 8000);//تاخیر در بهروز کردن صفحه تا ربات در این مدت تعدادی صفحه به رده افزوده باشد.
}
});
}).find('a').prepend(imageUrl ? [$('<img>', {
src: imageUrl,
height: 20,
width: 20
}), ' '] : '');
}
// If the user is blocked don't show these tools
var TheQuery='//fa.wikipedia.org/w/api.php?format=json&action=query&list=users&usprop=blockinfo&ususers='+mw.config.get('wgUserName')
var blocked;
$.getJSON(TheQuery).done(function(query) {
if(!query.query) { return; }
query = query.query;
var user = query.users[0];
try {
blocked = typeof user.blockedby != "undefined";
} catch(e) {
return;
}
}).then(function() {
if(blocked) {
//alert( 'Yes')
return;
}
});
if (mw.config.get('wgNamespaceNumber') === 0 &&
$('[class=new][title^="پرونده:"]').length !== 0 &&
$('#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%AF%D8%A7%D8%B1%D8%A7%DB%8C_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%AE%D8%B1%D8%A7%D8%A8_%D8%A8%D9%87_%D9%BE%D8%B1%D9%88%D9%86%D8%AF%D9%87"]').length !== 0) {
// رده:صفحههای_دارای_پیوند_خراب_به_پرونده
$.get('//rezabot.toolforge.org/uploadfairuse.php', { title: mw.config.get('wgPageName') });
//mw.notify('درخواست بارگذاری تصویر منصفانهٔ ناموجود داده شد.', { autoHide: false })
};
if (mw.config.get('wgNamespaceNumber') === 14) {
// ابزار افزودن | به اعضای ردهها
addBotLink(
' پیشفرض رده',
'ca-pipe',
'افزودن پیشفرض به اعضای رده برای نمایش بهتر آنها در رده',
'افزودن پیشفرضرده به ردهها آغاز شد، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/piping.php',
'//upload.wikimedia.org/wikipedia/commons/8/80/Ic_flip_48px.svg'
);
addBotLink(
'پرکردن رده (با ربات ردههمسنگ)',
'ca-filling',
'افزودن صفحه به رده به کمک ربات رده همسنگ',
'ربات رده همسنگ شروع به کار کرد',
'//rezabot.toolforge.org/fillcat.php',
'//upload.wikimedia.org/wikipedia/commons/f/fb/Ic_archive_48px.svg'
);
addBotLink(
'فهرست صفحات مورد نیاز',
'ca-articleneeded',
'تهیه فهرست صفحاتی که در این رده موجودند و در ویکیفا وجود ندارند',
'ربات در حال تهیه فهرست صفحات در زیرصفحهٔ کاربری شماست.',
'//rezabot.toolforge.org/neededarticle.php',
'//upload.wikimedia.org/wikipedia/commons/f/fc/Ic_assignment_48px.svg'
);
if (mw.config.get('wgUserGroups').indexOf('autopatrolled') > -1 || mw.config.get('wgUserGroups').indexOf('sysop') > -1) {
// ابزار انتقال رده فقط برای مدیران و گشتزنها فعال شود
importScript('MediaWiki:Gadget-CategoryMove.js');
}
}
if (mw.config.get('wgNamespaceNumber') === 10) {
// ابزار افزودن ناوباکس
addBotLink(
' افزودن ناوباکس',
'ca-navebox',
'افزودن الگوی ناوباکس به مقالات',
'افزودن ناوباکس به مقالات آغاز شد، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/addnavbox.php',
'//upload.wikimedia.org/wikipedia/commons/3/3f/Ic_add_circle_48px.svg'
);
}
if (mw.config.get('wgNamespaceNumber') === 0) {
// ابزار افزودن جعبه همسنگ
// ابزار درجهبندی مقالات در بحث مقاله وپ:آفلاین
addBotLink(
' جعبه و نگارخانه',
'ca-box',
'افزودن جعبه اطلاعات و نگارخانه از ویکیپدیای انگلیسی',
'شروع دریافت جعبه و نگارخانه، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/getbox.php',
'//upload.wikimedia.org/wikipedia/commons/c/c9/Ic_crop_original_48px.svg'
);
//ابزار رده همسنگ
addBotLink(
'رده همسنگ',
'ca-articlefilling',
'افزودن صفحه به رده به کمک ربات رده همسنگ',
'ربات رده همسنگ شروع به کار کرد',
'//rezabot.toolforge.org/fillcatArticle.php',
'//upload.wikimedia.org/wikipedia/commons/f/fb/Ic_archive_48px.svg'
);
//افزودن خصوصیت به آیتم ویکیداده
addBotLink(
'بهروز کردن آیتم ویکیداده',
'ca-wikidataitem',
'افزودن خصوصیت به آیتم ویکیداده و رده مقاله ویکیفا (فقط برای مقاله انسان)',
'ربات بهروز کردن آیتم ویکیداده شروع به کار کرد',
'//rezabot.toolforge.org/wikidataitem.php',
'//upload.wikimedia.org/wikipedia/commons/0/0d/Ic_recent_actors_48px.svg'
);
// ویکیسازی
addBotLink(
' ویکیسازی',
'ca-wikify',
'ابزاری رباتیک برای ویکیسازی متن مقالهها بر پایهٔ عنوان مقالات موجود',
'ربات ویکیسازی شروع به کار کرد لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/wikifyer.php',
'//upload.wikimedia.org/wikipedia/commons/a/a5/Ic_fullscreen_36px.svg'
);
// ابزار اصلاح منابع ناموجود
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) {
//فقط برای مقالههای عضو رده:صفحههای با یادکرد خراب (فقدان منبع)
addBotLink(
'منبع ناموجود',
'ca-citaion',
'ابزاری برای اصلاح منبع ناموجود بر پایهٔ ویکیپدیای انگلیسی',
'اصلاح منبع ناموجود شروع شد، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/missedref.php',
'//upload.wikimedia.org/wikipedia/commons/c/c7/Ic_comment_48px.svg'
);
}
// ابزار گروهبندی ارجاعها
addBotLink(
' گروهبندی ارجاع',
'ca-ref-group',
'گروهبندی ارجاعها',
'کد گروهبندی ارجاعها شروع شد، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/groupingRef.php',
'//upload.wikimedia.org/wikipedia/commons/c/ca/Ic_games_48px.svg'
);
// ابزار ربات زیباسازی
/*
addBotLink(
' زیباسازی',
'ca-cosmetic',
'زیباسازی و ابرابزار',
'زیباسازی و اعمال کد ابرابزار شروع شد، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/cosmetic.php'
);*/
}
if (mw.config.get('wgNamespaceNumber') === 0 || mw.config.get('wgNamespaceNumber') === 1) {
// ابزار درجهبندی مقالات در بحث مقاله وپ:آفلاین
addBotLink(
' ارزشیابی',
'ca-eval',
'ابزار ارزشیابی مقالهها توسط ربات در بحث مقاله (وپ:آفلاین)',
'شروع ارزشیابی، لطفاً کمی صبر کنید.',
'//rezabot.toolforge.org/ranking.php',
'//upload.wikimedia.org/wikipedia/commons/2/22/Ic_iso_48px.svg'
);
//ابزار رفع ابهام پیوند از صفحات
mw.util.addPortletLink('p-cactions', 'https://dispenser.info.tm/~dispenser/cgi-bin/dablinks.py?page=' + encodeURI(mw.config.get('wgPageName'))+'&lang=fa', 'رفع ابهام پیوندها','P-disambig', 'رفع ابهام پیوندها', '');
}
// ابزار حذف پیوند به بیرون اسپم
if ((mw.config.get('wgUserGroups').indexOf('autopatrolled') > -1 || mw.config.get('wgUserGroups').indexOf('sysop') > -1) && mw.config.get('wgNamespaceNumber') > -1) {
// شرط برای کاربری که گشت خودکار دارد
// ابزار حذف الگوهای ناموجود
addBotLink(
' الگوهای حذفشده',
'ca-r-temp',
'برداشتن الگوهای حذفشده از مقاله',
'شروع حذف الگو از مقاله، لطفاً کمی صبر کنید.',
'ptbot.toolforge.org/api/q_remove_templates.php',
'//upload.wikimedia.org/wikipedia/commons/d/d2/Ic_remove_circle_48px.svg'
);
/*
// ابزار جایگزینی پیوند
addBotLink(
'جایگزینی پیوند',
'ca-r-replace',
'جایگزینی پیوند۱ با پیوند۲',
'شروع جایگزینی پیوند، لطفاً کمی صبر کنید.',
'rezabot.toolforge.org/replacelink.php',
'//upload.wikimedia.org/wikipedia/commons/8/8f/Replace_icon.px.svg'
);*/
}
if (mw.config.get('wgNamespaceNumber') === 6) {
// ابزار نامزد کردن تصاویر برگزیده
addBotLink2(
'برگزیدن نگاره',
'ca-eval',
'ابزار نامزد کردن نگارهها در وپ:گنب',
'شروع نامزد کردن، لطفاً کمی صبر کنید.',
'//dexbot.toolforge.org/anab.php',
'//upload.wikimedia.org/wikipedia/commons/2/29/Ic_folder_special_48px.svg'
);
}
// Permanent link
if (mw.config.get('wgNamespaceNumber') > -1) {
// Do not turn this into <a> element, it will break Visual Editor
$('#t-permalink').append(' ', $('<span>', {
style: "font-size:12px;color:#36c",
html: "✜"
}).click(function (e) {
prompt('پیوند پایدار', '[[Special:PermaLink/' + mw.config.get('wgRevisionId') + ']]');
})).hover(function() {
$( this ).css('cursor', 'pointer');
$( this ).css('cursor', 'auto');
});
}
});