Участник:Alex NB IT/common.js: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
мНет описания правки
мНет описания правки
Строка 102: Строка 102:
if(reason===null||reason==='')return;
if(reason===null||reason==='')return;
var template=reason==='ds'?'\{\{subst:ds\}\}\r\n':'\{\{db-'+reason+(reason==='repost'?('|[['+prompt('Обсуждение:')+']]'):'')+(reason==='fork'?('|'+prompt('Источник:')):'')+(reason==='copyvio'?('|url='+prompt('Источник:')):'')+'\}\}\r\n';
var template=reason==='ds'?'\{\{subst:ds\}\}\r\n':'\{\{db-'+reason+(reason==='repost'?('|[['+prompt('Обсуждение:')+']]'):'')+(reason==='fork'?('|'+prompt('Источник:')):'')+(reason==='copyvio'?('|url='+prompt('Источник:')):'')+'\}\}\r\n';
$.post('/w/api.php',{action:'edit',format:'json',title:mw.config.get('wgPageName'),prependtext:template,summary:'к '+(reason==='ds'?'отсроченному ':'')+'[[ВП:КБУ|быстрому удалению]]',nocreate:true,token:mw.user.tokens.get('csrfToken')},function(data){$.post('/w/api.php',{action:'review',revid:data.edit.newrevid,token:mw.user.tokens.get('csrfToken')})});
$.post('/w/api.php',{action:'edit',format:'json',title:mw.config.get('wgPageName'),prependtext:template,summary:'к '+(reason==='ds'?'отсроченному ':'')+'[[ВП:КБУ|быстрому удалению]]',nocreate:true,token:mw.user.tokens.get('csrfToken')});
//$.post('/w/api.php',{action:'purge',title:mw.config.get('wgPageName')});
//$.post('/w/api.php',{action:'purge',title:mw.config.get('wgPageName')});
//window.location=mw.config.get('wgServer')+'/wiki/'+encodeURIComponent(mw.config.get('wgPageName'));
//window.location=mw.config.get('wgServer')+'/wiki/'+encodeURIComponent(mw.config.get('wgPageName'));

Версия от 08:42, 7 октября 2020

importScript('Участник:Dibot/pat.js');
var today=new Date();
month='января,февраля,марта,апреля,мая,июня,июля,августа,сентября,октября,ноября,декабря'.split(',');
var reasons = {
	'test':{
		tmpl:['\{\{подст:Тест|','\}\} — \~\~\~\~'],
		sum:['/* Для тренировки используйте, пожалуйста, «песочницу» */ новая тема']},
	'vand':{
		tmpl:['== Предупреждение от \{\{подст:сегодня\}\}: вандализм ==\r\n\{\{вандализм\}\} \~\~\~\~'],
		sum:['/* Предупреждение от ',': вандализм */ новая тема']},
	'repost':{
		tmpl:['\{\{подст:Участник:QBA-II-bot/Messages/Шаблон:deletion-no-recreation|','\}\} — \~\~\~\~'],
		sum:['/* Ваша статья «','» */ новая тема']},
	'fork':{
		tmpl:['\{\{подст:Участник:QBA-II-bot/Messages/Шаблон:deletion-fork|pg=','|origin=','\}\} — \~\~\~\~'],
		sum:['/* Ваша статья «','» */ новая тема']},
	'spam':{
		tmpl:[['\{\{подст:Спам-статья|','\}\} — \~\~\~\~'],['\{\{подст:Самореклама|','\}\} — \~\~\~\~']],
		sum:[['/* Ваша статья «','» */ новая тема'],['/* ',' */ новая тема']]},
	'copyvio':{
		tmpl:['\{\{подст:Нарушение АП|pg=','|url=','\}\} — \~\~\~\~'],
		sum:['/* Нарушение авторских прав в статье ',' */ новая тема']},
	'empty':{
		tmpl:['\{\{подст:СпасибоКоротко|','\}\} — \~\~\~\~'],
		sum:['/* Ваша статья «','» */ новая тема']},
	'foreign':{
		tmpl:[['\{\{подст:Не на русском|','\}\} — \~\~\~\~'],['\{\{подст:Машперевод|','\}\} — \~\~\~\~']],
		sum:[['/* Ваша статья ',' */ новая тема'],['/* Ваша статья ',' */ новая тема']]},
	'nn':{
		tmpl:['\{\{подст:СпасибоНезначимо|','\}\} — \~\~\~\~'],
		sum:['/* Ваша статья «','» */ новая тема']},
	'baduserpage':{
		tmpl:['\{\{подст:Нецелевая ЛС\}\} — \~\~\~\~'],
		sum:['/* Личная страница участника */ новая тема']},
	'ds':{
		tmpl:['\{\{подст:Предупреждение-слишком краткая статья|','\}\} — \~\~\~\~'],
		sum:['/* Создание слишком краткой статьи (',') */ новая тема']}
};
function warnDelete(reason)
{
	var template, sum;
	if(reason==='test')
	{
		template=reasons[reason].tmpl[0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].tmpl[1];
		sum=reasons[reason].sum[0];
	}
	if(reason==='vand')
	{
		template=reasons[reason].tmpl[0];
		sum=reasons[reason].sum[0]+today.getUTCDate()+' '+month[today.getUTCMonth()]+' '+today.getUTCFullYear()+reasons[reason].sum[1];
	}
	if(reason==='spam'||reason==='foreign')
	{
		var question;
		if(reason==='spam')question='Это самореклама?';
		else if(reason==='foreign')question='Это машинный перевод?';
		if(confirm(question))
		{
			template=reasons[reason].tmpl[1][0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].tmpl[1][1];
			sum=reasons[reason].sum[1][0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].sum[1][1];
		}
		else
		{
			template=reasons[reason].tmpl[0][0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].tmpl[0][1];
			sum=reasons[reason].sum[0][0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].sum[0][1];
		}
	}
	if(reason==='fork'||reason==='copyvio')
	{
		template=reasons[reason].tmpl[0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].tmpl[1]+prompt('Источник:')+reasons[reason].tmpl[2];
		sum=reasons[reason].sum[0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].sum[1];
	}
	if(reason==='repost'||reason==='empty'||reason==='nn'||reason==='ds')
	{
		template=reasons[reason].tmpl[0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].tmpl[1];
		sum=reasons[reason].sum[0]+mw.config.get('wgPageName').replace(/_/g, ' ')+reasons[reason].sum[1];
	}
	if(reason==='baduserpage')
	{
		template = reasons[reason].tmpl[0];
		sum = reasons[reason].sum[0];
	}
	$.getJSON('/w/api.php?action=query&format=json&prop=revisions&rvprop=user&rvlimit=1&rvdir=newer&titles='+mw.config.get('wgPageName').replace(/_/g, ' '),
	function(data)
	{
		var pageid = [];
		for(var id in data.query.pages){pageid.push(id);}
		var PageName='Обсуждение_участника:'+data.query.pages[pageid[0]].revisions[0].user;
		$.getJSON('/w/api.php?action=query&format=json&prop=revisions&rvprop=content&rvlimit=1&titles='+encodeURIComponent(PageName),
		function(data)
		{
			for(var pageid in data.query.pages)
			{
				$.post('/w/api.php',{action:'edit',title:PageName,text:(pageid==='-1'?'':(data.query.pages[pageid].revisions[0]['*']+'\r\n\r\n'))+template,summary:sum,token:mw.user.tokens.get('csrfToken')});
			}
		});
	});
}
function db(reason)
{
	if(reason===undefined||reason===null||reason==='')reason=prompt('Причина:','');
	if(reason===null||reason==='')return;
	var template=reason==='ds'?'\{\{subst:ds\}\}\r\n':'\{\{db-'+reason+(reason==='repost'?('|[['+prompt('Обсуждение:')+']]'):'')+(reason==='fork'?('|'+prompt('Источник:')):'')+(reason==='copyvio'?('|url='+prompt('Источник:')):'')+'\}\}\r\n';
	$.post('/w/api.php',{action:'edit',format:'json',title:mw.config.get('wgPageName'),prependtext:template,summary:'к '+(reason==='ds'?'отсроченному ':'')+'[[ВП:КБУ|быстрому удалению]]',nocreate:true,token:mw.user.tokens.get('csrfToken')});
	//$.post('/w/api.php',{action:'purge',title:mw.config.get('wgPageName')});
	//window.location=mw.config.get('wgServer')+'/wiki/'+encodeURIComponent(mw.config.get('wgPageName'));
	if(reason in reasons)warnDelete(reason);
	setTimeout(function(){window.location='https://ru.wikipedia.org/wiki/Special:Contribs/Alex_NB_IT'},2000);
}
if(mw.config.get('wgNamespaceNumber')!=-1&&mw.config.get('wgNamespaceNumber')!=3)mw.loader.using('mediawiki.util').done(function(){mw.util.addPortletLink('p-cactions','javascript:db()','К быстрому удалению');$('#p-cactions').removeClass('emptyPortlet');});
var criteri = [
	['О1','nonsense'],
	['О2','test'],
	['О3','vand'],
	['О4','repost'],
	['О5','author'],
	['О6','sub'],
	['О7','move'],
	['О8','fork'],
	['О9','spam'],
	['О10','badtalk'],
	['О11','copyvio'],
	['С1','empty'],
	['С2','foreign'],
	['С3','nocontent'],
	['С5','nn'],
	['П1','redirnone'],
	['П2','redirspace'],
	['П3','redirtypo'],
	['П4','redirflect'],
	['П5','redirsense'],
	['П6','redirtalk'],
	['К1','catempty'],
	['К2','rencat'],
	['У1','owner'],
	['У2','anon'],
	['У3','nouser'],
	['У4','baduserpage'],
	['К отсроченному быстрому удалению','ds']
	];
if(mw.config.get('wgNamespaceNumber')!=-1&&mw.config.get('wgNamespaceNumber')!=3)mw.loader.using('mediawiki.util').done(function(){for(var i in criteri){mw.util.addPortletLink('p-cactions','javascript:db(\''+criteri[i][1]+'\')',criteri[i][0]+' '+criteri[i][1])}});
function notability(){$('#wpTextbox1').val('{{значимость|2019-01-08|Пожалуйста, подтвердите ссылками на [[Википедия:Авторитетные источники#Независимые вторичные источники|независимые вторичные]] [[Википедия:Авторитетные источники|авторитетные источники]] [[Википедия:Значимость|энциклопедическую значимость]] предмета статьи, в противном случае статья будет удалена по причине отсутствия доказательств энциклопедической значимости.}}\r\n' + $('#wpTextbox1').val());$('#wpSummary').val('запрос источников');}
function warning(template, sum)
{
	$.getJSON('/w/api.php?action=query&format=json&prop=revisions&rvprop=content&rvlimit=1&titles='+encodeURIComponent(mw.config.get('wgPageName').replace(/_/g, ' ')),
	function(data)
	{
		for(var pageid in data.query.pages)
		{
			$.post('/w/api.php',{action:'edit',title:mw.config.get('wgPageName'),text:(pageid==='-1'?'':(data.query.pages[pageid].revisions[0]['*']+'\r\n\r\n'))+template,summary:sum,token:mw.user.tokens.get('csrfToken')});
		}
	});
	setTimeout(function(){window.location='https://ru.wikipedia.org/wiki/Special:Contribs/Alex_NB_IT'},2000);
}
function warnTest(){var t=prompt('Название статьи:','');warning('\{\{подст:Тест'+((t===null||t==="")?'':('|'+t))+'\}\} — \~\~\~\~', '/* Для тренировки используйте, пожалуйста, «песочницу» */ новая тема');}
function warnVand(){warning('== Предупреждение от \{\{подст:сегодня\}\}: вандализм ==\r\n\{\{вандализм\}\} \~\~\~\~', '/* Предупреждение от '+today.getUTCDate()+' '+month[today.getUTCMonth()]+' '+today.getUTCFullYear()+': вандализм */ новая тема');}
function warnAdvert(){var t=prompt('Название статьи:','');warning('\{\{подст:Спам-статья'+((t===null||t==="")?'':('|'+t))+'\}\} — \~\~\~\~', '/* '+((t===null||t==="")?'Википедия не является площадкой для рекламы':('Ваша статья «'+t+'»'))+' */ новая тема');}
function warnSelfPR(){var t=prompt('Название статьи:','');warning('\{\{подст:Самореклама'+((t===null||t==="")?'':('|'+t))+'\}\} — \~\~\~\~', '/* '+((t===null||t==="")?'О саморекламе':t)+' */ новая тема');}
function warnShort(){var t=prompt('Название статьи:','');warning('\{\{подст:СпасибоКоротко'+((t===null||t==="")?'':('|'+t))+'\}\} — \~\~\~\~', '/* Ваша статья'+((t===null||t==="")?'':(' '+t))+' */ новая тема');}
function warnThanks(){var t=prompt('Название статьи:','');warning('\{\{подст:СпасибоНезначимо'+((t===null||t==="")?'':('|'+t))+'\}\} — \~\~\~\~', '/* Ваша статья'+((t===null||t==="")?'':(' «'+t+'»'))+' */ новая тема');}
function msgBadUP(){warning('\{\{подст:Нецелевая ЛС\}\} — \~\~\~\~', '/* Личная страница участника */ новая тема');}
function warnSpamName(){warning('== Предупреждение от \{\{подст:сегодня\}\}: неприемлемое имя участника: рекламное ==\r\n\{\{Рекламное имя\}\} См. [[Википедия:Рекламное название учётной записи]]. — \~\~\~\~', '/* Предупреждение от '+today.getUTCDate()+' '+month[today.getUTCMonth()]+' '+today.getUTCFullYear()+': неприемлемое имя участника: рекламное */ новая тема');}
function warnSpam(){warning('\{\{subst:spam\}\} — \~\~\~\~', '/* Википедия не является каталогом ссылок */ новая тема');}
function msgExtImg(){warning('\{\{подст:Участник:QBA-II-bot/Messages/Шаблон:warning-external-images\}\} — \~\~\~\~','/* Внешние изображения */ новая тема')}
function msgK(){warning('\{\{подст:Не Кыргызстан\}\} — \~\~\~\~', '/* «Киргизия» → «Кыргызстан» */ новая тема');}
function msgM(){warning('\{\{подст:Не Молдова\}\} — \~\~\~\~', '/* «Молдавия» → «Молдова» */ новая тема');}
function msgBel(){warning('\{\{подст:Не Беларусь\}\} — \~\~\~\~', '/* «Белоруссия» → «Беларусь» */ новая тема');}
function msgOnUkr(){warning('\{\{подст:В Украине\}\} — \~\~\~\~', '/* «на Украине» → «в Украине» */ новая тема');}
function newTopic(){var t=prompt('Тема/заголовок:','');$('#wpSummary').val('/* '+t+' */ новая тема');}
function p(n,o,t,f){n=+n;n%=100;if(n>=5&&n<=20){return f;}n%=10;if(n==1){return o;}if(n>=2&&n<=4){return t;}return f;}
function rejectOld(){var n=prompt('Число отклоняемых изменений','');var u=1;if(n>1)u=prompt('Число участников, внесших отклоняемые изменения','');$('#wpSummary').val('Отклонен'+p(n,'о','ы','ы')+' перв'+p(n,'о','ы','ы')+'е '+n+' изменени'+p(n,'е','я','й')+' (\[\[Special:Contributions/|\]\]'+(u>2?', \[\[Special:Contributions/|\]\]':'')+(u>1?' и [[Special:Contributions/|\]\]':'')+'), следовавш'+p(n,'е','и','и')+'е за версией ')}
function rejectCur(){var n=prompt('Число отклоняемых изменений','');var u=1;if(n>1)u=prompt('Число участников, внесших отклоняемые изменения','');$('#wpSummary').val('Отклонен'+p(n,'о','ы','ы')+' последн'+p(n,'е','и','и')+'е '+n+' изменени'+p(n,'е','я','й')+' (\[\[Special:Contributions/|\]\]'+(u>2?', \[\[Special:Contributions/|\]\]':'')+(u>1?' и [[Special:Contributions/|\]\]':'')+')')}
function OnUkr(){$('#wpSummary').val('грамматика ([[ВП:НаУкр]])');$('#wpMinoredit').prop('checked',true);}
function protect(){$('#wpTextbox1').textSelection('encapsulateSelection',{pre:'\{\{Внешние ссылки нежелательны\}\}',peri:'',post:''});$('#wpSummary').val('установка защиты от добавления внешних ссылок');}
function dab(){$('#wpSummary').val('[[Википедия:Толкование ссылок|замена ссылки на страницу значений на прямую ссылку]]');}
var warnings = [
	['warnTest', 'Для тренировки используйте, пожалуйста, «песочницу»'],
	['warnVand', 'Предупреждение о вандализме'],
	['warnAdvert', 'Википедия не является площадкой для рекламы'],
	['warnSelfPR', 'О саморекламе'],
	['warnShort', 'СпасибоКоротко'],
	['warnThanks', 'СпасибоНезначимо'],
	['msgBadUP', 'Нецелевая ЛС'],
	['warnSpamName', 'Неприемлемое имя участника: рекламное'],
	['warnSpam', 'Википедия не является каталогом ссылок'],
	['msgExtImg', 'Внешние изображения'],
	['msgK', '«Киргизия» → «Кыргызстан»'],
	['msgM', '«Молдавия» → «Молдова»'],
	['msgBel', '«Белоруссия» → «Беларусь»'],
	['msgOnUkr', '«на Украине» → «в Украине»']
	];
if(mw.config.get('wgNamespaceNumber')===3)mw.loader.using('mediawiki.util').done(function(){for(var i in warnings){mw.util.addPortletLink('p-cactions','javascript:'+warnings[i][0]+'()',warnings[i][1])}});
var functions = [
	['protect', 'установка защиты от добавления внешних ссылок'],
	['dab', 'замена ссылки на страницу значений на прямую ссылку'],
	['OnUkr', 'грамматика (ВП:НаУкр)'],
	['rejectCur', 'reject-cur'],
	['rejectOld', 'reject-old'],
	['newTopic', 'новая тема'],
	['notability', 'Значимость предмета статьи поставлена под сомнение']
	];
$('<br>').prependTo('#editpage-specialchars');
$('<a data-mw-charinsert-start="Неприемлемое имя участника: провокационное." data-mw-charinsert-end="" class="mw-charinsert-item" href="#">Неприемлемое имя участника: провокационное.</a>').prependTo('#editpage-specialchars');
$('<br>').prependTo('#editpage-specialchars');
$('<a data-mw-charinsert-start="Неприемлемое имя участника: рекламное." data-mw-charinsert-end="" class="mw-charinsert-item" href="#">Неприемлемое имя участника: рекламное.</a>').prependTo('#editpage-specialchars');
$('<br>').prependTo('#editpage-specialchars');
$('<a data-mw-charinsert-start="Спам-ссылки на внешние ресурсы." data-mw-charinsert-end="" class="mw-charinsert-item" href="#">Спам-ссылки на внешние ресурсы.</a>').prependTo('#editpage-specialchars');
for (var i in functions)
{
	$('<br>').prependTo('#editpage-specialchars');
	$("<a onclick=\""+functions[i][0]+"();return false\" href=\"javascript:void()\">"+functions[i][1]+"</a>").prependTo('#editpage-specialchars');
}
$(function(){var promptSum=function(){var sum=prompt('Описание изменений');if(sum===null||sum==='')return;this.href=this.href.replace("?","?summary="+encodeURIComponent('[[ВП:Откат|откат]] правок [[Special:Contribs/$2|$2]] ([[UT:$2|обс.]]) к версии $1: '+sum)+"&");};$('.mw-rollback-link>a').click(promptSum);});
mw.config.set('mw.msg.wikieditor', ' — \~\~\~\~');
mw.hook('codeEditor.configure').add(function(codeEditorSession){setTimeout(function(){codeEditorSession.$worker.call("setOptions",[{esnext:true,moz:true,devel:true,browser:true,node:true,laxcomma:true,laxbreak:true,lastsemic:true,onevar:false,passfail:false,maxerr:2000,expr:true,multistr:true,globalstrict:true}]);},2000);});