বিষয়বস্তুতে চলুন
🎉 বইপিডিয়ার ১ বছর পূর্তি! · আমাদের ফেসবুক পেজ অনুসরণ করুন.

ব্যবহারকারী:ARI/common.js

বইপিডিয়া থেকে

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

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
  • অপেরা: Ctrl-F5 টিপুন।
mw.loader.using(['mediawiki.api'], function () {

	if (mw.config.get('wgCanonicalSpecialPageName') !== 'Contributions') return;

	const api = new mw.Api();
	const username = mw.util.getParamValue('user');
	if (!username) return;

	const btn = $('<button>')
		.text('Rollback all visible edits')
		.css({
			marginLeft: '10px',
			padding: '4px 8px',
			fontSize: '90%'
		})
		.on('click', async function () {

			if (!confirm('Rollback all visible top edits by "' + username + '" ?')) return;

			let rolled = 0;

			try {
				const data = await api.get({
					action: 'query',
					list: 'usercontribs',
					ucuser: username,
					uclimit: 100,
					ucprop: 'title|flags'
				});

				for (const edit of data.query.usercontribs) {
					if (!edit.top) continue;

					await api.postWithToken('csrf', {
						action: 'rollback',
						title: edit.title,
						user: username,
						summary: 'Rollback spam edits'
					});

					rolled++;
					await new Promise(r => setTimeout(r, 1200)); // VERY important
				}

				alert('Rollback finished. Reverted: ' + rolled + ' edits.');
			} catch (e) {
				console.error(e);
				alert('Stopped due to an error. Check console.');
			}
		});

	$('#firstHeading').append(btn);
});