মিডিয়াউইকি:Gadget-scoringRevisions.js
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
- অপেরা: Ctrl-F5 টিপুন।
$(mw.util.addPortletLink('p-tb', '#', '⇦ارزشیابی نسخه', 't-scoring', 'فعالسازی ابزار ارزشیابی. نسخه، با کلیک بر روی این دکمه ابزار برای این صفحه فعال میشود.')).css('font-weight', 'bold').click(function (e) {
mw.loader.using(['mediawiki.api','jquery.ui','mediawiki.diff.styles']).then(function(){
mw.loader.load('/w/index.php?title=MediaWiki:Gadget-scoringRevisions.css&action=raw&ctype=text/css', 'text/css');
if ($('.qRcDiff').length>0){
return;
}
mw.notify('ابزار ارزشیابی نسخه فعال شد. الان میتوانید بر روی نسخهها کلیک کنید!', { autoHide: false });
if(/[&?]diff\=/.test(window.location.href)){
var diffpages=true
}else{
var diffpages=false
}
if ($.inArray(mw.config.get('wgCanonicalSpecialPageName'), ['Watchlist', 'Recentchanges', 'Contributions']) != -1|| mw.config.get('wgAction')=="history"||diffpages)(function() {
var lastRequset, $diffDialog, $diffDialog2, $diffContent, $diffContent1, diffId, diffId2,beforeBtn,nextBtn,theScore;
var diffTitle, username, mylist, mytarget, lastRevert, lastComment, lastRevertedUser;
var QuickRCDiff = {};
var scriptpathbefore = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=";
var scriptpathafter = "&action=raw&ctype=text/javascript&happy=yes";
var newwidth = '90%'
var newheight = '650'
var textBox = document.createElement("INPUT");
var labelBox = document.createElement("label");
labelText=' لطفاً به این ویرایش به صورت کاملاً ایزوله و فارغ از دسترسیهای کاربر، آیپی، سابقه مشارکتها، سایر ویرایشهای تاریخچهٔ صفحه، نگاه کنید. آیپی، کاربر گشتزن یا دیوانسالار و... بودن ویرایشگر، شما را گمراه نکند.'
labelBox.setAttribute("value",labelText );
labelBox.innerText = labelText;
textBox.setAttribute("type", "text");
textBox.setAttribute("class", "textbox");
// At diff pages
function addScore( rev_num,rev_score) {
if (!rev_score){
alert('لطفا یک دلیل برای واگردانی یا عدم واگردانی مشخص کنید')
return;
}
var userWarningsummary = 'افزودن ارزشیابی برای نسخهٔ [[Special:Diff/'+rev_num+']]'
api = new mw.Api();
api.get( {
action : 'query',
titles : 'ویکیپدیا:واحد ضد خرابکاری/ربات/ارزشیابی',
prop : 'revisions',
rvprop : 'content'
} ).done( function( data ) {
pages = data.query.pages;
page_id = Object.keys(pages)[0];
theScore='{{تفاوت نسخه|'+rev_num+'}}|'+rev_score
wikitext=pages[page_id].revisions[0]["*"]+'\n# '+theScore+'|tager:کاربر:'+mw.config.get( 'wgUserName' )
wikitext=wikitext.replace('|-','|')
api.post( {
action : 'edit',
title :'ویکیپدیا:واحد ضد خرابکاری/ربات/ارزشیابی',
summary : userWarningsummary,
text : wikitext,
token : mw.user.tokens.get('csrfToken')
} ).done ( function( data ) {
mw.log( "Saved successfully" );
//location.reload();
mw.notify(theScore, { autoHide: false });
} ).fail( function( code, result ) {
if ( code === "http" ) {
mw.log( "HTTP error: " + result.textStatus );
} else if ( code === "ok-but-empty" ) {
mw.log( "Got an empty response from the server" );
} else {
mw.log( "API error: " + code );
}
} );
} );
}
function qRcDiffHandler(content) {
document.addEventListener('keyup', keyPress, false);
mw.loader.load(['jquery.spinner', 'mediawiki.diff.styles']);
$("ul#pagehistory li:not(.active)").not('qRcDiff').addClass('qRcDiff')// for history
$('.mw-line-even,.mw-line-odd', content).not('qRcDiff').addClass('qRcDiff') // for RC
if (diffpages){
clicked_item(window.location.href, 'diff')
}
$('.qRcDiff', content).click(function(e) {
mylist = $('.qRcDiff')
var second = 0;
if ($diffDialog) {
$diffDialog.dialog('close');
}
clicked_item(e, second)
});
function scorll(a) {
window.scrollTo(0, $(window).scrollTop() + 40 * a);
}
function otherCase(casenum,goDown) {
if (!goDown){
if (casenum >= 0) {
nextBtn.prop("disabled", false).prop('title', '(کلید ↓) مورد پایین');
scorll(-1)
clicked_item(mylist[casenum - 1], 2)
} else {
beforeBtn.prop("disabled", true).prop('title', '');
}
}else{
if (casenum <= mylist.length) {
beforeBtn.prop("disabled", false).prop('title', 'مورد بالا (کلید ↑)');
scorll(1)
clicked_item(mylist[casenum + 1], 2)
} else {
nextBtn.prop("disabled", true).prop('title', '');
}
}
}
function keyPress(e) {
if ($(".ui-dialog").is(":visible")) { // اگر پنجره باز بود عمل کند
//console.log(e.keyCode)
if (e.keyCode == 38||e.keyCode == 37) { // ↑↑↑
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
otherCase(casenum,false)// مورد بالا
}
if (e.keyCode == 40||e.keyCode == 39) { // ↓↓↓
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
otherCase(casenum,true)// مورد پایین
}
}
}
function find_loc(mycase) {
var i = 0;
for (i; i < mylist.length; i++) {
if (mycase == mylist[i]) {
return i
}
}
}
function clicked_item(e, second) {
if (!second) {
mytarget = e.target
} else {
mytarget = e
}
if (second!=='diff'){
if ($(mytarget).prop('outerHTML').slice(0,7)=="<a href"){
return;
}
}
//initalizations
if (!$diffContent) $diffContent = $('<div style="height: 100% ; overflow-y: auto">');
if (!$diffContent1) $diffContent1 = $('<div>')
//if ($diffDialog) {
var buttons = {
'واگردانی میکنم:': function() {
$(".textbox").val('');
$(".RBtn01").show().prop("disabled", false)
$(".RBtn02").show().prop("disabled", false)
$(".RBtn03").show().prop("disabled", false)
$(".RBtn04").show().prop("disabled", false)
$(".RBtn05").show().prop("disabled", false)
$(".RBtn06").show().prop("disabled", false)
$(".RBtn07").show().prop("disabled", false)
$(".RBtn08").show().prop("disabled", false)
$(".RBtn09").show().prop("disabled", false)
$(".RBtn10").show().prop("disabled", false)
$(".RBtn11").show().prop("disabled", false)
$(".RBtn12").show().prop("disabled", false)
$(".RBtn13").show().prop("disabled", false)
$(".NBtn01").hide()
$(".NBtn02").hide()
$(".NBtn03").hide()
$(".NBtn04").hide()
$(".NBtn05").hide()
$(".NBtn06").hide()
$(".NBtn07").hide()
$(".NBtn08").hide()
$(".NBtn09").hide()
$(".NBtn10").hide()
$(".NBtn11").hide()
$(".NBtn12").hide()
$(".NBtn13").hide()
},
'افزودن متن نامناسب': function() {//RBtn01
$(".textbox").val($(".textbox").val() + '-Rمتن نامناسب');
},
'تبلیغ': function() {//RBtn02
$(".textbox").val($(".textbox").val() +'-Rتبلیغ')
},
'کپیکاری': function() {//RBtn03
$(".textbox").val($(".textbox").val() +'-Rکپی')
},
'عبارت نامفهوم': function() {//RBtn04
$(".textbox").val($(".textbox").val() +'-Rچرند')
},
'فحاشی، توهین': function() {//RBtn05
$(".textbox").val($(".textbox").val() +'-Rفحش')
},
'ایجاد مقاله واجد حذف': function() {//RBtn06
$(".textbox").val($(".textbox").val() +'-Rحذف')
},
'خرابکردن سینتکس ویکی': function() {//RBtn07
$(".textbox").val($(".textbox").val() +'-Rسینتکس')
},
'دستکاری اعداد و آمار، پیوند': function() {//RBtn08
$(".textbox").val($(".textbox").val() +'-Rآمار')
},
'خرابکردن گرامر یا املاء': function() {//RBtn09
$(".textbox").val($(".textbox").val() +'-Rگرامر')
},
'حذف نادرست مطلب': function() {//RBtn10
$(".textbox").val($(".textbox").val() +'-Rحذف نادرست')
},
'خرابکاری عمدی': function() {//RBtn11
$(".textbox").val($(".textbox").val() +'-Rخرابکار')
},
'کاربر تحریم': function() {//RBtn12
$(".textbox").val($(".textbox").val() +'-Rتحریم')
},
'سایر دلایل': function() {//RBtn13
$(".textbox").val($(".textbox").val() +'-Rسایر')
},
'ویرایش درست است:': function() {
$(".textbox").val('');
$(".RBtn01").hide()
$(".RBtn02").hide()
$(".RBtn03").hide()
$(".RBtn04").hide()
$(".RBtn05").hide()
$(".RBtn06").hide()
$(".RBtn07").hide()
$(".RBtn08").hide()
$(".RBtn09").hide()
$(".RBtn10").hide()
$(".RBtn11").hide()
$(".RBtn12").hide()
$(".RBtn13").hide()
$(".NBtn01").show().prop("disabled", false)
$(".NBtn02").show().prop("disabled", false)
$(".NBtn03").show().prop("disabled", false)
$(".NBtn04").show().prop("disabled", false)
$(".NBtn05").show().prop("disabled", false)
$(".NBtn06").show().prop("disabled", false)
$(".NBtn07").show().prop("disabled", false)
$(".NBtn08").show().prop("disabled", false)
$(".NBtn09").show().prop("disabled", false)
$(".NBtn10").show().prop("disabled", false)
$(".NBtn11").show().prop("disabled", false)
$(".NBtn12").show().prop("disabled", false)
$(".NBtn13").show().prop("disabled", false)
},
'افزودن یا اصلاح متن درست': function() {//NBtn01
$(".textbox").val($(".textbox").val() +'-Nدرست')
},
'افزودن منبع، الگو، رده و..': function() {//NBtn02
$(".textbox").val($(".textbox").val() +'-Nمنبع')
},
'ایجاد مناسب': function() {//NBtn03
$(".textbox").val($(".textbox").val() +'-Nایجاد')
},
'رفع املاء': function() {//NBtn04
$(".textbox").val($(".textbox").val() +'-Nاملا')
},
'رفع گرامر': function() {//NBtn05
$(".textbox").val($(".textbox").val() +'-Nگرامر')
},
'اصلاح سینتکس ویکی': function() {//NBtn07
$(".textbox").val($(".textbox").val() +'-Nسینتکس')
},
'اصلاح یا افزودن سجاوندی': function() {//NBtn06
$(".textbox").val($(".textbox").val() +'-Nسجاوندی')
},
'ابزار خودکار': function() {//NBtn08
$(".textbox").val($(".textbox").val() +'-Nابزارها')
},
'حذف متن نادرست یا نامناسب': function() {//NBtn09
$(".textbox").val($(".textbox").val() +'-Nحذف نامناسب')
},
'واگردانی یا خنثی درست': function() {//NBtn10
$(".textbox").val($(".textbox").val() +'-Nواگردانی')
},
'ویرایش موثر': function() {//NBtn11
$(".textbox").val($(".textbox").val() +'-Nموثر')
},
'پاسخ به بحث': function() {//NBtn12
$(".textbox").val($(".textbox").val() +'-Nپاسخ')
},
'ویرایش نامهم یا سایر موردها': function() {//NBtn13
$(".textbox").val($(".textbox").val() +'-Nسایر')
},
'ذخیره': function() {
addScore( diffId,$(".textbox").val())
//mw.notify('ذخیره شد');
$(".textbox").val('');
if (second!=='diff'){
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
otherCase(casenum,true)// مورد پایین
}
},
'↑ مورد بالا': function() {
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
//clicked_item (mylist[casenum-1],2)
otherCase(casenum,false)// مورد بالا
},
'مورد پایین ↓': function() {
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
otherCase(casenum,true)// مورد پایین
}
};
if (second=='diff'){
newheight=150
}
$diffDialog = $('<div id="QPwindow2" style="text-align:right;">').append($diffContent1).append($diffContent).dialog({
width: newwidth,
height: newheight,
draggable: false,
resizable: true,
resizeStop: function(event, ui) {
newheight = $(this).outerHeight()
},
buttons: buttons
});
$diffDialog.dialog('widget').css({
position: 'fixed',
bottom: '0',
top: 'auto'
});
$(":button:contains('↑ مورد بالا')").before(textBox);
$(":button:contains('مورد پایین ↓')").after(labelBox);
$(":button:contains('ویرایش درست است')").before('<br>');
$(":button:contains('ذخیره')").before('<br>');
var revertBtn = $(":button:contains('واگردانی میکنم:')").prop('title', 'ویرایش مشکل دارد اگر من بودم آن را حذف یا واگردانی یا خنثی میکردم یا درخواست حذف میدادم').prop('class', 'revertBtn').css('color', 'red');
var RBtn01 = $(":button:contains('افزودن متن نامناسب')").prop('title', 'افزودن متنی که تقریباً گرامرش درست است ولی مفهومش مناسب نیست یا جانبدارانه است یا منبع ضعیف دارد یا مفهوم مقاله را با مشکل مواجه میکند').prop('class', 'RBtn01');
var RBtn02 = $(":button:contains('تبلیغ')").prop('title', 'تبلیغ، اسپمینگ پیوند اینترنتی، شماره تلفن شخصی و…').prop('class', 'RBtn02');
var RBtn03 = $(":button:contains('کپیکاری')").prop('title', 'کپیکاری با منبع یا بدون منبع (منبع معتبر یا نامعتبر)').prop('class', 'RBtn03');
var RBtn04 = $(":button:contains('عبارت نامفهوم')").prop('title', 'عبارت نامفهوم، چرندیات، ایموجی و…').prop('class', 'RBtn04');
var RBtn05 = $(":button:contains('فحاشی، توهین')").prop('title', 'فحاشی، توهین یا افشای اطلاعات شخصی').prop('class', 'RBtn05');
var RBtn06 = $(":button:contains('ایجاد مقاله واجد حذف')").prop('title', 'ایجاد مقاله نامناسب که درخواست حذف میدهم (حذف سریع یا زماندار)').prop('class', 'RBtn06');
var RBtn07 = $(":button:contains('خرابکردن سینتکس ویکی')").prop('title', 'خراب کردن نحوهٔ نمایش مقاله از نظر سینتکس ویکی (خراب کردن سینتکس ویکی) یا خرابکاری در پیوند داخلی').prop('class', 'RBtn07');
var RBtn08 = $(":button:contains('دستکاری اعداد و آمار، پیوند')").prop('title', 'دستکاری آمار و اعداد یا پیوندهای داخلی به نحوی که جانبدارانه باشد یا نادرست باشد یا با منبع تطبیق نداشته باشد (خرابکاری باشد)').prop('class', 'RBtn08');
var RBtn09 = $(":button:contains('خرابکردن گرامر یا املاء')").prop('title', 'خراب کردن گرامر یا ساختار متن').prop('class', 'RBtn09');
var RBtn10 = $(":button:contains('حذف نادرست مطلب')").prop('title', 'حذف متن، تصویر، رده یا الگویی که درست است (ممکن است متن منبع داشته باشد یا منبع نداشته)').prop('class', 'RBtn10');
var RBtn11 = $(":button:contains('خرابکاری عمدی')").prop('title', 'خرابکاری عمدی صورت گرفته و کاربر حسن نیت ندارد و بهتر است با به وی هشدار داده شود یا بسته شود.').prop('class', 'RBtn11');
var RBtn12 = $(":button:contains('کاربر تحریم')").prop('title', 'کاربر تحریم یا بسته شده که باید واگردانی شود.').prop('class', 'RBtn12');
var RBtn13 = $(":button:contains('سایر دلایل')").prop('title', 'سایر موارد در بالا نیست.').prop('class', 'RBtn13');
var normalBtn = $(":button:contains('ویرایش درست است:')").prop('title', 'ویرایش مشکلی ندارد و اگر من بودم آن را رها میکردم و واگردانی یا خنثی نمیکردم.').prop('class', 'normalBtn').css('color', 'green');
var NBtn01 = $(":button:contains('افزودن یا اصلاح متن درست')").prop('title', 'افزودن یا اصلاح متن درست و مناسب یا ترجمه (با منبع یا بدون منبع)').prop('class', 'NBtn01');
var NBtn02 = $(":button:contains('افزودن منبع، الگو، رده و..')").prop('title', 'افزودن یادکرد یا منبع، تصویر مناسب، الگو، رده یا جدول مناسب').prop('class', 'NBtn02');
var NBtn03 = $(":button:contains('ایجاد مناسب')").prop('title', 'ایجاد مقاله مناسب').prop('class', 'NBtn03');
var NBtn04 = $(":button:contains('رفع املاء')").prop('title', 'رفع غلط املایی (زمانی که کلمه در ویرایش قبل غلط املایی داشته)').prop('class', 'NBtn04');
var NBtn05 = $(":button:contains('رفع گرامر')").prop('title', 'رفع مشکل انشایی و گرامری').prop('class', 'NBtn05');
var NBtn06 = $(":button:contains('اصلاح یا افزودن سجاوندی')").prop('title', 'اصلاح یا افزودن سجاوندی یا فاصله یا نویسههای پنهان').prop('class', 'NBtn06');
var NBtn07 = $(":button:contains('اصلاح سینتکس ویکی')").prop('title', 'اصلاح سینتکس ویکی یا ویکیسازی یا اصلاح پیوند داخلی').prop('class', 'NBtn07');
var NBtn08 = $(":button:contains('ابزار خودکار')").prop('title', 'ابزارهای خودکار (مانند ربات، جاوااسکریپت مانند ابرابزار، وپ:وخ و…)').prop('class', 'NBtn08');
var NBtn09 = $(":button:contains('حذف متن نادرست یا نامناسب')").prop('title', 'حذف متن، تصویر یا الگو یا رده نادرست یا نامناسب').prop('class', 'NBtn09');
var NBtn10 = $(":button:contains('واگردانی یا خنثی درست')").prop('title', 'واگردانی یا خنثیسازی درست بوده').prop('class', 'NBtn10');
var NBtn11 = $(":button:contains('ویرایش موثر')").prop('title', 'ویرایش به ارتقا مقاله بسیار کمک کرده و کاربر شایسته تقدیر یا نشان است. معمولا برای ویرایشهای استاندارد یا ترجمههای خوب و منبعدار این برچسب را میزنیم.').prop('class', 'NBtn11');
var NBtn12 = $(":button:contains('پاسخ به بحث')").prop('title', 'پاسخ به بحث، که مشکل فحاشی و تمسخر و... نداشته باشد و برای آن پاسخ کاربر تذکر نگیرد یا بسته نشود! یا انصراف از بحث و حذف متن توسط خود کاربر').prop('class', 'NBtn12');
var NBtn13 = $(":button:contains('ویرایش نامهم یا سایر موردها')").prop('title', 'سایر مواردی که در بالا نیست یا ویرایش نامهم یعنی ویرایشی که بود و نبودش زیاد تفاوت مفهومی و ظاهری برای متن و ویکیپدیا ندارد و از کنارش میگذریم!').prop('class', 'NBtn13');
var SaveBtn10 = $(":button:contains('ذخیره')").prop('title', 'ذخیره موارد انتخاب شده').prop('class', 'SaveBtn10');
nextBtn = $(":button:contains('مورد پایین ↓')").prop('title', '(کلید ↓) مورد پایین').prop('class', 'nextBtn');
beforeBtn = $(":button:contains('↑ مورد بالا')").prop('title', 'مورد بالا (کلید ↑)').prop('class', 'beforeBtn');
$(".RBtn01").hide()
$(".RBtn02").hide()
$(".RBtn03").hide()
$(".RBtn04").hide()
$(".RBtn05").hide()
$(".RBtn06").hide()
$(".RBtn07").hide()
$(".RBtn08").hide()
$(".RBtn09").hide()
$(".RBtn10").hide()
$(".RBtn11").hide()
$(".RBtn12").hide()
$(".RBtn13").hide()
$(".NBtn01").hide()
$(".NBtn02").hide()
$(".NBtn03").hide()
$(".NBtn04").hide()
$(".NBtn05").hide()
$(".NBtn06").hide()
$(".NBtn07").hide()
$(".NBtn08").hide()
$(".NBtn09").hide()
$(".NBtn10").hide()
$(".NBtn11").hide()
$(".NBtn12").hide()
$(".NBtn13").hide()
if (second=='diff'){
diffId = mytarget.match(/[&?]diff=([^&]+)/);
if (diffId[1]!=='prev'){
diffId=mytarget.match(/[&?]diff=(\d+)/)[1];
}else{
diffId=mytarget.match(/[&?]oldid=(\d+)/)[1]
}
nextBtn.hide()
beforeBtn.hide()
$diffDialog.dialog('isOpen') || $diffDialog.dialog('open').dialog('widget').css({
'top': 'auto'
}).css('float', 'left');
}
var self = mytarget,
diffHref = $(mytarget).find('a[href*=oldid]')
.filter(function() {
return !$(mytarget)
.hasClass('WLM-icon'); // WLM collision fix
})
.prop('href'),
unpatrolled = $(mytarget).find('.unpatrolled').length;
diffTitle = $(mytarget).find('.mw-changeslist-title').text();
var historys=false
if (!diffHref){
var casenum = find_loc(mytarget)
$diffDialog.dialog('close')
otherCase(casenum,true)// مورد پایین
mw.notify('موردی را که انتخاب کردید تفاوت ویرایشی ندارد! مورد بعدی بررسی میشود.');
}
if (!diffTitle){
diffTitle=decodeURIComponent(diffHref.match(/title\=([^&\=]+)/g)[0].replace('title=', '') )
var historys=true
}
//alert(diffHref)
var param = {
action: 'query',
prop: 'revisions',
titles: diffTitle,
rvlimit: 50,
rvprop: 'user|comment'
};
var api = new mw.Api();
api.get(param).done(function(res1) {
if (res1 === null) {
$diffContent.html('در زمان دریافت اطلاعات خطایی رخ داد. دوباره تلاش کنید!');
return false;
}
if ($(mytarget).find('.mw-changeslist-line-inner').text().match(/ (.*?) بحث مشارکتها /g)) {
username = $(mytarget).find('.mw-changeslist-line-inner').text().match(/ (.*?) بحث مشارکتها /g)[0].replace('بحث', '').replace('مشارکتها', '').trim();
username = username.replace('/\u200F/g', '').replace('\u200F', '')
}else{
if ($(mytarget).find('.mw-changeslist-line-inner').text().match(/ (.*?) بحث /g)) {// It is IP
username = $(mytarget).find('.mw-changeslist-line-inner').text().match(/ (.*?) بحث /g)[0].replace('بحث', '').trim();
}else{
username='' // It is in history
}
}
if (username.split(' ').length>1){
username=username.split(' ')[1]
}
if (username.split(' ').length>1){
username=username.split(' ')[1]
}
username=username.replace('بحث', '').replace('مشارکتها', '').trim()
//alert (username)
if (self == lastRequset) {
return;
}
$diffContent.html($.createSpinner());
var param = {
action: 'query',
prop: 'revisions',
};
var isWikidata = false;
//alert(diffHref)
if (diffHref) {
if (historys) {
//alert($(mytarget).prop('outerHTML'))
//diffId = diffHref.match(/[&?]diff=(\d+)&oldid=(\d+)/)[2];
//diffId=mytarget.match(/[&?]diff=((\d+))/)[1];
diffId=diffHref.match(/[&?]oldid=(\d+)/)[1]
diffId2 = diffId;
}else{
//diffId = diffHref.match(/[&?]diff=(\d+)&oldid=(\d+)/)[1];
//diffId2 = diffHref.match(/[&?]diff=(\d+)&oldid=(\d+)/)[2];
diffId=diffHref.match(/[&?]diff=(\d+)/)[1];
diffId2=diffHref.match(/[&?]oldid=(\d+)/)[1]
}
isWikidata = diffHref.match(/www\.wikidata\.org/);
param.rvprop = 'timestamp|comment';
param.rvdiffto = 'prev';
param.revids = diffId;
} else {
diffId = 0;
param.rvprop = 'content|comment';
param.titles = diffTitle;
}
lastComment = res1.query.pages[Object.keys(res1.query.pages)[0]].revisions[0]["comment"];
if (lastComment === null) {
$diffContent.html('در زمان دریافت اطلاعات خطایی رخ داد. دوباره تلاش کنید!');
return false;
}
if (lastComment.match(/\[\[Special\:Contributions\/(.*?)\|/)) {
lastRevertedUser = lastComment.match(/\[\[Special\:Contributions\/(.*?)\|/)[1]
} else {
lastRevertedUser = ''
lastComment = ''
}
if (lastComment.match(/(واگردان|بازگردان|برگردان|خنثی)/g) && lastRevertedUser === username) {
lastRevert = true
} else {
lastRevert = false
}
var api = isWikidata ? new mw.ForeignApi('https://www.wikidata.org/w/api.php') : new mw.Api();
api.get(param).done(function(res) {
var backColor = ''
var s1 = true
$(self).addClass('changeslist-entry-active');
if (lastRequset) {
$(lastRequset).addClass('changeslist-entry-visited');
$(lastRequset).removeClass('changeslist-entry-active');
}
lastRequset = self;
if (res === null) {
$diffContent.html('در زمان دریافت اطلاعات خطایی رخ داد. دوباره تلاش کنید!');
return false;
}
var revision = res.query.pages[Object.keys(res.query.pages)[0]].revisions[0];
var diffString = diffHref ? revision.diff["*"] : revision['*'];
var editSummary=revision['comment']
if (diffString === null) {
$diffContent.html('در زمان دریافت اطلاعات خطایی رخ داد. دوباره تلاش کنید!');
return false;
}
var trTemp = $('<tr><td class="diff-marker"> </td><td class="diff-context"></td></tr>');
var newTable = $('<table class="diff"></table>')
.html('<colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup>');
var topTable = $('<table class="diff"></table>')
.html('<colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup>');
var p1 = '"//fa.wikipedia.org/w/index.php?title=' + diffTitle + '&diff=prev&oldid=' + diffId2 + '"'
var p2 = '"//fa.wikipedia.org/w/index.php?title=' + diffTitle + '&diff=next&oldid=' + diffId + '"'
if (!$(mytarget).find('.mw-rollback-link').text()) { // واگردانی نباشد
if (!diffHref) {
//console.log('New')
//ویرایش نو
var p1 = "'javascript: void(0)' class='disabled'"
}
} else {
//console.log('Last')
//ویرایش آخر
var p2 = "'javascript: void(0)' class='disabled'"
}
topTable.append($('<tr><td colspan="4" align="center" class="diff-context2"><a href=' + p1 + ' target="_blank">→ تفاوت ویرایش قدیمیتر</a> <a href="//fa.wikipedia.org/w/index.php?title=' + diffTitle + '&&action=history" target="_blank">[تاریخچه]</a> <a href=' + p2 + ' target="_blank">تفاوت ویرایش جدیدتر ←</a></td></tr>'));
if (lastRevert||!unpatrolled) {
var checkmarks=' ✔ '
}else{
var checkmarks=''
}
if (editSummary.replace(/\/\*(.*?)\*\//g,'').trim()){
topTable.append($('<tr><td colspan="4" align="center" class="diff-lineno"><p style="color:black"><span id="CheckMark">'+checkmarks+'</span> ویرایش شده توسط <a href="//fa.wikipedia.org/wiki/کاربر:' + username + '" target="_blank">' + username + '</a> <a href="//fa.wikipedia.org/wiki/بحث_کاربر:' + username + '" target="_blank">(بحث)</a> (خلاصه ویرایش: '+editSummary.replace(/\/\*(.*?)\*\//g,'').trim()+')</p></td></tr>'));
}else{
topTable.append($('<tr><td colspan="4" align="center" class="diff-lineno"><p style="color:black"><span id="CheckMark">'+checkmarks+'</span> ویرایش شده توسط <a href="//fa.wikipedia.org/wiki/کاربر:' + username + '" target="_blank">' + username + '</a> <a href="//fa.wikipedia.org/wiki/بحث_کاربر:' + username + '" target="_blank">(بحث)</a></p></td></tr>'));
}
if (!$(mytarget).find('.mw-rollback-link').text()) {
if (diffHref) {
if (lastRevert) {
lastRevert = false
if (!unpatrolled) {
topTable.append($('<tr><td colspan="2" class="diff-marker2"> </td><td colspan="2" align="center" class="diff-lineno"><p style="color:red;">در آخرین نسخهٔ این صفحه، ویرایشهای کاربر:' + username + ' واگردانی یا خنثیسازی شدهاست و </p><p style="color:MediumSeaGreen;">گشت هم خوردهاست</p><p style="color:red;"> در نتیجه دکمهٔ «مورد پایین» یا «مورد بالا» را بزنید!</p></td></tr>'));
backColor = '#edfbd3'
s1 = false
} else {
topTable.append($('<tr><td colspan="2" class="diff-marker2"> </td><td colspan="2" align="center" class="diff-lineno"><p style="color:red;">در آخرین نسخهٔ این صفحه، ویرایشهای کاربر:' + username + ' واگردانی یا خنثیسازی شدهاست؛ در نتیجه میتوانید این نسخه را </p><p style="color:MediumSeaGreen;">برچسب گشت بزنید!</p></td></tr>'));
backColor = '#edfbd3'
s1 = false
}
} else {
if (unpatrolled) {
topTable.append($('<tr><td colspan="2" class="diff-marker2"> </td><td colspan="2" align="center" class="diff-lineno"><p style="color:#3ec6d8;">این ویرایش آخرین نسخه نیست!</p></td></tr>'));
}
}
}
}
if (!unpatrolled && backColor !== '#edfbd3') {
topTable.append($('<tr><td colspan="4" align="center" class="diff-lineno"><p style="color:MediumSeaGreen;">این نسخه برچسب گشتخورده!</p></td></tr>'));
backColor = '#edfbd3' //سبز
s1 = false
} else {
if ($(mytarget).find('.mw-changeslist-line-inner').text().match(/ویرایش به وسیلهٔ ابرابزار/g)) {
topTable.append($('<tr><td colspan="2" class="diff-marker2"> </td><td colspan="2" align="center" class="diff-lineno"><p style="color:#e9b2f7;">خلاصه ویرایش: ویرایش خودکار به کمک ابرابزار</p></td></tr>'));
backColor = '#f2f6ff' //آبی کمرنگ
s1 = false
}
if ($(mytarget).find('.mw-changeslist-line-inner').text().match(/جایگزینی با اشتباهیاب:/g)) {
topTable.append($('<tr><td colspan="2" class="diff-marker2"> </td><td colspan="2" align="center" class="diff-lineno"><p style="color:#e9b2f7;">خلاصه ویرایش: ویرایش نیمه خودکار به کمک اشتباهیاب</p></td></tr>'));
}
}
if (s1) {
if ($(mytarget)[0]['outerHTML'].search(/mw\-changeslist\-damaging\-maybebad/i) > 0) {
backColor = '#fcfad1' // نارنجی کم رنگ
//console.log('O')
} else {
if ($(mytarget)[0]['outerHTML'].search(/mw\-changeslist\-damaging\-verylikelybad/i) > 0) {
backColor = '#f7afaf' // قرمز پررنگ
//console.log('R')
} else {
if ($(mytarget)[0]['outerHTML'].search(/mw\-changeslist\-damaging\-likelygood/i) > 0) {
backColor = '#f2f2f2' // سفید
//console.log('W1')
}
}
}
}
if (backColor == '#fcfad1') {
topTable.append($('<tr><td colspan="4" align="center" class="diff-lineno"><p style="color:red">این ویرایش توسط سامانه ORES (سامانه ارزشیابی ویرایش) به عنوان «مشکوک به خرابکاری» شناخته شدهاست</p></td></tr>'));
}
if (backColor == '#f7afaf') {
topTable.append($('<tr><td colspan="4" align="center" class="diff-lineno"><p style="color:#b70c0c">این ویرایش توسط سامانه ORES (سامانه ارزشیابی ویرایش) به عنوان به «خرابکاری» شناخته شدهاست</p></td></tr>'));
}
if (!diffHref) {
newTable.append($('<tr><td colspan="4" class="diff-lineno">صفحهٔ جدید</td></tr>'));
var rows = diffString.split('\n');
for (var tr in rows) {
var curTr = trTemp.clone();
curTr.find('.diff-context').first().text(rows[tr]);
newTable.append(curTr);
}
} else {
newTable.append(diffString);
}
$diffDialog.dialog('option', 'title', '<i><a href="//fa.wikipedia.org/wiki/' + diffTitle + '" target="_blank">' + diffTitle + '</a></i>');
$diffContent1.html(topTable);
$diffContent.html(newTable);
if (!backColor) {
backColor = '#f2f2f2' //سفید
console.log('W2')
}
$diffDialog.css({
'background-color': backColor
})
$diffDialog.dialog('isOpen') || $diffDialog.dialog('open').dialog('widget').css({
//'height': newheight,
'top': 'auto'
}).css('float', 'left');
backColor = ''
})
});
};
}
mw.hook('wikipage.content').add(qRcDiffHandler);
})();
});
});