مدیاویکی:Gadget-AfD.js
پرش به ناوبری
پرش به جستجو
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
/*jslint indent: 2, browser: true*/
/*global jQuery, mediaWiki, persianWikiTools, alert*/
var kiiir = '';
function ConvertYearToFarsi(year) {
var i = 0;
for (i = 0; i <= 9; i = i + 1) {
year = year.replace(new RegExp('[' + '0123456789' [i] + ']', 'g'), '۰۱۲۳۴۵۶۷۸۹' [i]);
}
return year
}
function ConvertMonthToFarsi(month) {
if (month == 'January') {
return 'ژانویه'
};
if (month == 'February') {
return 'فوریه'
};
if (month == 'March') {
return 'مارس'
};
if (month == 'April') {
return 'آوریل'
};
if (month == 'May') {
return 'مه'
};
if (month == 'June') {
return 'ژوئن'
};
if (month == 'July') {
return 'ژوئیه'
};
if (month == 'August') {
return 'اوت'
};
if (month == 'September') {
return 'سپتامبر'
};
if (month == 'October') {
return 'اکتبر'
};
if (month == 'November') {
return 'نوامبر'
};
if (month == 'December') {
return 'دسامبر'
};
}
function creationdate(title) {
mw.loader.using( 'mediawiki.api', function () {
( new mw.Api() ).get( {
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'timestamp',
rvdir: 'newer',
format: 'json',
rvlimit: '1',
} ).done(function ( data ) {
kiiir = data["query"]["pages"][Object.keys(data["query"]["pages"])]["revisions"][0]["timestamp"];
});
} );
}
function ArchiveMonth() {
var ArchiveMonthLink = '';
var crdate = new Date(kiiir);
var ArchiveMonthLink = ConvertMonthToFarsi(crdate.getUTCMonthName()) + ' ' + ConvertYearToFarsi(String(crdate.getUTCFullYear()));
return ArchiveMonthLink;
}
(function ($, mw) {
'use strict';
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('editToken')
}).done(function (data) {
if (data.error && data.error.info) {
mw.notify(data.error.info);
} else {
callback();
}
}).fail(function (data) {
mw.notify(data);
});
}
function ClosePage(text, comment) {
text = '{{آغاز بایگانی حذف}}\n\n' + comment + ' ~~' + '~~\n' + text + '\n{{پایان بایگانی حذف}}';
mw.notify('نظرخواهی بسته شد!');
return text;
}
function CloseTalkPage(text,article_name, comment) {
text = '{{پیشینه حذف| تاریخ =~~' + '~~' + '~| نتیجه =' + comment + ' | صفحه =' + article_name.replace(/\_/g, ' ') + ' |کوچک=}}' + text;
mw.notify('الگو پیشینه حذف به بحث صفحه افزوده شد!');
return text;
}
function ArchivePage(text, pagelink, comment) {
text = text + '\n* [[' + pagelink.replace(/\_/g, ' ') + ']] -- ' + comment + ' ~~' + '~~'
mw.notify('بایگانی بهروز شد.');
return text;
}
function RemoveLink(text, pagelink) {
var text2 = text;
pagelink = pagelink.replace(/\_/g, ' ');
text = text.replace('{{' + pagelink + '}}\n', '')
if (text2 == text) {
mw.notify('توجه:برداشتن نظرخواهی از وپ:نبح با خطا مواجه شد!')
} else {
mw.notify('نظرخواهی از وپ:نبح برداشته شد!')
}
return text;
}
function RemoveTemplate(text, pagelink) {
var text2 = text;
text = text.replace(/\<!--(.+?)--\>\n*{{پیشنهاد حذف۲(.+?)\n*\<!--(.+?)--\>/g, '');
if (text2 == text) {
mw.notify('توجه:برداشتن الگو از مقاله با مشکل مواجه شد!');
} else {
mw.notify('الگو پیشنهاد حذف از صفحه برداشته شد!');
}
text=text.trim()
return text;
}
function loadSavePageRefresh(page, replaceCallback, summary) {
loadPage(page, function (text) {
savePage(page, replaceCallback(text), summary, function () {
//window.location = mw.util.wikiGetlink(page) + '?action=purge';
});
});
}
function DeletePageRefresh(page, summary) {
deltok(function (deltokk) {
deletePage(page, summary, deltokk, function () {
});
});
}
function deltok(callback) {
new mw.Api().post({
action: 'tokens',
type: 'delete'
}).done(function (data) {
if (data.error && data.error.info) {
mw.notify(data.error.info);
} else {
callback(data.tokens.deletetoken);
}
}).fail(function (data) {
mw.notify(data);
});
}
function deletePage(title, summary, deltokk, callback) {
new mw.Api().post({
action: 'delete',
title: title,
summary: summary,
token: deltokk,
}).done(function (data) {
if (data.error && data.error.info) {
mw.notify(data.error.info);
} else {
mw.notify('مقاله حذف شد!');
}
}).fail(function (data) {
mw.notify(data);
});
}
if (mw.config.get('wgAction') === 'view' && (wgPageName.search("نظرخواهی_برای_حذف/") > -1)) {
$(function () {
$(mw.util.addPortletLink('p-views', '#', 'جمعبندی', 'ca-afd', 'ابزار جمعبندی'))
.click(function (e) {
e.preventDefault();
var comment = prompt('لطفاً نتیجه جمعبندی را با عبارتهای «بماند» یا «حذف شود» یا «ادغام شود» اعلام نمائید.');
if (comment) {
var OurPage = mw.config.get('wgPageName');
var article_name = mw.config.get('wgPageName');
article_name = article_name.replace("ویکیپدیا:نظرخواهی_برای_حذف/", "")
//Closing The RFD page
creationdate(OurPage)
loadSavePageRefresh(OurPage,
function (text) {
return ClosePage(text, comment);
},
'بستن نظرخواهی [[وپ:نبح]] ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])'
);
if (comment.search("حذف شود") == -1) {
if (article_name.search("کاربر:") > -1 || article_name.search("الگو:") > -1 || article_name.search("رده:") > -1 || article_name.search("ویکیپدیا:") > -1|| article_name.search("درگاه:") > -1 || article_name.search("راهنما:") > -1 ) {
var TalkLink = 'بحث ';
} else {
var TalkLink = 'بحث:';
}
loadSavePageRefresh(TalkLink + article_name,
function (text) {
return CloseTalkPage(text, OurPage, comment);
},
'افزودن [[الگو:پیشینه حذف]] به بحث صفحه ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])'
);
}
//Archiving the RFD link
setTimeout(function(){
loadSavePageRefresh('ویکیپدیا:نظرخواهی_برای_حذف/بایگانی/' + ArchiveMonth(),
function (text) {
return ArchivePage(text, OurPage, comment);
},
'بایگانی نظرخواهی [[وپ:نبح]] ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])'
);
},3000);
//Remove RFD link form wp:RFD
loadSavePageRefresh('ویکیپدیا:نظرخواهی_برای_حذف',
function (text) {
return RemoveLink(text, OurPage);
},
'حذف نظرخواهی از [[وپ:نبح]] ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])'
);
if (comment.search("حذف شود") > -1) {
//Deleting the Articel
//var wikipedia_page = new Wikipedia.page(article_name, "حذف ");
//wikipedia_page.setFollowRedirect(true);
//wikipedia_page.setEditSummary('حذف صفحه بر اساس [[' + OurPage + '|نظرخواهی برای حذف]] ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])');
//wikipedia_page.deletePage();
//mw.notify('مقاله حذف شد!');
DeletePageRefresh(article_name, 'حذف صفحه بر اساس [[' + OurPage + '|نظرخواهی برای حذف]] ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])' );
} else {
//Removing RFD template from article
loadSavePageRefresh(article_name,
function (text) {
return RemoveTemplate(text, article_name);
},
'حذف [[الگو:پیشنهاد حذف]] از مقاله ([[مدیاویکی:Gadget-AfD.js|ابزار جمعبندی]])'
);
}
//mw.notify('جمع بندی با موفقیت انجام پذیرفت');
}
})
.insertBefore('#ca-view');
});
}
}(jQuery, mediaWiki));