ব্যবহারকারী:ZI Jony/Abuse filter helper.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
// <nowiki>
$(function() {
	var abuselog_id;

	if ((abuselog_id = mw.config.get('wgPageName').match(/^বিশেষ:অপব্যবহার_লগ\/([0-9]+)$/)) !== null) {
		mw.loader.using( 'mediawiki.util', function() {
			var af_vars = mw.config.get('wgAbuseFilterVariables');

			if (!af_vars || !af_vars.page_prefixedtitle)
				return;

			var link = mw.config.get('wgScript') + "?title=" + mw.util.wikiUrlencode(af_vars.page_prefixedtitle)
						+ "&action=submit&effp_aflid=" + abuselog_id[1];

			mw.util.addPortletLink('p-cactions', link , 'সম্পাদনা করুন', 'ca-makeedit', 'Perform edit on behalf of user');
		});
	}
	else if (mw.config.get('wgAction') == "submit" && (abuselog_id = window.location.href.match(/&effp_aflid=([0-9]+)/)) !== null) {
		mw.loader.using( [ 'mediawiki.api'], function() {
			mw.notify("Fetching data from filter log...");

			var api = new mw.Api();
			api.get( {
				action: 'query',
				prop: 'revisions',
				pageids: mw.config.get('wgArticleId'),
				rvprop: "ids|timestamp|user",
				rvlimit: 50,
				list: 'abuselog',
				afllogid: abuselog_id[1],
				aflprop: 'ids|user|timestamp|details'
			}).done(preload_edit) .fail(function() {
				mw.notify("Failed to copy data from filter log" );
			});
		});
	}
	
	function preload_edit(api_response) {
		var cur_wikitext = $('#wpTextbox1').val();
		var page_id = mw.config.get('wgArticleId');
		var page_name = mw.config.get('wgPageName').replace(/_/g, ' ');
		
		if (!api_response.query || !api_response.query.abuselog[0] || !api_response.query.abuselog[0].details) {
			mw.notify("Incomplete response from API");
			
			return;
		}
		
		var le = api_response.query.abuselog[0];
		var le_page_id = le.details.page_id;
		var le_page_name = le.details.page_prefixedtitle;

		cur_wikitext = cur_wikitext.replace(/\n$/, '');

		// Sanity check
		if (le_page_id !== '0' && le_page_id != page_id) {
			mw.notify("Log entry is from page id " + le_page_id + " but this page has id " + page_id);

			return;
		}

		if (le_page_name != page_name) {
			mw.notify("Log entry is from page name \"" + le_page_name + "\" but this page has name \"" + page_name + "\"");

			return;
		}

		if (le.details.new_wikitext === cur_wikitext) {
			mw.notify("Edit already made. Nothing to do here.");

			return;
		}

		if (le.details.old_wikitext !== cur_wikitext) {
			var i, rv = api_response.query.pages[page_id].revisions;
			var only_me = true;
			
			if (le_page_id === '0') {
				mw.notify("Page already created and has different content. Not done");
				
				return;
			}

			for(i = 0; i < rv.length; i++) {
				if (rv[i].timestamp < le.timestamp)
					break;

				if (rv[i].user != mw.config.get('wgUserName'))
					only_me = false;
			}

			if (i == rv.length) {
				mw.notify("Page has changed, and at least " + i + " edits have been made since the attempt. Not done.");

				return;
			}

			if (!only_me) 
				mw.notify("Page has changed, and " + i + " edit(s) have made been since the attempt. Merge will be attempted on save.",
						  { autoHide : false });
			else
				mw.notify("You have made " + i + " edit(s) to this page since the attempt. Your changes may be overwritten.",
						  { autoHide : false });

			var starttime = le.timestamp.replace(/[^0-9]/g, '');
			var edittime = rv[i].timestamp.replace(/[^0-9]/g, '');

			$('input[name=wpStarttime]').val(starttime);
			$('input[name=wpEdittime]').val(edittime);
			$('input[name=editRevId]').val(rv[i].revid);
		}

		var sum_begin = "[[বিশেষ:অবদান/" + le.user + "|" +
			le.user + "]] ([[ব্যবহারকারী আলাপ:" + le.user + "|আলাপ]])-এর পক্ষে সম্পাদনা করা হয়েছে, কারণ এটি একটি অপব্যবহার ছাঁকনি দ্বারা [[বিশেষ:অপব্যবহার_লগ/" + le.id +
			"|প্রত্যাখ্যাত]] করা হয়েছে";

		var sum_end = " ([[ব্যবহারকারী:ZI Jony/Abuse filter helper.js|AF helper]])";

		if (le.details.summary.length) {
			sum_begin += ". Original summary was \"";
			sum_end = "\"" + sum_end;

			var remaining = 500 - sum_begin.length - sum_end.length;

			if (le.details.summary.length > remaining)
				sum_begin += le.details.summary.substring(0, remaining - 3) + "...";
			else
				sum_begin += le.details.summary;
		}

		$('#wpTextbox1').val(le.details.new_wikitext);
		$('#wpSummary').val(sum_begin + sum_end);

		mw.notify("অপব্যবহার লগ থেকে সম্পাদনা অনুলিপি করা হয়েছে। সংরক্ষণের আগে যাচাই করুন।");
	}
});
// </nowiki>