Перейти до вмісту

MediaWiki:Gadget-BlockRequest.js

Матеріал з Вікіпедії — вільної енциклопедії.

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
/*
* @author Andriy.v
* for ukwiki only
*/
function install (usertype, username) {
	var message = 'Увага! Ви збираєтесь подати запит на блокування ' + usertype + ' ' + username + ' до бота. Будь ласка зверніть увагу, що запит дозволяється виключно за очевидні вандальні дії. У випадку зловживань інструментом, Вам може бути обмежено доступ до сторінки запитів';
	var title = 'Запит на блокування';
	var link = mw.util.addPortletLink('p-tb', '#', 'Запит на блокування','t-blockreq');
	$('#t-blockreq > a').css( 'color', 'red' );
		$( link ).click( function ( e ) {
			e.preventDefault();
			mainDialog(title, message, username);
	});
}
function mainDialog (text, message, target) {
	var manager = OO.ui.getWindowManager();
	return manager.openWindow( 'message', $.extend( {
		title: text,
		message: message
	}) ).closed.then( function ( data ) {
		if (data.action == 'accept')
			makeRequest(target);
	    } );
}

function checkUserRights () {
	var username = mw.config.get('wgRelevantUserName');
	var params = {
		action: 'query',
		list: 'users',
		ususers: username,
		usprop: 'rights',
		format: 'json'
	},
	api = new mw.Api();

	api.get( params ).done( function ( data ) {
		var users = data.query.users;
		var usertype = 'IP-адреси';
		if (users[0].missing == undefined) {
			if (users[0].invalid == undefined) {
				if (!users[0].rights.includes('autoconfirmed')) {
					usertype = 'користувача';
					install(usertype, username);
				}
			}
			else {
				install(usertype, username);
			}
		}
	} );
}
function makeRequest (target) {
	mw.notify('Додається запит');
	new mw.Api().edit('Користувач:VAdminBot/Запити на блокування', function(revision) {
		return {
		text: revision.content.replace('|}','|-\n| {{u|' + target + '}} || {{u|' + mw.config.get('wgUserName') + '}}\n|}'),
		summary: '[[MediaWiki:Gadget-BlockRequest.js|Script]]: додавання запиту на блокування [[user:' + target + '|' + target +']]',
		assert: 'user'
		};
	}).done( function () {
		location.replace("https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:VAdminBot/%D0%97%D0%B0%D0%BF%D0%B8%D1%82%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%BB%D0%BE%D0%BA%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F");
	});
}
$(document).ready(function () {
	var NamespaceNumber = mw.config.get( 'wgNamespaceNumber' );
	var time = new Date ();
	mw.loader.using( 'oojs', function() {
		if (( NamespaceNumber === 2 || NamespaceNumber === 3 || mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Contributions') 
		&& (mw.config.get('wgUserGroups').includes('rollback') || mw.config.get('wgUserGroups').includes('editor') || mw.config.get('wgUserGroups').includes('sysop') ) && (time.getUTCHours() > 19 || time.getUTCHours() < 7))
			checkUserRights();
	});
});