مدیاویکی:TofawikiConsole.js: تفاوت میان نسخهها
ظاهر
محتوای حذفشده محتوای افزودهشده
خنثیسازی ویرایش 34148978 از Huji (بحث) به دلیل ویژه:تفاوت/34566726 برچسب: خنثیسازی |
ابزار مبتنی بر فهرست سفید طبق اجماع کاربران؛ آزمایش شد و توسط جناب حجت نیز بازبینی شد. ریسهٔ مرتبط در صفحهٔ بحث را هم ببینید. |
||
خط ۲: | خط ۲: | ||
$(function () { |
$(function () { |
||
'use strict'; |
'use strict'; |
||
// Create empty object for later use |
|||
var tofawiki = {}; |
|||
document.title = 'بهویکیفا انبوه - ویکیپدیا، دانشنامهٔ آزاد'; |
document.title = 'بهویکیفا انبوه - ویکیپدیا، دانشنامهٔ آزاد'; |
||
// Check if the user is allowed to use the gadget |
|||
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Blankpage' || |
|||
$.getJSON('/w/index.php', {action: 'raw', ctype: 'application/json',title: 'ویکیپدیا:درخواست_برای_دسترسی/بهویکیفا_انبوه/فهرست_سفید'}, callback); |
|||
mw.config.get('wgPageName').split('/')[1] !== 'tofawiki-conosle') { |
|||
return; |
|||
} |
|||
tofawiki.run = function () { |
|||
var serverName = mw.config.get('wgServerName'); |
|||
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Blankpage' || |
|||
mw.config.get('wgPageName').split('/')[1] !== 'tofawiki-conosle') { |
|||
return; |
|||
return ['bot', 'autopatrolled', 'patroller', 'sysop', 'eliminator'].indexOf(x) === -1; |
|||
} |
|||
}) && serverName === 'fa.wikipedia.org') { |
|||
$('#content').empty().append('متأسفانه این ابزار به کاربران دارای دسترسی گشت خودکار محدود شده است.'); |
|||
var serverName = mw.config.get('wgServerName'); |
|||
return; |
|||
} |
|||
if (mw.config.get('wgUserGroups').every(function (x) { |
|||
return ['bot', 'autopatrolled', 'patroller', 'sysop', 'eliminator'].indexOf(x) === -1; |
|||
window.onbeforeunload = function () { |
|||
}) && serverName === 'fa.wikipedia.org') { |
|||
if ($('#tofawiki-main').width() && $('#tofawiki-main').val() === '') { |
|||
$('#content').empty().append('متأسفانه این ابزار به کاربران دارای دسترسی گشت خودکار محدود شده است.'); |
|||
return; |
return; |
||
} |
} |
||
return 'پیش از اتمام صفحه را ترک نکنید'; |
|||
}; |
|||
window.onbeforeunload = function () { |
|||
var methods = { |
|||
if ($('#tofawiki-main').width() && $('#tofawiki-main').val() === '') { |
|||
city: { |
|||
return; |
|||
title: 'شهر و مکانهای مسکونی', |
|||
} |
|||
summary: 'Rezabot', |
|||
return 'پیش از اتمام صفحه را ترک نکنید'; |
|||
generateContent: function (request) { |
|||
}; |
|||
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/a.php').extend({ |
|||
fawiki: request[0], |
|||
var methods = { |
|||
enwiki: request[1] |
|||
city: { |
|||
title: 'شهر و مکانهای مسکونی', |
|||
summary: 'Rezabot', |
|||
generateContent: function (request) { |
|||
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/a.php').extend({ |
|||
fawiki: request[0], |
|||
enwiki: request[1] |
|||
})); |
|||
}, |
|||
extraInfo: $('<div>').append( |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>', |
|||
'<br><div>شیراز@Shiraz</div>', |
|||
'<br><div>تهران@Tehran</div>', |
|||
'<br><div>اصفهان@Isfahan</div>', |
|||
'<br>شهرهای ناموجود مهم در ', |
|||
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/شهرهای_ناموجود" target="_blank">اینجا</a></b>', |
|||
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید مقالات شهرها را مشاهده کنید.<br>' |
|||
), |
|||
placeholder: 'عنوان @ Title', |
|||
enableCheckButton: true, |
|||
enableFirstAidsButton: true, |
|||
isPersianWikipediaOnly: true |
|||
}, |
}, |
||
extraInfo: $('<div>').append( |
|||
general: { |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>', |
|||
title: 'اشخاص، آرایههای زیستی، فیلم، موسیقی، رود، ساختمان و بازیهای ویدئویی', |
|||
'<br><div>شیراز@Shiraz</div>', |
|||
summary: 'Dexbot', |
|||
'<br><div>تهران@Tehran</div>', |
|||
generateContent: function (request) { |
|||
'<br><div>اصفهان@Isfahan</div>', |
|||
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]); |
|||
'<br>شهرهای ناموجود مهم در ', |
|||
}, |
|||
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/شهرهای_ناموجود" target="_blank">اینجا</a></b>', |
|||
extraInfo: $('<div>').append( |
|||
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید مقالات شهرها را مشاهده کنید.<br>' |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید.</div>', |
|||
), |
|||
'<br>مقالههای ناموجود مهم در ', |
|||
placeholder: 'عنوان @ Title', |
|||
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/مقالههای_مهم_ایجادنشده" target="_blank">اینجا</a></b>', |
|||
enableCheckButton: true, |
|||
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید برپایهٔ موضوع آنها را مرتب و انتخاب کنید.<br>' |
|||
enableFirstAidsButton: true, |
|||
), |
|||
isPersianWikipediaOnly: true |
|||
placeholder: 'عنوان @ Title', |
|||
}, |
|||
enableCheckButton: true, |
|||
enableFirstAidsButton: true, |
|||
general: { |
|||
isPersianWikipediaOnly: true |
|||
title: 'اشخاص، آرایههای زیستی، فیلم، موسیقی، رود، ساختمان و بازیهای ویدئویی', |
|||
summary: 'Dexbot', |
|||
generateContent: function (request) { |
|||
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]); |
|||
}, |
}, |
||
extraInfo: $('<div>').append( |
|||
redirect: { |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید.</div>', |
|||
title: 'تغییرمسیر', |
|||
'<br>مقالههای ناموجود مهم در ', |
|||
summary: 'تغییرمسیرساز', |
|||
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/مقالههای_مهم_ایجادنشده" target="_blank">اینجا</a></b>', |
|||
generateContent: function (request) { |
|||
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید برپایهٔ موضوع آنها را مرتب و انتخاب کنید.<br>' |
|||
return resolveRedirect(request[1]).then(function (title) { |
|||
), |
|||
return { |
|||
placeholder: 'عنوان @ Title', |
|||
page_content: '#' + 'تغییرمسیر [' + '[' + title + ']]' |
|||
enableCheckButton: true, |
|||
}; |
|||
enableFirstAidsButton: true, |
|||
}); |
|||
isPersianWikipediaOnly: true |
|||
}, |
}, |
||
noLanguageLinks: true, |
|||
extraInfo: '', |
|||
placeholder: 'مبدأ تغییر مسیر @ مقصد (عنوان مقالهٔ اصلی)', |
|||
title: 'تغییرمسیر', |
|||
creationExtraTool: function () { |
|||
summary: 'تغییرمسیرساز', |
|||
var destination = location.hash.split('|')[1]; |
|||
generateContent: function (request) { |
|||
return resolveRedirect(request[1]).then(function (title) { |
|||
if (!destination) |
|||
return; |
|||
page_content: '#' + 'تغییرمسیر [' + '[' + title + ']]' |
|||
destination = decodeURI(destination); |
|||
var ns = 0; |
|||
var pageNameParts = destination.split(/:/); |
|||
if (pageNameParts.length > 1) { |
|||
var possibleNs = mw.config.get('wgNamespaceIds')[pageNameParts[0]]; |
|||
if (possibleNs !== undefined) { |
|||
ns = possibleNs; |
|||
destination = pageNameParts.slice(1).join(':'); |
|||
} |
|||
} |
|||
var namespaces = { |
|||
0: '', |
|||
2: 'کاربر:', |
|||
4: ['وپ:', 'ویکی\u200cپدیا:'], |
|||
6: 'پرونده:', |
|||
8: 'مدیاویکی:', |
|||
10: 'الگو:', |
|||
12: 'راهنما:', |
|||
14: 'رده:', |
|||
100: 'درگاه:', |
|||
102: 'کتاب:', |
|||
446: 'برنامه آموزشی:', |
|||
828: 'پودمان:' |
|||
}; |
}; |
||
var append = '@'; |
|||
}, |
|||
var buttonText = '@'; |
|||
noLanguageLinks: true, |
|||
if (typeof namespaces[ns] === 'object') { |
|||
extraInfo: '', |
|||
append = namespaces[ns][0] + '@' + namespaces[ns][1] + destination; |
|||
placeholder: 'مبدأ تغییر مسیر @ مقصد (عنوان مقالهٔ اصلی)', |
|||
buttonText = namespaces[ns][0] + '@صفحهٔ قبل'; |
|||
creationExtraTool: function () { |
|||
} else if (typeof namespaces[ns] === 'string') { |
|||
var destination = location.hash.split('|')[1]; |
|||
append = namespaces[ns] + '@' + namespaces[ns] + destination; |
|||
buttonText = namespaces[ns] + '@' + destination; |
|||
return; |
|||
destination = decodeURI(destination); |
|||
var ns = 0; |
|||
var pageNameParts = destination.split(/:/); |
|||
if (pageNameParts.length > 1) { |
|||
var possibleNs = mw.config.get('wgNamespaceIds')[pageNameParts[0]]; |
|||
if (possibleNs !== undefined) { |
|||
ns = possibleNs; |
|||
destination = pageNameParts.slice(1).join(':'); |
|||
} |
} |
||
} |
|||
return $('<span>', { |
|||
text: buttonText, |
|||
var namespaces = { |
|||
class: 'mw-ui-button mw-ui-constructive' |
|||
0: '', |
|||
}).click(function () { |
|||
2: 'کاربر:', |
|||
var value = $('#tofawiki-main').val().trim(); |
|||
4: ['وپ:', 'ویکی\u200cپدیا:'], |
|||
if (value !== '') |
|||
value = value + '\n'; |
|||
8: 'مدیاویکی:', |
|||
value = value + append; |
|||
$('#tofawiki-main').val(value).focus(); |
|||
12: 'راهنما:', |
|||
}); |
|||
}, |
|||
editBoxRows: 2, |
|||
previewHeight: 60, |
|||
446: 'برنامه آموزشی:', |
|||
autoCreate: true, |
|||
828: 'پودمان:' |
|||
isPersianWikipediaOnly: true |
|||
}; |
|||
var append = '@'; |
|||
var buttonText = '@'; |
|||
if (typeof namespaces[ns] === 'object') { |
|||
append = namespaces[ns][0] + '@' + namespaces[ns][1] + destination; |
|||
buttonText = namespaces[ns][0] + '@صفحهٔ قبل'; |
|||
} else if (typeof namespaces[ns] === 'string') { |
|||
append = namespaces[ns] + '@' + namespaces[ns] + destination; |
|||
buttonText = namespaces[ns] + '@' + destination; |
|||
} |
|||
return $('<span>', { |
|||
text: buttonText, |
|||
class: 'mw-ui-button mw-ui-constructive' |
|||
}).click(function () { |
|||
var value = $('#tofawiki-main').val().trim(); |
|||
if (value !== '') |
|||
value = value + '\n'; |
|||
value = value + append; |
|||
$('#tofawiki-main').val(value).focus(); |
|||
}); |
|||
}, |
}, |
||
editBoxRows: 2, |
|||
category: { |
|||
title: 'رده', |
|||
summary: 'فهرست ورودی', |
|||
isPersianWikipediaOnly: true |
|||
generateContent: function (request) { |
|||
}, |
|||
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]); |
|||
}, |
|||
category: { |
|||
afterSaveAction: function (pageTitle) { |
|||
title: 'رده', |
|||
var defer = $.Deferred(); |
|||
summary: 'فهرست ورودی', |
|||
var status = $('<span>', { text: 'درخواست پر کردن ' + pageTitle + '…' }); |
|||
generateContent: function (request) { |
|||
mw.notify(status, { autoHide: false }); |
|||
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]); |
|||
setTimeout(function () { |
|||
return $.get('//rezabot.toolforge.org/fillcat.php', { |
|||
title: pageTitle, |
|||
fawiki: pageTitle.replace(/ /g, '_'), |
|||
user: 'کاربر:' + mw.config.get('wgUserName'), |
|||
namespace: 14 |
|||
}).then(function () { |
|||
status.text('درخواست پر کردن ' + pageTitle + ' با موفقیت داده شد.'); |
|||
defer.resolve(); |
|||
}, defer.resolve); |
|||
}, 2000); |
|||
return defer; |
|||
}, |
|||
extraInfo: $('<div>').append( |
|||
'درخواست\u200cهای ساخت رده را در خطوط جداگانه مانند مثال زیر وارد کنید:' + |
|||
'<br>رده۱@Cateogry1<br>رده۲@Cateogry2<br>رده۳@Cateogry3<br><b>نکات مهم:</b><ol>' + |
|||
'<li>ردهها باید شیوهنامه <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ترجمه_ردهها" target="ویکیپدیا:ترجمه ردهها">ویکیپدیا:ترجمه_ردهها</a> را رعایت کنند.' + |
|||
'<li>ردههایی که تازه ساخته میشوند نیازی به افزودن به مقالات و صفحات ندارد و این ردهها پس از چند ساعت به صورت رباتیک به صفحههای مرتبط، اضافه میگردند و میانویکیشان به ویکیداده افزوده میشود.' + |
|||
'<li>ابزار ردههایی که در ویکیانگلیسی موجود نباشند را نمیسازد.<br>' + |
|||
'<li>ابزار ردههایی که رده مادر نداشته باشند یا همسنگ رده مادر در ویکیپدیای فارسی نباشد یا همهٔ ردههای مادرشان رده پنهان باشد را نمیسازد.(رده ردهبندی نشده نمیسازد)<br>' + |
|||
'<li>اگر ردهای را که پیشنهاد دادید ساخته نشدهاست، ممکن است [[ویژه:پالایهٔ_خرابکاری/91]] از عمل شما جلوگیری کرده باشد (دقت کنید که شرایط موجود در <a href="//fa.wikipedia.org/w/index.php?title=مدیاویکی:Abusefilter-warning-category" target="مدیاویکی:Abusefilter-warning-category">مدیاویکی:Abusefilter-warning-category</a> را رعایت کردهاید.)' + |
|||
'</ol>' |
|||
), |
|||
placeholder: 'عنوان رده به فارسی @ Title', |
|||
editBoxRows: 7, |
|||
previewHeight: 60, |
|||
isPersianWikipediaOnly: true |
|||
}, |
}, |
||
afterSaveAction: function (pageTitle) { |
|||
disambig: { |
|||
var defer = $.Deferred(); |
|||
title: 'ابهامزدایی و مجموعه نمایه', |
|||
var status = $('<span>', { text: 'درخواست پر کردن ' + pageTitle + '…' }); |
|||
summary: 'Rezabot', |
|||
mw.notify(status, { autoHide: false }); |
|||
generateContent: function (request) { |
|||
return $. |
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/disambig.php').extend({ |
||
fawiki: request[0], |
|||
enwiki: request[1] |
|||
fawiki: pageTitle.replace(/ /g, '_'), |
|||
})); |
|||
user: 'کاربر:' + mw.config.get('wgUserName'), |
|||
}, |
|||
extraInfo: $('<div>').append( |
|||
}).then(function () { |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن صفحهٔ ابهامزدایی و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>', |
|||
status.text('درخواست پر کردن ' + pageTitle + ' با موفقیت داده شد.'); |
|||
'<br><div>شیراز@Shiraz</div>', |
|||
defer.resolve(); |
|||
'<br><div>تهران@Tehran</div>', |
|||
}, defer.resolve); |
|||
'<br><div>اصفهان@Isfahan</div>', |
|||
}, 2000); |
|||
'<br><div>نکته مهم: ممکن است نیاز باشد از الگوهای {{مقالات مجموعهنمایه}}، {{نام خانوادگی}}، {{نام کوچک}} و… به جای {{ابهامزدایی}} استفاده کنید برای اطلاعات بیشتر <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ابهامزدایی" target="ویکیپدیا:ابهامزدایی">ویکیپدیا:ابهامزدایی</a> و <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:مقالات_مجموعهنمایه" target="ویکیپدیا:مقالات_مجموعهنمایه">ویکیپدیا:مقالات مجموعهنمایه</a> را مطالعه کنید.</div>', |
|||
return defer; |
|||
), |
|||
placeholder: 'عنوان @ Title', |
|||
enableCheckButton: true, |
|||
enableFirstAidsButton: true, |
|||
isPersianWikipediaOnly: true |
|||
}, |
}, |
||
extraInfo: $('<div>').append( |
|||
custom: { |
|||
'درخواست\u200cهای ساخت رده را در خطوط جداگانه مانند مثال زیر وارد کنید:' + |
|||
title: 'شخصی (پیشرفته)', |
|||
'<br>رده۱@Cateogry1<br>رده۲@Cateogry2<br>رده۳@Cateogry3<br><b>نکات مهم:</b><ol>' + |
|||
summary: 'الگوی شخصی', |
|||
'<li>ردهها باید شیوهنامه <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ترجمه_ردهها" target="ویکیپدیا:ترجمه ردهها">ویکیپدیا:ترجمه_ردهها</a> را رعایت کنند.' + |
|||
generateContent: function (request) { |
|||
'<li>ردههایی که تازه ساخته میشوند نیازی به افزودن به مقالات و صفحات ندارد و این ردهها پس از چند ساعت به صورت رباتیک به صفحههای مرتبط، اضافه میگردند و میانویکیشان به ویکیداده افزوده میشود.' + |
|||
return $.Deferred().resolve({ |
|||
'<li>ابزار ردههایی که در ویکیانگلیسی موجود نباشند را نمیسازد.<br>' + |
|||
page_content: '{{subst:' + $('#tofawiki-customtemplate').val() + '|' + request.map(function (x, i) { |
|||
'<li>ابزار ردههایی که رده مادر نداشته باشند یا همسنگ رده مادر در ویکیپدیای فارسی نباشد یا همهٔ ردههای مادرشان رده پنهان باشد را نمیسازد.(رده ردهبندی نشده نمیسازد)<br>' + |
|||
return (i + 1) + '=' + x; |
|||
'<li>اگر ردهای را که پیشنهاد دادید ساخته نشدهاست، ممکن است [[ویژه:پالایهٔ_خرابکاری/91]] از عمل شما جلوگیری کرده باشد (دقت کنید که شرایط موجود در <a href="//fa.wikipedia.org/w/index.php?title=مدیاویکی:Abusefilter-warning-category" target="مدیاویکی:Abusefilter-warning-category">مدیاویکی:Abusefilter-warning-category</a> را رعایت کردهاید.)' + |
|||
' |
}).join('|') + '}}' |
||
) |
}); |
||
}, |
|||
placeholder: 'عنوان رده به فارسی @ Title', |
|||
afterSaveUtils: function (pageTitle) { |
|||
editBoxRows: 7, |
|||
if (serverName !== 'fa.wikipedia.org') return; |
|||
previewHeight: 60, |
|||
return $('<button>', { style: 'font-size: 100%' }).text('درخواست افزودن نگارخانه و ردهٔ همسنگ').click(function () { |
|||
isPersianWikipediaOnly: true |
|||
var button = $(this); |
|||
}, |
|||
button.text('در حال انجام…').attr('disabled', ''); |
|||
disambig: { |
|||
$.get('//rezabot.toolforge.org/getbox.php', { |
|||
title: 'ابهامزدایی و مجموعه نمایه', |
|||
summary: 'Rezabot', |
|||
generateContent: function (request) { |
|||
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/disambig.php').extend({ |
|||
fawiki: request[0], |
|||
enwiki: request[1] |
|||
})); |
|||
}, |
|||
extraInfo: $('<div>').append( |
|||
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن صفحهٔ ابهامزدایی و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>', |
|||
'<br><div>شیراز@Shiraz</div>', |
|||
'<br><div>تهران@Tehran</div>', |
|||
'<br><div>اصفهان@Isfahan</div>', |
|||
'<br><div>نکته مهم: ممکن است نیاز باشد از الگوهای {{مقالات مجموعهنمایه}}، {{نام خانوادگی}}، {{نام کوچک}} و… به جای {{ابهامزدایی}} استفاده کنید برای اطلاعات بیشتر <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ابهامزدایی" target="ویکیپدیا:ابهامزدایی">ویکیپدیا:ابهامزدایی</a> و <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:مقالات_مجموعهنمایه" target="ویکیپدیا:مقالات_مجموعهنمایه">ویکیپدیا:مقالات مجموعهنمایه</a> را مطالعه کنید.</div>', |
|||
), |
|||
placeholder: 'عنوان @ Title', |
|||
enableCheckButton: true, |
|||
enableFirstAidsButton: true, |
|||
isPersianWikipediaOnly: true |
|||
}, |
|||
custom: { |
|||
title: 'شخصی (پیشرفته)', |
|||
summary: 'الگوی شخصی', |
|||
generateContent: function (request) { |
|||
return $.Deferred().resolve({ |
|||
page_content: '{{subst:' + $('#tofawiki-customtemplate').val() + '|' + request.map(function (x, i) { |
|||
return (i + 1) + '=' + x; |
|||
}).join('|') + '}}' |
|||
}); |
|||
}, |
|||
afterSaveUtils: function (pageTitle) { |
|||
if (serverName !== 'fa.wikipedia.org') return; |
|||
return $('<button>', { style: 'font-size: 100%' }).text('درخواست افزودن نگارخانه و ردهٔ همسنگ').click(function () { |
|||
var button = $(this); |
|||
button.text('در حال انجام…').attr('disabled', ''); |
|||
$.get('//rezabot.toolforge.org/getbox.php', { |
|||
title: pageTitle, |
|||
fawiki: pageTitle.replace(/ /g,'_'), |
|||
user: 'کاربر:' + mw.config.get('wgUserName'), |
|||
namespace: 0 |
|||
}).then(function(result) { |
|||
return $.get('//rezabot.toolforge.org/fillcatArticle.php', { |
|||
title: pageTitle, |
title: pageTitle, |
||
fawiki: pageTitle.replace(/ /g,'_'), |
fawiki: pageTitle.replace(/ /g,'_'), |
||
user: 'کاربر:' + mw.config.get('wgUserName'), |
user: 'کاربر:' + mw.config.get('wgUserName'), |
||
namespace: 0 |
namespace: 0 |
||
}).then(function(result) { |
|||
return $.get('//rezabot.toolforge.org/fillcatArticle.php', { |
|||
title: pageTitle, |
|||
fawiki: pageTitle.replace(/ /g,'_'), |
|||
user: 'کاربر:' + mw.config.get('wgUserName'), |
|||
namespace: 0 |
|||
}); |
|||
}).then(function () { |
|||
button.text('انجام شد'); |
|||
}); |
}); |
||
}).then(function () { |
|||
button.text('انجام شد'); |
|||
}); |
}); |
||
} |
}, |
||
extraInfo: $('<div>').append( |
|||
}, |
|||
'راهنمای <b><a href="//fa.wikipedia.org/wiki/راهنما:ساخت_مقاله_به_کمک_الگوی_شخصی_با_ابزار_به_ویکیفا_انبوه" target="_blank">ساخت مقاله به کمک الگوی شخصی با ابزار به ویکیفا انبوه</a></b> اطلاعات بسیار خوبی رابطه جهت استفاده از این قسمت میدهد.<br><br>', |
|||
extraInfo: $('<div>').append( |
|||
'به طور خلاصه برای استفاده از این ابزار کافیست فایل اکسل را در جعبهٔ زیر کپی کنید و الگوی تراگنجانش را مشخص کنید.', |
|||
'راهنمای <b><a href="//fa.wikipedia.org/wiki/راهنما:ساخت_مقاله_به_کمک_الگوی_شخصی_با_ابزار_به_ویکیفا_انبوه" target="_blank">ساخت مقاله به کمک الگوی شخصی با ابزار به ویکیفا انبوه</a></b> اطلاعات بسیار خوبی رابطه جهت استفاده از این قسمت میدهد.<br><br>', |
|||
'<br>', |
|||
'به طور خلاصه برای استفاده از این ابزار کافیست فایل اکسل را در جعبهٔ زیر کپی کنید و الگوی تراگنجانش را مشخص کنید.', |
|||
'<b>نکته:</b> متغیر۱ برابر با نام مقاله و متغیر۲ برابر با میانویکیست و سایر متغیرها هم برای معرفی بخشهای تغییرپذیر مقاله کاربرد دارند.' |
|||
'<br>', |
|||
), |
|||
'<b>نکته:</b> متغیر۱ برابر با نام مقاله و متغیر۲ برابر با میانویکیست و سایر متغیرها هم برای معرفی بخشهای تغییرپذیر مقاله کاربرد دارند.' |
|||
placeholder: 'متغیر۱ (نام مقاله)\tمتغیر۲ (ترجیحاً عنوان انگلیسی)\tمتغیر۳\tمتغیر۴\t…', |
|||
), |
|||
enableCheckButton: true, |
|||
placeholder: 'متغیر۱ (نام مقاله)\tمتغیر۲ (ترجیحاً عنوان انگلیسی)\tمتغیر۳\tمتغیر۴\t…', |
|||
enableFirstAidsButton: true |
|||
} |
|||
enableFirstAidsButton: true |
|||
}; |
|||
function resolveRedirect(title) { |
|||
return new mw.Api().get({ |
|||
action: 'query', |
|||
titles: title, |
|||
redirects: '' |
|||
}).then(function (result) { |
|||
return result.query.pages[Object.keys(result.query.pages)[0]].title; |
|||
}).catch(function (e) { |
|||
console.error(e); |
|||
return title; |
|||
}); |
|||
} |
|||
// ابزارهای رده |
|||
function catParents(title) { |
|||
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({ |
|||
action: 'query', |
|||
prop: 'categories', |
|||
titles: title, |
|||
clshow: '!hidden', |
|||
cllimit: 500, |
|||
format: 'json', |
|||
origin: window.location.protocol + '//' + window.location.hostname |
|||
}).then(function (data) { |
|||
return (data.query.pages[Object.keys(data.query.pages)[0]].categories || []).map(function (x) { return x.title; }); |
|||
}); |
|||
} |
|||
function getWikidataEntity(entitle) { |
|||
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({ |
|||
action: 'wbgetentities', |
|||
format: 'json', |
|||
sites: 'enwiki', |
|||
titles: entitle, |
|||
normalize: 'true', |
|||
origin: window.location.protocol + '//' + window.location.hostname |
|||
}).then(function (x) { return x.entities[Object.keys(x.entities)[0]]; }); |
|||
} |
} |
||
}; |
|||
function pageExists(page) { |
|||
return new mw.Api().get({ |
return new mw.Api({ ajax: { url: '//fa.wikipedia.org/w/api.php' } }).get({ |
||
action: 'query', |
action: 'query', |
||
titles: |
titles: page, |
||
format: 'json' |
|||
}).then(function ( |
}).then(function (data) { return data.query.pages['-1'] === undefined; }); |
||
} |
|||
return result.query.pages[Object.keys(result.query.pages)[0]].title; |
|||
}).catch(function (e) { |
|||
function dePersian(text) { |
|||
console.error(e); |
|||
return |
return text |
||
.replace(/ی/g, 'ي') |
|||
}); |
|||
.replace(/ک/g, 'ك') |
|||
} |
|||
.replace(/گ/g, 'كی') |
|||
.replace(/ژ/g, 'زی') |
|||
.replace(/چ/g, 'جی') |
|||
.replace(/پ/g, 'بی'); |
|||
} |
|||
//// |
|||
$('#content').empty().append($('<div>', { id: 'tofawiki-console' }).css({ |
|||
border: '2px solid #b3000b', |
|||
padding: '1em', |
|||
'background-color': '#fefce3', |
|||
'margin-bottom': '8px', |
|||
'border-radius': '15px' |
|||
}).append($('<div>', { id: 'tofawiki-console-input' }).append( |
|||
'نوع: ', |
|||
$('<select>', { id: 'tofawiki-select', style: 'font-size: 120%' }).append(Object.keys(methods).filter(function (id) { |
|||
return serverName === 'fa.wikipedia.org' || !methods[id].isPersianWikipediaOnly; |
|||
}).map(function (id) { |
|||
return $('<option>', { value: id }).text(methods[id].title); |
|||
})).change(function () { |
|||
if ($(this).val() === 'custom') { |
|||
$('#tofawiki-custom').show(); |
|||
$('#tofawiki-delimiter').val('\t'); |
|||
} else { |
|||
$('#tofawiki-custom').hide(); |
|||
$('#tofawiki-delimiter').val('@'); |
|||
} |
|||
var method = methods[$(this).val()]; |
|||
$('#tofawiki-extrainfo').empty().append(method.extraInfo); |
|||
$('#tofawiki-main').attr('placeholder', method.placeholder); |
|||
$('#tofawiki-creationextratool').empty().append(method.creationExtraTool |
|||
? method.creationExtraTool() |
|||
: ''); |
|||
$('#tofawiki-checkbutton').toggle(method.enableCheckButton); |
|||
$('#tofawiki-firstaidsbutton').toggle(method.enableFirstAidsButton); |
|||
}), |
|||
'<br>', |
|||
'جداکننده ', |
|||
$('<select>', { id: 'tofawiki-delimiter' }).append( |
|||
$('<option>', { value: '@' }).text('@'), |
|||
$('<option>', { value: '|' }).text('|'), |
|||
$('<option>', { value: '\t' }).text('تب') |
|||
), |
|||
'<br>', |
|||
$('<div>', { id: 'tofawiki-custom' }).append( |
|||
'الگو برای تراگنجانش: ', |
|||
$('<input>', { id: 'tofawiki-customtemplate' }) |
|||
).hide(), |
|||
'<br>', |
|||
$('<div>', { id: 'tofawiki-extrainfo' }), |
|||
'<br>', |
|||
$('<div>', { id: 'tofawiki-creationextratool' }).css({ position: 'absolute', left: '2.5em' }), |
|||
$('<textarea>', { |
|||
id: 'tofawiki-main', |
|||
style: 'font-size: 150%', |
|||
rows: 10 |
|||
}), |
|||
$('<button>', { style: 'font-size: 100%', text: 'درخواست' }).click(function () { |
|||
var method = methods[$('#tofawiki-select').val()]; |
|||
var delimiter = $('#tofawiki-delimiter').val(); |
|||
var requests = resolveUserRequests(delimiter); |
|||
// ابزارهای رده |
|||
$('#tofawiki-console-input').hide(); |
|||
function catParents(title) { |
|||
$('#tofawiki-console').append( |
|||
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({ |
|||
$('<div>', { id: 'tofawiki-progress' }), |
|||
action: 'query', |
|||
'<br><hr><br>' |
|||
); |
|||
titles: title, |
|||
var current = 1; |
|||
clshow: '!hidden', |
|||
var success = 0; |
|||
cllimit: 500, |
|||
requests.map(function (request) { |
|||
format: 'json', |
|||
var row = $('<div>', { |
|||
origin: window.location.protocol + '//' + window.location.hostname |
|||
'class': 'tofawiki-row', |
|||
}).then(function (data) { |
|||
style: 'border-bottom: 1px solid; margin-bottom: 1em; padding-bottom:1em;' |
|||
return (data.query.pages[Object.keys(data.query.pages)[0]].categories || []).map(function (x) { return x.title; }); |
|||
}).appendTo('#tofawiki-console'); |
|||
}); |
|||
return function generateText() { |
|||
} |
|||
var fawiki = request[0].replace(/ي/g, 'ی').replace(/ك/g, 'ک'); |
|||
var enwiki = request[1]; |
|||
var promise = method.generateContent(request).then(function (result) { |
|||
return result.error |
|||
? $.Deferred().reject(result.error) |
|||
: preSavedTransform(result.page_content, fawiki); |
|||
}); |
|||
$('#tofawiki-progress').text('در حال دریافت «' + fawiki |
|||
function getWikidataEntity(entitle) { |
|||
+ '» (' + (current++).toLocaleString('fa') + ' از ' + |
|||
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({ |
|||
requests.length.toLocaleString('fa') + ')'); |
|||
action: 'wbgetentities', |
|||
format: 'json', |
|||
sites: 'enwiki', |
|||
titles: entitle, |
|||
normalize: 'true', |
|||
origin: window.location.protocol + '//' + window.location.hostname |
|||
}).then(function (x) { return x.entities[Object.keys(x.entities)[0]]; }); |
|||
} |
|||
function pageExists(page) { |
|||
return new mw.Api({ ajax: { url: '//fa.wikipedia.org/w/api.php' } }).get({ |
|||
action: 'query', |
|||
titles: page, |
|||
format: 'json' |
|||
}).then(function (data) { return data.query.pages['-1'] === undefined; }); |
|||
} |
|||
return promise.then(function (content) { |
|||
if (window.persianWikiTools) { |
|||
return text |
|||
content = persianWikiTools.superTool(content); |
|||
.replace(/ی/g, 'ي') |
|||
} |
|||
.replace(/ک/g, 'ك') |
|||
var textarea = $('<textarea>', { cols: 80, rows: method.editBoxRows || 20, text: content }); |
|||
.replace(/گ/g, 'كی') |
|||
var summary = $('<input>', { style: 'width: 500px;' }); |
|||
.replace(/ژ/g, 'زی') |
|||
if (serverName === 'fa.wikipedia.org') |
|||
.replace(/چ/g, 'جی') |
|||
summary.val('ایجادشده به کمک [[راهنما:ابزار/به ویکیفا|به ویکیفا]] انبوه و ' + method.summary + '، ابرابزار'); |
|||
.replace(/پ/g, 'بی'); |
|||
var previewElement = $('<div>', { 'class': 'tofawiki-preview' }); |
|||
} |
|||
var preview = function () { |
|||
//// |
|||
return parseContent(textarea.val(), fawiki).then(function (result) { |
|||
previewElement.css({ |
|||
$('#content').empty().append($('<div>', { id: 'tofawiki-console' }).css({ |
|||
border: ' |
'border': '1px solid grey', |
||
padding: '1em', |
'padding': '1em', |
||
'height': method.previewHeight || 270, |
|||
'background-color': '#fefce3', |
|||
' |
'overflow-y': 'scroll' |
||
}).html(result).append('<div style="clear: both">'); |
|||
'border-radius': '15px' |
|||
}); |
|||
}).append($('<div>', { id: 'tofawiki-console-input' }).append( |
|||
}; |
|||
'نوع: ', |
|||
preview(); |
|||
$('<select>', { id: 'tofawiki-select', style: 'font-size: 120%' }).append(Object.keys(methods).filter(function (id) { |
|||
var againInput = $('<input>').val(request.join(delimiter)); |
|||
return serverName === 'fa.wikipedia.org' || !methods[id].isPersianWikipediaOnly; |
|||
}).map(function (id) { |
|||
row.empty().append( |
|||
return $('<option>', { value: id }).text(methods[id].title); |
|||
$('<div>', { style: 'font-size: 150%;' }).text(fawiki), |
|||
})).change(function () { |
|||
textarea, |
|||
if ($(this).val() === 'custom') { |
|||
'<br>', |
|||
$('#tofawiki-custom').show(); |
|||
summary, |
|||
$('#tofawiki-delimiter').val('\t'); |
|||
'<br><br>', |
|||
} else { |
|||
previewElement, |
|||
$('#tofawiki-custom').hide(); |
|||
'<br>', |
|||
$('#tofawiki-delimiter').val('@'); |
|||
$('<button>', { style: 'font-size: 100%', 'class': 'tofawiki-row-create-button', text: 'ایجاد' }).click(function () { |
|||
} |
|||
var content = textarea.val(); |
|||
var |
var summaryText = summary.val(); |
||
row.empty().append('در حال ایجاد ' + fawiki + '…'); |
|||
createPage(fawiki, content, summaryText).then(function () { |
|||
$('#tofawiki-main').attr('placeholder', method.placeholder); |
|||
pageExists(fawiki).then(function (exists) { |
|||
$('#tofawiki-creationextratool').empty().append(method.creationExtraTool |
|||
if (!exists) { |
|||
? method.creationExtraTool() |
|||
row.empty().append( |
|||
: ''); |
|||
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» به دلیل خطا ایجاد نشد! (ممکن است خطای پالایه باشد)', |
|||
$('#tofawiki-checkbutton').toggle(method.enableCheckButton); |
|||
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : '' |
|||
$('#tofawiki-firstaidsbutton').toggle(method.enableFirstAidsButton); |
|||
); |
|||
} else { |
|||
'<br>', |
|||
row.empty().append( |
|||
'جداکننده ', |
|||
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» ایجاد شد ', |
|||
$('<select>', { id: 'tofawiki-delimiter' }).append( |
|||
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : '' |
|||
$('<option>', { value: '@' }).text('@'), |
|||
); |
|||
$('<option>', { value: '|' }).text('|'), |
|||
} |
|||
$('<option>', { value: '\t' }).text('تب') |
|||
) |
}); |
||
if (++success === requests.length) { |
|||
'<br>', |
|||
window.onbeforeunload = undefined; |
|||
$('<div>', { id: 'tofawiki-custom' }).append( |
|||
'الگو برای تراگنجانش: ', |
|||
$('<input>', { id: 'tofawiki-customtemplate' }) |
|||
).hide(), |
|||
'<br>', |
|||
$('<div>', { id: 'tofawiki-extrainfo' }), |
|||
'<br>', |
|||
$('<div>', { id: 'tofawiki-creationextratool' }).css({ position: 'absolute', left: '2.5em' }), |
|||
$('<textarea>', { |
|||
id: 'tofawiki-main', |
|||
style: 'font-size: 150%', |
|||
rows: 10 |
|||
}), |
|||
$('<button>', { style: 'font-size: 100%', text: 'درخواست' }).click(function () { |
|||
var method = methods[$('#tofawiki-select').val()]; |
|||
var delimiter = $('#tofawiki-delimiter').val(); |
|||
var requests = resolveUserRequests(delimiter); |
|||
$('#tofawiki-console-input').hide(); |
|||
$('#tofawiki-console').append( |
|||
$('<div>', { id: 'tofawiki-progress' }), |
|||
'<br><hr><br>' |
|||
); |
|||
var current = 1; |
|||
var success = 0; |
|||
requests.map(function (request) { |
|||
var row = $('<div>', { |
|||
'class': 'tofawiki-row', |
|||
style: 'border-bottom: 1px solid; margin-bottom: 1em; padding-bottom:1em;' |
|||
}).appendTo('#tofawiki-console'); |
|||
return function generateText() { |
|||
var fawiki = request[0].replace(/ي/g, 'ی').replace(/ك/g, 'ک'); |
|||
var enwiki = request[1]; |
|||
var promise = method.generateContent(request).then(function (result) { |
|||
return result.error |
|||
? $.Deferred().reject(result.error) |
|||
: preSavedTransform(result.page_content, fawiki); |
|||
}); |
|||
$('#tofawiki-progress').text('در حال دریافت «' + fawiki |
|||
+ '» (' + (current++).toLocaleString('fa') + ' از ' + |
|||
requests.length.toLocaleString('fa') + ')'); |
|||
return promise.then(function (content) { |
|||
if (window.persianWikiTools) { |
|||
content = persianWikiTools.superTool(content); |
|||
} |
|||
var textarea = $('<textarea>', { cols: 80, rows: method.editBoxRows || 20, text: content }); |
|||
var summary = $('<input>', { style: 'width: 500px;' }); |
|||
if (serverName === 'fa.wikipedia.org') |
|||
summary.val('ایجادشده به کمک [[راهنما:ابزار/به ویکیفا|به ویکیفا]] انبوه و ' + method.summary + '، ابرابزار'); |
|||
var previewElement = $('<div>', { 'class': 'tofawiki-preview' }); |
|||
var preview = function () { |
|||
return parseContent(textarea.val(), fawiki).then(function (result) { |
|||
previewElement.css({ |
|||
'border': '1px solid grey', |
|||
'padding': '1em', |
|||
'height': method.previewHeight || 270, |
|||
'overflow-y': 'scroll' |
|||
}).html(result).append('<div style="clear: both">'); |
|||
}); |
|||
}; |
|||
preview(); |
|||
var againInput = $('<input>').val(request.join(delimiter)); |
|||
row.empty().append( |
|||
$('<div>', { style: 'font-size: 150%;' }).text(fawiki), |
|||
textarea, |
|||
'<br>', |
|||
summary, |
|||
'<br><br>', |
|||
previewElement, |
|||
'<br>', |
|||
$('<button>', { style: 'font-size: 100%', 'class': 'tofawiki-row-create-button', text: 'ایجاد' }).click(function () { |
|||
var content = textarea.val(); |
|||
var summaryText = summary.val(); |
|||
row.empty().append('در حال ایجاد ' + fawiki + '…'); |
|||
createPage(fawiki, content, summaryText).then(function () { |
|||
pageExists(fawiki).then(function (exists) { |
|||
if (!exists) { |
|||
row.empty().append( |
|||
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» به دلیل خطا ایجاد نشد! (ممکن است خطای پالایه باشد)', |
|||
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : '' |
|||
); |
|||
} else { |
|||
row.empty().append( |
|||
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» ایجاد شد ', |
|||
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : '' |
|||
); |
|||
} |
} |
||
if (method.noLanguageLinks) |
|||
return; |
|||
if (++success === requests.length) { |
|||
window.onbeforeunload = undefined; |
|||
if (serverName !== 'fa.wikipedia.org') return; |
|||
} |
|||
if (method.noLanguageLinks) |
|||
return $.when(wikidataToken(), getWikidataId(enwiki)).then(function (token, id) { |
|||
return; |
|||
return addWikidataSitelink(token, id, fawiki, 'fawiki'); |
|||
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () { |
|||
if (serverName !== 'fa.wikipedia.org') return; |
|||
return $.get('//dexbot.toolforge.org/interwikidata.php', { page: fawiki }); |
|||
return $. |
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () { |
||
if (method.afterSaveAction) return method.afterSaveAction(fawiki); |
|||
}); |
|||
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () { |
|||
}, function (error) { |
|||
return $.get('//dexbot.toolforge.org/interwikidata.php', { page: fawiki }); |
|||
var retryInput = $('<input>').val(request.join(delimiter)); |
|||
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () { |
|||
row.empty().append( |
|||
if (method.afterSaveAction) return method.afterSaveAction(fawiki); |
|||
$('<span>', { |
|||
style: 'color: red;', |
|||
text: error === 'articleexists' |
|||
? 'صفحهای به این عنوان در حال حاضر وجود دارد' |
|||
: error |
|||
}), |
|||
'<br>', |
|||
retryInput, |
|||
$('<button>').text('تلاش مجدد').click(function () { |
|||
request = retryInput.val().split(delimiter); |
|||
row.empty().html('تلاش مجدد…'); |
|||
generateText(); |
|||
}) |
|||
); |
|||
}); |
|||
}), |
|||
' ', |
|||
$('<button>').css('font-size', '100%').text('بهروزرسانی پیشنمایش').click(function () { |
|||
var button = $(this); |
|||
button.attr('disabled', ''); |
|||
preview().then(function () { |
|||
button.prop('disabled', false); |
|||
}); |
}); |
||
}, function (error) { |
|||
var retryInput = $('<input>').val(request.join(delimiter)); |
|||
row.empty().append( |
|||
$('<span>', { |
|||
style: 'color: red;', |
|||
text: error === 'articleexists' |
|||
? 'صفحهای به این عنوان در حال حاضر وجود دارد' |
|||
: error |
|||
}), |
|||
'<br>', |
|||
retryInput, |
|||
$('<button>').text('تلاش مجدد').click(function () { |
|||
request = retryInput.val().split(delimiter); |
|||
row.empty().html('تلاش مجدد…'); |
|||
generateText(); |
|||
}) |
|||
); |
|||
}); |
|||
}), |
|||
' ', |
|||
$('<button>').css('font-size', '100%').text('بهروزرسانی پیشنمایش').click(function () { |
|||
var button = $(this); |
|||
button.attr('disabled', ''); |
|||
preview().then(function () { |
|||
button.prop('disabled', false); |
|||
}); |
|||
}), |
|||
' ', |
|||
window.persianWikiTools ? $('<img>', { |
|||
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png' |
|||
}).click(function () { |
|||
textarea.val(persianWikiTools.superTool(textarea.val())); |
|||
}) : '', |
|||
'<br><br>', |
|||
againInput, |
|||
$('<button>').text('تهیه مجدد').click(function () { |
|||
request = againInput.val().split(delimiter); |
|||
row.empty().html('تهیه مجدد…'); |
|||
generateText(); |
|||
}) |
|||
); |
|||
}).then(undefined, function (error) { |
|||
error = error || 'ایجاد ' + fawiki + ' ناموفق بود'; |
|||
parseContent(error).then(function (parsedError) { |
|||
var retryInput = $('<input>').val(request.join(delimiter)); |
|||
row.empty().append( |
|||
$('<span>', { |
|||
style: 'color: red;', |
|||
html: parsedError |
|||
}), |
}), |
||
' ', |
|||
window.persianWikiTools ? $('<img>', { |
|||
$('<button>').text('تلاش مجدد').click(function () { |
|||
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png' |
|||
request = retryInput.val().split(delimiter); |
|||
}).click(function () { |
|||
textarea.val(persianWikiTools.superTool(textarea.val())); |
|||
}) : '', |
|||
'<br><br>', |
|||
againInput, |
|||
$('<button>').text('تهیه مجدد').click(function () { |
|||
request = againInput.val().split(delimiter); |
|||
row.empty().html('تهیه مجدد…'); |
|||
generateText(); |
generateText(); |
||
}) |
}) |
||
); |
); |
||
}).then(undefined, function (error) { |
|||
error = error || 'ایجاد ' + fawiki + ' ناموفق بود'; |
|||
parseContent(error).then(function (parsedError) { |
|||
var retryInput = $('<input>').val(request.join(delimiter)); |
|||
row.empty().append( |
|||
$('<span>', { |
|||
style: 'color: red;', |
|||
html: parsedError |
|||
}), |
|||
retryInput, |
|||
$('<button>').text('تلاش مجدد').click(function () { |
|||
request = retryInput.val().split(delimiter); |
|||
row.empty().html('تلاش مجدد…'); |
|||
generateText(); |
|||
}) |
|||
); |
|||
}); |
|||
return $.Deferred().resolve(); |
|||
}); |
}); |
||
}; |
|||
return $.Deferred().resolve(); |
|||
}).reduce(function (defer, job) { |
|||
}); |
|||
return defer.then(job); |
|||
}; |
|||
}). |
}, $.Deferred().resolve()).then(function () { |
||
$('#tofawiki-progress').empty(); |
|||
return defer.then(job); |
|||
}, $.Deferred().resolve()).then(function () { |
|||
function createAll() { |
|||
$('#tofawiki-progress').empty(); |
|||
var createAllButton = $('#tofawiki-createallbutton'); |
|||
createAllButton.prop('disabled', 'disabled'); |
|||
function createAll() { |
|||
$('.tofawiki-row-create-button').get().map(function (button) { |
|||
return function () { |
|||
createAllButton.prop('disabled', 'disabled'); |
|||
$( |
$(button).click(); |
||
var defer = $.Deferred(); |
|||
setTimeout(defer.resolve, 1000); |
|||
return defer; |
|||
}; |
|||
}).reduce(function (defer, job) { |
|||
return defer.then(job); |
|||
}). |
}, $.Deferred().resolve()).then(function () { |
||
createAllButton.hide(); |
|||
}); |
|||
}, $.Deferred().resolve()).then(function () { |
|||
} |
|||
createAllButton.hide(); |
|||
if (mw.config.get('wgUserGroups').indexOf('bot') !== -1) { |
|||
$('#tofawiki-progress').append($('<button>', { |
|||
id: 'tofawiki-createallbutton', |
|||
text: 'ایجاد همه' |
|||
}).click(createAll)); |
|||
} |
|||
if (method.autoCreate) { |
|||
createAll(); |
|||
} |
|||
}); |
|||
$('#tofawiki-console').append('<br>اصل درخواستها: ', $('<div>', { |
|||
style: 'margin: 1em; padding: 0.4em; border: 1px dotted; white-space: pre-wrap;', |
|||
html: requests.map(function (x) { return x.join(delimiter); }).join('<br>') |
|||
})); |
|||
}), |
|||
' ', |
|||
$('<button>', { style: 'font-size: 100%', id: 'tofawiki-checkbutton', text: 'بررسی' }).click(function () { |
|||
var delimiter = $('#tofawiki-delimiter').val(); |
|||
var requests = resolveUserRequests(delimiter); |
|||
if (requests.some(function (x) { return x.length !== requests[0].length; })) { |
|||
mw.notify('❌ اندازههای ورودیها در خطوط مختلف یکسان نیست! احتمالاً اشتباهی در ورودی وجود دارد.', { autoHide: false }); |
|||
} |
} |
||
var button = $(this); |
|||
button.text('در حال انجام…'); |
|||
if (mw.config.get('wgUserGroups').indexOf('bot') !== -1) { |
|||
$('#tofawiki-progress').append($('<button>', { |
|||
id: 'tofawiki-createallbutton', |
|||
text: 'ایجاد همه' |
|||
}).click(createAll)); |
|||
} |
|||
if (method.autoCreate) { |
|||
createAll(); |
|||
} |
|||
}); |
|||
$('#tofawiki-console').append('<br>اصل درخواستها: ', $('<div>', { |
|||
style: 'margin: 1em; padding: 0.4em; border: 1px dotted; white-space: pre-wrap;', |
|||
html: requests.map(function (x) { return x.join(delimiter); }).join('<br>') |
|||
})); |
|||
}), |
|||
' ', |
|||
$('<button>', { style: 'font-size: 100%', id: 'tofawiki-checkbutton', text: 'بررسی' }).click(function () { |
|||
var delimiter = $('#tofawiki-delimiter').val(); |
|||
var requests = resolveUserRequests(delimiter); |
|||
if (requests.some(function (x) { return x.length !== requests[0].length; })) { |
|||
mw.notify('❌ اندازههای ورودیها در خطوط مختلف یکسان نیست! احتمالاً اشتباهی در ورودی وجود دارد.', { autoHide: false }); |
|||
} |
|||
var button = $(this); |
|||
button.text('در حال انجام…'); |
|||
$.post('//tofawiki-linkstranslator.wmcloud.org/', { |
|||
from: 'fa', |
|||
to: 'fa', |
|||
p: requests.map(function (x) { return x[0]; }).join('|') |
|||
}).then(function (faPages) { |
|||
faPages = Object.keys(faPages); |
|||
$.post('//tofawiki-linkstranslator.wmcloud.org/', { |
$.post('//tofawiki-linkstranslator.wmcloud.org/', { |
||
from: ' |
from: 'fa', |
||
to: 'fa', |
to: 'fa', |
||
p: requests.map(function (x) { return x[ |
p: requests.map(function (x) { return x[0]; }).join('|') |
||
}).then(function ( |
}).then(function (faPages) { |
||
faPages = Object.keys(faPages); |
|||
$.post('//tofawiki-linkstranslator.wmcloud.org/', { |
|||
//mw.notify('✔️ بررسی انجام شد!', { autoHide: false }); |
|||
from: 'en', |
|||
mw.notify('تعداد متغیرهای ورودی ' + requests[0].length.toString() + ' است، مطمئن شوید که الگو تراگنجانش هم همین تعداد متغیر دارد.', { autoHide: false }); |
|||
to: 'fa', |
|||
enFaEqus = Object.keys(enFaEqus); |
|||
p: requests.map(function (x) { return x[1]; }).join('|') |
|||
}).then(function (enFaEqus) { |
|||
button.text('بررسی'); |
|||
x[0] = 'خطا: صفحهٔ موجود > ' + x[0]; |
|||
//mw.notify('✔️ بررسی انجام شد!', { autoHide: false }); |
|||
} |
|||
mw.notify('تعداد متغیرهای ورودی ' + requests[0].length.toString() + ' است، مطمئن شوید که الگو تراگنجانش هم همین تعداد متغیر دارد.', { autoHide: false }); |
|||
if (enFaEqus.indexOf(x[1]) !== -1) { |
|||
enFaEqus = Object.keys(enFaEqus); |
|||
x[1] = 'خطا: ترجمهٔ موجود > ' + x[1]; |
|||
$('#tofawiki-main').val(requests.map(function (x) { |
|||
} |
|||
if (faPages.indexOf(x[0]) !== -1) { |
|||
return x.join(delimiter); |
|||
x[0] = 'خطا: صفحهٔ موجود > ' + x[0]; |
|||
}).join('\n')); |
|||
} |
|||
if (enFaEqus.indexOf(x[1]) !== -1) { |
|||
x[1] = 'خطا: ترجمهٔ موجود > ' + x[1]; |
|||
} |
|||
return x.join(delimiter); |
|||
}).join('\n')); |
|||
}); |
|||
}); |
}); |
||
}) |
}), |
||
' ', |
|||
window.persianWikiTools ? $('<img>', { |
|||
' ', |
|||
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png' |
|||
window.persianWikiTools ? $('<img>', { |
|||
}).click(function () { |
|||
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png' |
|||
$('#tofawiki-main').val(persianWikiTools.superToolMove($('#tofawiki-main').val())); |
|||
}).click(function () { |
|||
}) : '', |
|||
$('#tofawiki-main').val(persianWikiTools.superToolMove($('#tofawiki-main').val())); |
|||
' ', |
|||
' |
$('<button>', { |
||
id: 'tofawiki-firstaidsbutton', |
|||
$('<button>', { |
|||
text: 'اصلاحهای اولیه', |
|||
id: 'tofawiki-firstaidsbutton', |
|||
style: 'font-size: 40%' |
|||
text: 'اصلاحهای اولیه', |
|||
}).click(function () { |
|||
style: 'font-size: 40%' |
|||
$('#tofawiki-main').val($('#tofawiki-main').val().split('\n').map(function (x) { |
|||
var r = x.split('\t'); |
|||
$('#tofawiki-main').val($('#tofawiki-main').val().split('\n').map(function (x) { |
|||
if (!r[1]) return ''; |
|||
var row = r[1].trim().replace(/^en:/, '').replace(/\)$/, '').split('(⎘'); |
|||
if (!r[1]) return ''; |
|||
if (!row[1]) return ''; |
|||
row[1] = persianWikiTools.superToolMove(row[1] |
|||
if (!row[1]) return ''; |
|||
.replace(/ي/g, 'ی').replace(/ك/g, 'ک').replace(/ة/g, 'ه') |
|||
row[1] = persianWikiTools.superToolMove(row[1] |
|||
.replace(/ |
.replace(/^en:/, '').replace(/أ/g, 'ا').replace(/اء/g, 'ا') |
||
.replace(/ |
.replace(/إ/g, 'ا') |
||
.replace(/ |
.replace(/عبد ال/g, 'عبدال') |
||
.replace(/ |
.replace(/([ \(\)])لاعب([ \(\)])/g, '$1بازیکن$2') |
||
.replace(/([ \(\)]) |
.replace(/([ \(\)])كرة قدم([ \(\)])/g, '$1فوتبال$2') |
||
.replace(/([ \(\)]) |
.replace(/([ \(\)])موالید([ \(\)])/g, '$1زاده$2') |
||
.replace(/( |
.replace(/^(.*?)[,،] (.*)$/, '$1 ($2)')); |
||
. |
return row.reverse().join('@') + '\n'; |
||
}).join('')); |
|||
}) |
}) |
||
))); |
|||
))); |
|||
function onHashChange() { |
|||
if (location.hash === '#catmaker') { |
|||
function onHashChange() { |
|||
$('#tofawiki-select').val('category'); |
|||
if (location.hash === '#catmaker') { |
|||
} |
|||
$('#tofawiki-select').val('category'); |
|||
if (location.hash && location.hash.split('|')[0] === '#redirectmaker') { |
|||
$('#tofawiki-select').val('redirect'); |
|||
} |
|||
$('#tofawiki-select').change(); |
|||
} |
} |
||
$(window).on('hashchange', onHashChange); |
|||
if (location.hash && location.hash.split('|')[0] === '#redirectmaker') { |
|||
onHashChange(); |
|||
$('#tofawiki-select').val('redirect'); |
|||
} |
|||
$('#tofawiki-select').change(); |
|||
} |
|||
$(window).on('hashchange', onHashChange); |
|||
onHashChange(); |
|||
function resolveUserRequests(delimiter) { |
|||
return $('#tofawiki-main').val().trim().split('\n') |
|||
.filter(function (x) { |
|||
return x.indexOf(delimiter) !== -1; |
|||
}).map(function (x) { |
|||
if ($('#tofawiki-select').val() === 'category') { |
|||
x = x.replace(/رده:/, '').replace(/Category:/i, ''); |
|||
} |
|||
x = x.split(delimiter); |
|||
x[0] = x[0].split('>').slice(-1)[0].trim(); |
|||
x[1] = x[1].split('>').slice(-1)[0].trim(); |
|||
if ($('#tofawiki-select').val() === 'category') { |
|||
x[0] = 'رده:' + x[0]; |
|||
x[1] = 'Category:' + x[1]; |
|||
} |
|||
return x; |
|||
}); |
|||
} |
|||
function resolveUserRequests(delimiter) { |
|||
return |
return $('#tofawiki-main').val().trim().split('\n') |
||
.filter(function (x) { |
|||
action: 'parse', |
|||
return x.indexOf(delimiter) !== -1; |
|||
text: content, |
|||
}).map(function (x) { |
|||
contentmodel: 'wikitext', |
|||
if ($('#tofawiki-select').val() === 'category') { |
|||
prop: 'text', |
|||
x = x.replace(/رده:/, '').replace(/Category:/i, ''); |
|||
pst: '', |
|||
} |
|||
title: title || 'API' |
|||
}).then(function (data) { return data.parse.text['*']; }); |
|||
} |
|||
function preSavedTransform(content, title) { |
|||
return new mw.Api().post({ |
|||
action: 'parse', |
|||
text: content, |
|||
contentmodel: 'wikitext', |
|||
prop: 'text', |
|||
onlypst: '', |
|||
title: title || 'API' |
|||
}).then(function (data) { return data.parse.text['*']; }); |
|||
} |
|||
x = x.split(delimiter); |
|||
function createPage(title, text, summary) { |
|||
x[0] = x[0].split('>').slice(-1)[0].trim(); |
|||
return new mw.Api().post({ |
|||
x[1] = x[1].split('>').slice(-1)[0].trim(); |
|||
action: 'edit', |
|||
title: title, |
|||
text: text, |
|||
summary: summary || '', |
|||
createonly: '', |
|||
bot: '', |
|||
token: mw.user.tokens.get('csrfToken') |
|||
}).then(function (response) { |
|||
return response.error |
|||
? $.Deferred().reject(response.error) |
|||
: response; |
|||
}); |
|||
} |
|||
if ($('#tofawiki-select').val() === 'category') { |
|||
var wikidataTokenCache; |
|||
x[0] = 'رده:' + x[0]; |
|||
function wikidataToken() { |
|||
x[1] = 'Category:' + x[1]; |
|||
if (wikidataTokenCache) { |
|||
} |
|||
return $.Deferred().resolve(wikidataTokenCache); |
|||
return x; |
|||
}); |
|||
} |
} |
||
function parseContent(content, title) { |
|||
return $.ajax({ |
|||
return new mw.Api().post({ |
|||
url: '//www.wikidata.org/w/api.php', |
|||
action: 'parse', |
|||
text: content, |
|||
contentmodel: 'wikitext', |
|||
prop: 'text', |
|||
pst: '', |
|||
origin: location.protocol + '//' + location.hostname |
|||
title: title || 'API' |
|||
}, |
|||
}).then(function (data) { return data.parse.text['*']; }); |
|||
xhrFields: { withCredentials: true } |
|||
} |
|||
}).then(function (data) { |
|||
var token = data.query.tokens.csrftoken; |
|||
function preSavedTransform(content, title) { |
|||
if (token === '+\\') { |
|||
return new mw.Api().post({ |
|||
// not logged in |
|||
action: 'parse', |
|||
return $.Deferred().reject('login'); |
|||
text: content, |
|||
contentmodel: 'wikitext', |
|||
wikidataTokenCache = token; |
|||
prop: 'text', |
|||
onlypst: '', |
|||
title: title || 'API' |
|||
}).then(function (data) { return data.parse.text['*']; }); |
|||
} |
|||
function createPage(title, text, summary) { |
|||
return new mw.Api().post({ |
|||
action: 'edit', |
|||
title: title, |
|||
text: text, |
|||
summary: summary || '', |
|||
createonly: '', |
|||
bot: '', |
|||
token: mw.user.tokens.get('csrfToken') |
|||
}).then(function (response) { |
|||
return response.error |
|||
? $.Deferred().reject(response.error) |
|||
: response; |
|||
}); |
|||
} |
|||
var wikidataTokenCache; |
|||
function wikidataToken() { |
|||
if (wikidataTokenCache) { |
|||
return $.Deferred().resolve(wikidataTokenCache); |
|||
} |
} |
||
}); |
|||
} |
|||
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; |
|||
}); |
|||
} |
|||
return $.ajax({ |
|||
function addWikidataSitelink(token, wikidataId, title, site) { |
|||
url: '//www.wikidata.org/w/api.php', |
|||
return $.ajax({ |
|||
data: { |
|||
url: '//www.wikidata.org/w/api.php', |
|||
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 { |
|||
wikidataTokenCache = token; |
|||
return token; |
|||
} |
|||
}); |
|||
} |
|||
function getWikidataId(enTitle) { |
|||
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({ |
|||
action: 'wbgetentities', |
|||
format: 'json', |
format: 'json', |
||
sites: 'enwiki', |
|||
titles: enTitle, |
|||
props: 'info', |
|||
bot: '1', |
|||
token: token, |
|||
origin: location.protocol + '//' + location.hostname |
origin: location.protocol + '//' + location.hostname |
||
}).then(function (x) { |
|||
}, |
|||
return x.entities[Object.keys(x.entities)[0]].id; |
|||
xhrFields: { withCredentials: true } |
|||
}); |
|||
}).then(function (data) { |
|||
} |
|||
return data.error ? $.Deferred().reject(data.error) : data; |
|||
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) { |
|||
return data.error ? $.Deferred().reject(data.error) : data; |
|||
}); |
|||
} |
|||
}; |
|||
function callback(json) { |
|||
var u = mw.config.get('wgUserName'); |
|||
if (json.allowedusers.indexOf(u) === -1) { |
|||
$('#content').empty().append( |
|||
'<span>پیش از آن که بتوانید از ابزار بهویکیفا انبوه استفاده کنید، باید در ', |
|||
'<b><a href="/wiki/ویکیپدیا:درخواست_برای_دسترسی/بهویکیفا_انبوه" target=_blank">صفحهٔ درخواست برای دسترسی</a></b>', |
|||
' برای کسب دسترسی به این ابزار درخواست دهید.</span>'); |
|||
return; |
|||
} else { |
|||
tofawiki.run(); |
|||
} |
|||
} |
} |
||
}); |
}); |
نسخهٔ ۹ ژوئن ۲۰۲۲، ساعت ۰۱:۱۱
// <nowiki>
$(function () {
'use strict';
// Create empty object for later use
var tofawiki = {};
document.title = 'بهویکیفا انبوه - ویکیپدیا، دانشنامهٔ آزاد';
// Check if the user is allowed to use the gadget
$.getJSON('/w/index.php', {action: 'raw', ctype: 'application/json',title: 'ویکیپدیا:درخواست_برای_دسترسی/بهویکیفا_انبوه/فهرست_سفید'}, callback);
tofawiki.run = function () {
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Blankpage' ||
mw.config.get('wgPageName').split('/')[1] !== 'tofawiki-conosle') {
return;
}
var serverName = mw.config.get('wgServerName');
if (mw.config.get('wgUserGroups').every(function (x) {
return ['bot', 'autopatrolled', 'patroller', 'sysop', 'eliminator'].indexOf(x) === -1;
}) && serverName === 'fa.wikipedia.org') {
$('#content').empty().append('متأسفانه این ابزار به کاربران دارای دسترسی گشت خودکار محدود شده است.');
return;
}
window.onbeforeunload = function () {
if ($('#tofawiki-main').width() && $('#tofawiki-main').val() === '') {
return;
}
return 'پیش از اتمام صفحه را ترک نکنید';
};
var methods = {
city: {
title: 'شهر و مکانهای مسکونی',
summary: 'Rezabot',
generateContent: function (request) {
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/a.php').extend({
fawiki: request[0],
enwiki: request[1]
}));
},
extraInfo: $('<div>').append(
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>',
'<br><div>شیراز@Shiraz</div>',
'<br><div>تهران@Tehran</div>',
'<br><div>اصفهان@Isfahan</div>',
'<br>شهرهای ناموجود مهم در ',
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/شهرهای_ناموجود" target="_blank">اینجا</a></b>',
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید مقالات شهرها را مشاهده کنید.<br>'
),
placeholder: 'عنوان @ Title',
enableCheckButton: true,
enableFirstAidsButton: true,
isPersianWikipediaOnly: true
},
general: {
title: 'اشخاص، آرایههای زیستی، فیلم، موسیقی، رود، ساختمان و بازیهای ویدئویی',
summary: 'Dexbot',
generateContent: function (request) {
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]);
},
extraInfo: $('<div>').append(
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن مقاله و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید.</div>',
'<br>مقالههای ناموجود مهم در ',
'<b><a href="//fa.wikipedia.org/wiki/ویکیپدیا:گزارش_دیتابیس/مقالههای_مهم_ایجادنشده" target="_blank">اینجا</a></b>',
' فهرست شدهاند؛ با کلیک بر روی موضوع مقاله میتوانید برپایهٔ موضوع آنها را مرتب و انتخاب کنید.<br>'
),
placeholder: 'عنوان @ Title',
enableCheckButton: true,
enableFirstAidsButton: true,
isPersianWikipediaOnly: true
},
redirect: {
title: 'تغییرمسیر',
summary: 'تغییرمسیرساز',
generateContent: function (request) {
return resolveRedirect(request[1]).then(function (title) {
return {
page_content: '#' + 'تغییرمسیر [' + '[' + title + ']]'
};
});
},
noLanguageLinks: true,
extraInfo: '',
placeholder: 'مبدأ تغییر مسیر @ مقصد (عنوان مقالهٔ اصلی)',
creationExtraTool: function () {
var destination = location.hash.split('|')[1];
if (!destination)
return;
destination = decodeURI(destination);
var ns = 0;
var pageNameParts = destination.split(/:/);
if (pageNameParts.length > 1) {
var possibleNs = mw.config.get('wgNamespaceIds')[pageNameParts[0]];
if (possibleNs !== undefined) {
ns = possibleNs;
destination = pageNameParts.slice(1).join(':');
}
}
var namespaces = {
0: '',
2: 'کاربر:',
4: ['وپ:', 'ویکی\u200cپدیا:'],
6: 'پرونده:',
8: 'مدیاویکی:',
10: 'الگو:',
12: 'راهنما:',
14: 'رده:',
100: 'درگاه:',
102: 'کتاب:',
446: 'برنامه آموزشی:',
828: 'پودمان:'
};
var append = '@';
var buttonText = '@';
if (typeof namespaces[ns] === 'object') {
append = namespaces[ns][0] + '@' + namespaces[ns][1] + destination;
buttonText = namespaces[ns][0] + '@صفحهٔ قبل';
} else if (typeof namespaces[ns] === 'string') {
append = namespaces[ns] + '@' + namespaces[ns] + destination;
buttonText = namespaces[ns] + '@' + destination;
}
return $('<span>', {
text: buttonText,
class: 'mw-ui-button mw-ui-constructive'
}).click(function () {
var value = $('#tofawiki-main').val().trim();
if (value !== '')
value = value + '\n';
value = value + append;
$('#tofawiki-main').val(value).focus();
});
},
editBoxRows: 2,
previewHeight: 60,
autoCreate: true,
isPersianWikipediaOnly: true
},
category: {
title: 'رده',
summary: 'فهرست ورودی',
generateContent: function (request) {
return $.getJSON('//tofawiki.wmcloud.org/translate/enwiki/' + request[1] + '/' + request[0]);
},
afterSaveAction: function (pageTitle) {
var defer = $.Deferred();
var status = $('<span>', { text: 'درخواست پر کردن ' + pageTitle + '…' });
mw.notify(status, { autoHide: false });
setTimeout(function () {
return $.get('//rezabot.toolforge.org/fillcat.php', {
title: pageTitle,
fawiki: pageTitle.replace(/ /g, '_'),
user: 'کاربر:' + mw.config.get('wgUserName'),
namespace: 14
}).then(function () {
status.text('درخواست پر کردن ' + pageTitle + ' با موفقیت داده شد.');
defer.resolve();
}, defer.resolve);
}, 2000);
return defer;
},
extraInfo: $('<div>').append(
'درخواست\u200cهای ساخت رده را در خطوط جداگانه مانند مثال زیر وارد کنید:' +
'<br>رده۱@Cateogry1<br>رده۲@Cateogry2<br>رده۳@Cateogry3<br><b>نکات مهم:</b><ol>' +
'<li>ردهها باید شیوهنامه <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ترجمه_ردهها" target="ویکیپدیا:ترجمه ردهها">ویکیپدیا:ترجمه_ردهها</a> را رعایت کنند.' +
'<li>ردههایی که تازه ساخته میشوند نیازی به افزودن به مقالات و صفحات ندارد و این ردهها پس از چند ساعت به صورت رباتیک به صفحههای مرتبط، اضافه میگردند و میانویکیشان به ویکیداده افزوده میشود.' +
'<li>ابزار ردههایی که در ویکیانگلیسی موجود نباشند را نمیسازد.<br>' +
'<li>ابزار ردههایی که رده مادر نداشته باشند یا همسنگ رده مادر در ویکیپدیای فارسی نباشد یا همهٔ ردههای مادرشان رده پنهان باشد را نمیسازد.(رده ردهبندی نشده نمیسازد)<br>' +
'<li>اگر ردهای را که پیشنهاد دادید ساخته نشدهاست، ممکن است [[ویژه:پالایهٔ_خرابکاری/91]] از عمل شما جلوگیری کرده باشد (دقت کنید که شرایط موجود در <a href="//fa.wikipedia.org/w/index.php?title=مدیاویکی:Abusefilter-warning-category" target="مدیاویکی:Abusefilter-warning-category">مدیاویکی:Abusefilter-warning-category</a> را رعایت کردهاید.)' +
'</ol>'
),
placeholder: 'عنوان رده به فارسی @ Title',
editBoxRows: 7,
previewHeight: 60,
isPersianWikipediaOnly: true
},
disambig: {
title: 'ابهامزدایی و مجموعه نمایه',
summary: 'Rezabot',
generateContent: function (request) {
return $.getJSON(new mw.Uri('//rezabot.toolforge.org/disambig.php').extend({
fawiki: request[0],
enwiki: request[1]
}));
},
extraInfo: $('<div>').append(
'<div>در پنجرهٔ پایین نام فارسی و انگلیسی مقالهٔ ناموجود را بنویسید و دکمهٔ درخواست را بزنید. بعد از چند دقیقه ربات متن صفحهٔ ابهامزدایی و پیشنمایش آنرا در اختیارتان میگذارد. بعد از اعمال تغییرات دکمهٔ ایجاد را بزنید. مانند:</div>',
'<br><div>شیراز@Shiraz</div>',
'<br><div>تهران@Tehran</div>',
'<br><div>اصفهان@Isfahan</div>',
'<br><div>نکته مهم: ممکن است نیاز باشد از الگوهای {{مقالات مجموعهنمایه}}، {{نام خانوادگی}}، {{نام کوچک}} و… به جای {{ابهامزدایی}} استفاده کنید برای اطلاعات بیشتر <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:ابهامزدایی" target="ویکیپدیا:ابهامزدایی">ویکیپدیا:ابهامزدایی</a> و <a href="//fa.wikipedia.org/w/index.php?title=ویکیپدیا:مقالات_مجموعهنمایه" target="ویکیپدیا:مقالات_مجموعهنمایه">ویکیپدیا:مقالات مجموعهنمایه</a> را مطالعه کنید.</div>',
),
placeholder: 'عنوان @ Title',
enableCheckButton: true,
enableFirstAidsButton: true,
isPersianWikipediaOnly: true
},
custom: {
title: 'شخصی (پیشرفته)',
summary: 'الگوی شخصی',
generateContent: function (request) {
return $.Deferred().resolve({
page_content: '{{subst:' + $('#tofawiki-customtemplate').val() + '|' + request.map(function (x, i) {
return (i + 1) + '=' + x;
}).join('|') + '}}'
});
},
afterSaveUtils: function (pageTitle) {
if (serverName !== 'fa.wikipedia.org') return;
return $('<button>', { style: 'font-size: 100%' }).text('درخواست افزودن نگارخانه و ردهٔ همسنگ').click(function () {
var button = $(this);
button.text('در حال انجام…').attr('disabled', '');
$.get('//rezabot.toolforge.org/getbox.php', {
title: pageTitle,
fawiki: pageTitle.replace(/ /g,'_'),
user: 'کاربر:' + mw.config.get('wgUserName'),
namespace: 0
}).then(function(result) {
return $.get('//rezabot.toolforge.org/fillcatArticle.php', {
title: pageTitle,
fawiki: pageTitle.replace(/ /g,'_'),
user: 'کاربر:' + mw.config.get('wgUserName'),
namespace: 0
});
}).then(function () {
button.text('انجام شد');
});
});
},
extraInfo: $('<div>').append(
'راهنمای <b><a href="//fa.wikipedia.org/wiki/راهنما:ساخت_مقاله_به_کمک_الگوی_شخصی_با_ابزار_به_ویکیفا_انبوه" target="_blank">ساخت مقاله به کمک الگوی شخصی با ابزار به ویکیفا انبوه</a></b> اطلاعات بسیار خوبی رابطه جهت استفاده از این قسمت میدهد.<br><br>',
'به طور خلاصه برای استفاده از این ابزار کافیست فایل اکسل را در جعبهٔ زیر کپی کنید و الگوی تراگنجانش را مشخص کنید.',
'<br>',
'<b>نکته:</b> متغیر۱ برابر با نام مقاله و متغیر۲ برابر با میانویکیست و سایر متغیرها هم برای معرفی بخشهای تغییرپذیر مقاله کاربرد دارند.'
),
placeholder: 'متغیر۱ (نام مقاله)\tمتغیر۲ (ترجیحاً عنوان انگلیسی)\tمتغیر۳\tمتغیر۴\t…',
enableCheckButton: true,
enableFirstAidsButton: true
}
};
function resolveRedirect(title) {
return new mw.Api().get({
action: 'query',
titles: title,
redirects: ''
}).then(function (result) {
return result.query.pages[Object.keys(result.query.pages)[0]].title;
}).catch(function (e) {
console.error(e);
return title;
});
}
// ابزارهای رده
function catParents(title) {
return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({
action: 'query',
prop: 'categories',
titles: title,
clshow: '!hidden',
cllimit: 500,
format: 'json',
origin: window.location.protocol + '//' + window.location.hostname
}).then(function (data) {
return (data.query.pages[Object.keys(data.query.pages)[0]].categories || []).map(function (x) { return x.title; });
});
}
function getWikidataEntity(entitle) {
return new mw.Api({ ajax: { url: '//www.wikidata.org/w/api.php' } }).get({
action: 'wbgetentities',
format: 'json',
sites: 'enwiki',
titles: entitle,
normalize: 'true',
origin: window.location.protocol + '//' + window.location.hostname
}).then(function (x) { return x.entities[Object.keys(x.entities)[0]]; });
}
function pageExists(page) {
return new mw.Api({ ajax: { url: '//fa.wikipedia.org/w/api.php' } }).get({
action: 'query',
titles: page,
format: 'json'
}).then(function (data) { return data.query.pages['-1'] === undefined; });
}
function dePersian(text) {
return text
.replace(/ی/g, 'ي')
.replace(/ک/g, 'ك')
.replace(/گ/g, 'كی')
.replace(/ژ/g, 'زی')
.replace(/چ/g, 'جی')
.replace(/پ/g, 'بی');
}
////
$('#content').empty().append($('<div>', { id: 'tofawiki-console' }).css({
border: '2px solid #b3000b',
padding: '1em',
'background-color': '#fefce3',
'margin-bottom': '8px',
'border-radius': '15px'
}).append($('<div>', { id: 'tofawiki-console-input' }).append(
'نوع: ',
$('<select>', { id: 'tofawiki-select', style: 'font-size: 120%' }).append(Object.keys(methods).filter(function (id) {
return serverName === 'fa.wikipedia.org' || !methods[id].isPersianWikipediaOnly;
}).map(function (id) {
return $('<option>', { value: id }).text(methods[id].title);
})).change(function () {
if ($(this).val() === 'custom') {
$('#tofawiki-custom').show();
$('#tofawiki-delimiter').val('\t');
} else {
$('#tofawiki-custom').hide();
$('#tofawiki-delimiter').val('@');
}
var method = methods[$(this).val()];
$('#tofawiki-extrainfo').empty().append(method.extraInfo);
$('#tofawiki-main').attr('placeholder', method.placeholder);
$('#tofawiki-creationextratool').empty().append(method.creationExtraTool
? method.creationExtraTool()
: '');
$('#tofawiki-checkbutton').toggle(method.enableCheckButton);
$('#tofawiki-firstaidsbutton').toggle(method.enableFirstAidsButton);
}),
'<br>',
'جداکننده ',
$('<select>', { id: 'tofawiki-delimiter' }).append(
$('<option>', { value: '@' }).text('@'),
$('<option>', { value: '|' }).text('|'),
$('<option>', { value: '\t' }).text('تب')
),
'<br>',
$('<div>', { id: 'tofawiki-custom' }).append(
'الگو برای تراگنجانش: ',
$('<input>', { id: 'tofawiki-customtemplate' })
).hide(),
'<br>',
$('<div>', { id: 'tofawiki-extrainfo' }),
'<br>',
$('<div>', { id: 'tofawiki-creationextratool' }).css({ position: 'absolute', left: '2.5em' }),
$('<textarea>', {
id: 'tofawiki-main',
style: 'font-size: 150%',
rows: 10
}),
$('<button>', { style: 'font-size: 100%', text: 'درخواست' }).click(function () {
var method = methods[$('#tofawiki-select').val()];
var delimiter = $('#tofawiki-delimiter').val();
var requests = resolveUserRequests(delimiter);
$('#tofawiki-console-input').hide();
$('#tofawiki-console').append(
$('<div>', { id: 'tofawiki-progress' }),
'<br><hr><br>'
);
var current = 1;
var success = 0;
requests.map(function (request) {
var row = $('<div>', {
'class': 'tofawiki-row',
style: 'border-bottom: 1px solid; margin-bottom: 1em; padding-bottom:1em;'
}).appendTo('#tofawiki-console');
return function generateText() {
var fawiki = request[0].replace(/ي/g, 'ی').replace(/ك/g, 'ک');
var enwiki = request[1];
var promise = method.generateContent(request).then(function (result) {
return result.error
? $.Deferred().reject(result.error)
: preSavedTransform(result.page_content, fawiki);
});
$('#tofawiki-progress').text('در حال دریافت «' + fawiki
+ '» (' + (current++).toLocaleString('fa') + ' از ' +
requests.length.toLocaleString('fa') + ')');
return promise.then(function (content) {
if (window.persianWikiTools) {
content = persianWikiTools.superTool(content);
}
var textarea = $('<textarea>', { cols: 80, rows: method.editBoxRows || 20, text: content });
var summary = $('<input>', { style: 'width: 500px;' });
if (serverName === 'fa.wikipedia.org')
summary.val('ایجادشده به کمک [[راهنما:ابزار/به ویکیفا|به ویکیفا]] انبوه و ' + method.summary + '، ابرابزار');
var previewElement = $('<div>', { 'class': 'tofawiki-preview' });
var preview = function () {
return parseContent(textarea.val(), fawiki).then(function (result) {
previewElement.css({
'border': '1px solid grey',
'padding': '1em',
'height': method.previewHeight || 270,
'overflow-y': 'scroll'
}).html(result).append('<div style="clear: both">');
});
};
preview();
var againInput = $('<input>').val(request.join(delimiter));
row.empty().append(
$('<div>', { style: 'font-size: 150%;' }).text(fawiki),
textarea,
'<br>',
summary,
'<br><br>',
previewElement,
'<br>',
$('<button>', { style: 'font-size: 100%', 'class': 'tofawiki-row-create-button', text: 'ایجاد' }).click(function () {
var content = textarea.val();
var summaryText = summary.val();
row.empty().append('در حال ایجاد ' + fawiki + '…');
createPage(fawiki, content, summaryText).then(function () {
pageExists(fawiki).then(function (exists) {
if (!exists) {
row.empty().append(
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» به دلیل خطا ایجاد نشد! (ممکن است خطای پالایه باشد)',
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : ''
);
} else {
row.empty().append(
'«', $('<a>', { text: fawiki, target: '_blank', href: mw.util.getUrl(fawiki) }), '» ایجاد شد ',
method.afterSaveUtils ? method.afterSaveUtils(fawiki) : ''
);
}
});
if (++success === requests.length) {
window.onbeforeunload = undefined;
}
if (method.noLanguageLinks)
return;
if (serverName !== 'fa.wikipedia.org') return;
return $.when(wikidataToken(), getWikidataId(enwiki)).then(function (token, id) {
return addWikidataSitelink(token, id, fawiki, 'fawiki');
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () {
return $.get('//dexbot.toolforge.org/interwikidata.php', { page: fawiki });
}).then(undefined, function () { return $.Deferred().resolve(); }).then(function () {
if (method.afterSaveAction) return method.afterSaveAction(fawiki);
});
}, function (error) {
var retryInput = $('<input>').val(request.join(delimiter));
row.empty().append(
$('<span>', {
style: 'color: red;',
text: error === 'articleexists'
? 'صفحهای به این عنوان در حال حاضر وجود دارد'
: error
}),
'<br>',
retryInput,
$('<button>').text('تلاش مجدد').click(function () {
request = retryInput.val().split(delimiter);
row.empty().html('تلاش مجدد…');
generateText();
})
);
});
}),
' ',
$('<button>').css('font-size', '100%').text('بهروزرسانی پیشنمایش').click(function () {
var button = $(this);
button.attr('disabled', '');
preview().then(function () {
button.prop('disabled', false);
});
}),
' ',
window.persianWikiTools ? $('<img>', {
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png'
}).click(function () {
textarea.val(persianWikiTools.superTool(textarea.val()));
}) : '',
'<br><br>',
againInput,
$('<button>').text('تهیه مجدد').click(function () {
request = againInput.val().split(delimiter);
row.empty().html('تهیه مجدد…');
generateText();
})
);
}).then(undefined, function (error) {
error = error || 'ایجاد ' + fawiki + ' ناموفق بود';
parseContent(error).then(function (parsedError) {
var retryInput = $('<input>').val(request.join(delimiter));
row.empty().append(
$('<span>', {
style: 'color: red;',
html: parsedError
}),
retryInput,
$('<button>').text('تلاش مجدد').click(function () {
request = retryInput.val().split(delimiter);
row.empty().html('تلاش مجدد…');
generateText();
})
);
});
return $.Deferred().resolve();
});
};
}).reduce(function (defer, job) {
return defer.then(job);
}, $.Deferred().resolve()).then(function () {
$('#tofawiki-progress').empty();
function createAll() {
var createAllButton = $('#tofawiki-createallbutton');
createAllButton.prop('disabled', 'disabled');
$('.tofawiki-row-create-button').get().map(function (button) {
return function () {
$(button).click();
var defer = $.Deferred();
setTimeout(defer.resolve, 1000);
return defer;
};
}).reduce(function (defer, job) {
return defer.then(job);
}, $.Deferred().resolve()).then(function () {
createAllButton.hide();
});
}
if (mw.config.get('wgUserGroups').indexOf('bot') !== -1) {
$('#tofawiki-progress').append($('<button>', {
id: 'tofawiki-createallbutton',
text: 'ایجاد همه'
}).click(createAll));
}
if (method.autoCreate) {
createAll();
}
});
$('#tofawiki-console').append('<br>اصل درخواستها: ', $('<div>', {
style: 'margin: 1em; padding: 0.4em; border: 1px dotted; white-space: pre-wrap;',
html: requests.map(function (x) { return x.join(delimiter); }).join('<br>')
}));
}),
' ',
$('<button>', { style: 'font-size: 100%', id: 'tofawiki-checkbutton', text: 'بررسی' }).click(function () {
var delimiter = $('#tofawiki-delimiter').val();
var requests = resolveUserRequests(delimiter);
if (requests.some(function (x) { return x.length !== requests[0].length; })) {
mw.notify('❌ اندازههای ورودیها در خطوط مختلف یکسان نیست! احتمالاً اشتباهی در ورودی وجود دارد.', { autoHide: false });
}
var button = $(this);
button.text('در حال انجام…');
$.post('//tofawiki-linkstranslator.wmcloud.org/', {
from: 'fa',
to: 'fa',
p: requests.map(function (x) { return x[0]; }).join('|')
}).then(function (faPages) {
faPages = Object.keys(faPages);
$.post('//tofawiki-linkstranslator.wmcloud.org/', {
from: 'en',
to: 'fa',
p: requests.map(function (x) { return x[1]; }).join('|')
}).then(function (enFaEqus) {
button.text('بررسی');
//mw.notify('✔️ بررسی انجام شد!', { autoHide: false });
mw.notify('تعداد متغیرهای ورودی ' + requests[0].length.toString() + ' است، مطمئن شوید که الگو تراگنجانش هم همین تعداد متغیر دارد.', { autoHide: false });
enFaEqus = Object.keys(enFaEqus);
$('#tofawiki-main').val(requests.map(function (x) {
if (faPages.indexOf(x[0]) !== -1) {
x[0] = 'خطا: صفحهٔ موجود > ' + x[0];
}
if (enFaEqus.indexOf(x[1]) !== -1) {
x[1] = 'خطا: ترجمهٔ موجود > ' + x[1];
}
return x.join(delimiter);
}).join('\n'));
});
});
}),
' ',
window.persianWikiTools ? $('<img>', {
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png'
}).click(function () {
$('#tofawiki-main').val(persianWikiTools.superToolMove($('#tofawiki-main').val()));
}) : '',
' ',
$('<button>', {
id: 'tofawiki-firstaidsbutton',
text: 'اصلاحهای اولیه',
style: 'font-size: 40%'
}).click(function () {
$('#tofawiki-main').val($('#tofawiki-main').val().split('\n').map(function (x) {
var r = x.split('\t');
if (!r[1]) return '';
var row = r[1].trim().replace(/^en:/, '').replace(/\)$/, '').split('(⎘');
if (!row[1]) return '';
row[1] = persianWikiTools.superToolMove(row[1]
.replace(/ي/g, 'ی').replace(/ك/g, 'ک').replace(/ة/g, 'ه')
.replace(/^en:/, '').replace(/أ/g, 'ا').replace(/اء/g, 'ا')
.replace(/إ/g, 'ا')
.replace(/عبد ال/g, 'عبدال')
.replace(/([ \(\)])لاعب([ \(\)])/g, '$1بازیکن$2')
.replace(/([ \(\)])كرة قدم([ \(\)])/g, '$1فوتبال$2')
.replace(/([ \(\)])موالید([ \(\)])/g, '$1زاده$2')
.replace(/^(.*?)[,،] (.*)$/, '$1 ($2)'));
return row.reverse().join('@') + '\n';
}).join(''));
})
)));
function onHashChange() {
if (location.hash === '#catmaker') {
$('#tofawiki-select').val('category');
}
if (location.hash && location.hash.split('|')[0] === '#redirectmaker') {
$('#tofawiki-select').val('redirect');
}
$('#tofawiki-select').change();
}
$(window).on('hashchange', onHashChange);
onHashChange();
function resolveUserRequests(delimiter) {
return $('#tofawiki-main').val().trim().split('\n')
.filter(function (x) {
return x.indexOf(delimiter) !== -1;
}).map(function (x) {
if ($('#tofawiki-select').val() === 'category') {
x = x.replace(/رده:/, '').replace(/Category:/i, '');
}
x = x.split(delimiter);
x[0] = x[0].split('>').slice(-1)[0].trim();
x[1] = x[1].split('>').slice(-1)[0].trim();
if ($('#tofawiki-select').val() === 'category') {
x[0] = 'رده:' + x[0];
x[1] = 'Category:' + x[1];
}
return x;
});
}
function parseContent(content, title) {
return new mw.Api().post({
action: 'parse',
text: content,
contentmodel: 'wikitext',
prop: 'text',
pst: '',
title: title || 'API'
}).then(function (data) { return data.parse.text['*']; });
}
function preSavedTransform(content, title) {
return new mw.Api().post({
action: 'parse',
text: content,
contentmodel: 'wikitext',
prop: 'text',
onlypst: '',
title: title || 'API'
}).then(function (data) { return data.parse.text['*']; });
}
function createPage(title, text, summary) {
return new mw.Api().post({
action: 'edit',
title: title,
text: text,
summary: summary || '',
createonly: '',
bot: '',
token: mw.user.tokens.get('csrfToken')
}).then(function (response) {
return response.error
? $.Deferred().reject(response.error)
: response;
});
}
var wikidataTokenCache;
function wikidataToken() {
if (wikidataTokenCache) {
return $.Deferred().resolve(wikidataTokenCache);
}
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 {
wikidataTokenCache = token;
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) {
return data.error ? $.Deferred().reject(data.error) : data;
});
}
};
function callback(json) {
var u = mw.config.get('wgUserName');
if (json.allowedusers.indexOf(u) === -1) {
$('#content').empty().append(
'<span>پیش از آن که بتوانید از ابزار بهویکیفا انبوه استفاده کنید، باید در ',
'<b><a href="/wiki/ویکیپدیا:درخواست_برای_دسترسی/بهویکیفا_انبوه" target=_blank">صفحهٔ درخواست برای دسترسی</a></b>',
' برای کسب دسترسی به این ابزار درخواست دهید.</span>');
return;
} else {
tofawiki.run();
}
}
});
// </nowiki>