Usuário:Chicocvenancio/teste.js
Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
/**
* Ferramentas para diffs (Reversão e avisos)
*
* Em páginas de comparação de 2 edições, inclui atalhos de reverter e avisar o usuário.
* @source: [[:en:Wikipedia:WikiProject_User_scripts/Scripts/Revert_tools]]
* @see: [[Wikipedia:Software/Scripts/Reversão e avisos]]
* @author: [[:en:User:Lorian]]
* @author: Helder (https://github.com/he7d3r)
* @license: CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/>
*/
/* jslint browser: true, white: true, devel: true */
/* global jQuery, mediaWiki, jsMsg */
( function( $, mw /*, undefined */ ) {
'use strict';
window.DiffTools = function () {
/* Private Members */
var $patrolLink, options,
that = this,
// user1 = $('#mw-diff-otitle2').find('a').first().html(),
user2 = $('#mw-diff-ntitle2').find('a').first().html(),
pageName = mw.config.get( 'wgPageName' ).replace( /_/g, ' ' );
options = {
'revert': {
'description': false,
'Opções': {
'Reverter': {
'desc': 'Reverte o artigo para a versão mostrada' +
' à esquerda',
'sum': 'Reversão de uma ou mais' +
' edições de [[Special:Contribs/$2|$2]] para a' +
' versão $3 de [[User:$1|$1]],'
},
'+comentário': {
'desc': 'Reverte o artigo para a versão mostrada' +
' à esquerda, mas permite incluir informações' +
' extras no sumário de edição',
'url': function () {
var sum = 'Reversão de uma ou mais edições de [[Special:Contribs/$2|$2]]'
+ ' para a versão $3 de [[User:$1|$1]],',
oldid = mw.util.getParamValue(
'oldid',
$( '#mw-diff-otitle1' ).find( 'a' ).first().attr( 'href' )
),
text = prompt( 'Comentário a acrescentar ao sumário da reversão:', 'inadequado' );
if ( text ) {
sum += ' (' + text + ')';
that.revert(
pageName,
oldid,
sum
);
}
}
}
}
},
'warn': {
'description': 'Usuário: ',
'Boas-vindas': {
'bv': {
'desc': 'Envia uma mensagem de boas-vindas ao novo usuário',
'subst': 'Bem-vindo',
'sum': 'Mensagem de boas-vindas a novo usuário'
},
'bv-ip': {
'desc': 'Envia uma mensagem de boas-vindas ao usuário anônimo',
'subst': 'Bem-vindo IP',
'sum': 'Mensagem de boas-vindas a usuário anônimo'
}
},
'Avisos 1': {
'av': {
'desc': 'Envia um aviso ao usuário',
'subst': 'Aviso|' + pageName,
'sum': 'Aviso'
},
'av2': {
'desc': 'Envia um segundo aviso ao usuário',
'subst': 'Aviso2|' + pageName,
'sum': 'Aviso 2'
},
'bv-av-reg': {
'desc': 'Envia uma mensagem de boas-vindas e um aviso ao usuário',
'subst': 'Bv-av-registrado|' + pageName,
'sum': 'Mensagem de boas-vindas e aviso a usuário registrado'
},
'bv-av': {
'desc': 'Envia uma mensagem de boas-vindas e um aviso ao usuário iniciante',
'subst': 'Bv-av|' + pageName,
'sum': 'Mensagem de boas-vindas e aviso a iniciante'
}
},
'Avisos 2': {
'propaganda': {
'desc': 'Envia um aviso sobre propagandas ao usuário',
'subst': 'Propaganda|' + pageName,
'sum': 'Aviso sobre propaganda'
},
'mudança de grafia': {
'desc': 'Envia um aviso sobre mudança de grafia ao usuário',
'subst': 'Ortografia|' + pageName,
'sum': 'Aviso sobre ortografia'
},
'assinatura em artigo': {
'desc': 'Envia um aviso sobre assinatura em artigo ao usuário',
'subst': 'Aviso-assinatura|' + pageName,
'sum': 'Aviso sobre assinatura em artigo'
},
'cópia': {
'desc': 'Envia um aviso sobre os direitos de autor ao usuário',
'subst': 'Não copie',
'sum': 'Aviso sobre direitos de autor'
},
'data': {
'desc': 'Envia um aviso sobre datas ao usuário',
'subst': 'Av-data|' + pageName,
'sum': 'Aviso sobre datas'
},
'cite fonte': {
'desc': 'Envia um aviso sobre citar fontes ao usuário.',
'subst': 'cite fonte|' + pageName,
'sum': 'Aviso sobre citar fontes'
}
},
'Avisos de eliminação': {
'aviso-ER': {
'desc': 'Envia um aviso sobre eliminação rápida ao usuário',
'subst': 'aviso-ER|' + pageName,
'sum': 'Aviso sobre eliminação rápida'
},
'aviso-ESR': {
'desc': 'Envia um aviso sobre eliminação semirrápida ao usuário',
'subst': 'aviso-ESR|' + pageName,
'sum': 'Aviso sobre eliminação semirrápida'
},
'aviso-PE': {
'desc': 'Envia um aviso sobre eliminação por votação ao usuário',
'subst': 'aviso-PE|' + pageName,
'sum': 'Aviso sobre eliminação por votação'
},
'aviso-PE-criador': {
'desc': 'Envia um aviso sobre eliminação por votação ao usuário',
'subst': 'aviso-PE-criador|' + pageName,
'sum': 'Aviso ao criador sobre eliminação por votação'
}
},
'Avisos de remoção de marcação de eliminação': {
'av-nr': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação ao usuário',
'subst': 'Não remova|' + pageName,
'sum': 'Aviso sobre remoção da marcação de eliminação'
},
'av-nr-er': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação rápida ao usuário',
'subst': 'Não remova|' + pageName + '|er',
'sum': 'Aviso sobre remoção da marcação de eliminação rápida'
},
'av-nr-esr': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação semirrápida ao usuário',
'subst': 'Não remova|' + pageName + '|esr',
'sum': 'Aviso sobre remoção da marcação de eliminação semirrápida'
},
'av-nr-matrad': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação por problemas de tradução ao usuário',
'subst': 'Não remova|' + pageName + '|matrad',
'sum': 'Aviso sobre remoção da marcação de eliminação por problemas de tradução'
},
'av-nr-pe': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação por votação ao usuário',
'subst': 'Não remova|' + pageName + '|pe',
'sum': 'Aviso sobre remoção da marcação de eliminação por votação'
},
'av-nr-susp': {
'desc': 'Envia um aviso sobre remoção da marcação de suspeita de violação de direitos autorais ao usuário',
'subst': 'Não remova|' + pageName + '|suspeito',
'sum': 'Aviso sobre remoção da marcação de suspeita de violação de direitos autorais'
},
'av-nr-vda': {
'desc': 'Envia um aviso sobre remoção da marcação de eliminação por problemas de direitos autorais ao usuário',
'subst': 'Não remova|' + pageName + '|vda',
'sum': 'Aviso sobre remoção da marcação de eliminação por problemas de direitos autorais'
}
},
'Avisos de nível': {
'av-v1': {
'desc': 'Envia o primeiro aviso sobre vandalismo ao usuário',
'subst': 'Vandalismo|1|' + pageName,
'sum': 'Aviso sobre vandalismo'
},
'av-v2': {
'desc': 'Envia o segundo aviso sobre vandalismo ao usuário',
'subst': 'Vandalismo|2|' + pageName,
'sum': 'Segundo aviso sobre vandalismo'
},
'av-v3': {
'desc': 'Envia o terceiro aviso sobre vandalismo ao usuário',
'subst': 'Vandalismo|3|' + pageName,
'sum': 'Terceiro aviso sobre vandalismo'
},
'av-s1': {
'desc': 'Envia o primeiro aviso sobre spam ao usuário',
'subst': 'Av-Spam|1|' + pageName,
'sum': 'Aviso sobre spam'
},
'av-s2': {
'desc': 'Envia o segundo aviso sobre spam ao usuário',
'subst': 'Av-Spam|2|' + pageName,
'sum': 'Segundo aviso sobre spam'
},
'av-s3': {
'desc': 'Envia o terceiro aviso sobre spam ao usuário',
'subst': 'Av-Spam|3|' + pageName,
'sum': 'Terceiro aviso sobre spam'
},
'av-t1': {
'desc': 'Envia o primeiro aviso sobre testes ao usuário',
'subst': 'Av-teste|1|' + pageName,
'sum': 'Aviso sobre testes'
},
'av-t2': {
'desc': 'Envia o segundo aviso sobre testes ao usuário',
'subst': 'Av-teste|2|' + pageName,
'sum': 'Segundo aviso sobre testes'
},
'av-t3': {
'desc': 'Envia o terceiro aviso sobre testes ao usuário',
'subst': 'Av-teste|3|' + pageName,
'sum': 'Terceiro aviso sobre testes'
},
'av-r1': {
'desc': 'Envia o primeiro aviso sobre remoção de conteúdos ao usuário',
'subst': 'Av-Remoção|1|' + pageName,
'sum': 'Aviso sobre remoção de conteúdos'
},
'av-r2': {
'desc': 'Envia o segundo aviso sobre remoção de conteúdos ao usuário',
'subst': 'Av-Remoção|2|' + pageName,
'sum': 'Segundo aviso sobre remoção de conteúdos'
},
'av-r3': {
'desc': 'Envia o terceiro aviso sobre remoção de conteúdos ao usuário',
'subst': 'Av-Remoção|3|' + pageName,
'sum': 'Terceiro aviso sobre remoção de conteúdos'
}
}
}
};
/* Public Methods */
// Description: Makes patrollinks for edits or new pages excecute without
// an additional page load. Including self-closing bookmarklet option.
// Author: [[meta:User:Krinkle]]
// Version: 0.15
// Information: meta.wikimedia.org/wiki/User:Krinkle/Scripts/AjaxPatrolLinks
// Stats: [[File:Krinkle_AjaxPatrolLinks.js]]
this.ajaxPatrolLinks = function() {
var $patrollinks = $( '.patrollink a' );
$patrolLink = $patrollinks.first();
if ( $patrollinks.length !== 0 ) {
$patrollinks.click( function( event ) {
event.preventDefault();
var href = $( this ).attr( 'href' );
$patrollinks.text( 'Marcando como patrulhada...' );
$patrollinks = $patrollinks.parent();
/*jslint unparam: true*/
$.get(
href,
null,
function( data, status /* , request */ ) {
if ( status === 'success' ) {
// [[MediaWiki:Markedaspatrolled]]
$patrollinks.html( '<span style="color:green">Marcada como patrulhada</span>' );
} else {
// [[MediaWiki:Markedaspatrollederror]]
$patrollinks.html( '<span style="color:red">Não é possível marcar como patrulhada</span>' );
}
}
);
/*jslint unparam: false*/
});
}
};
this.revert = function ( page, oldid, summary ) {
jsMsg(
'Consultando o histórico da página "<a href="'
+ mw.util.getUrl( page ) + '">' + page.replace( /_/g, ' ' ) + '</a>"...'
);
// TODO: Patrulhar automaticamente as edições revertidas!
// [[meta:User:Krinkle/Scripts/AjaxPatrolLinks.js]]
$.ajax({
url: mw.util.wikiScript( 'api' ),
dataType: 'json',
data: {
'format': 'json',
'action': 'query',
'titles': page,
'prop': 'revisions',
'rvprop': 'user|content|ids',
'rvstartid': oldid,
'rvlimit': 1,
'indexpageids': true
},
success: function( data ) {
var rev;
if ( data.error !== undefined ) {
alert( 'Erro da API: ' + data.error.code + '. ' + data.error.info );
} else if ( data.query && data.query.pages && data.query.pageids ) {
rev = data.query.pages[ data.query.pageids[ 0 ] ];
if ( rev.missing === '' ) {
jsMsg(
'A página "<a href="' +
mw.util.getUrl( page ) + '">' + page + '</a> não existe!'
);
} else {
rev = rev.revisions[ 0 ];
that.editPage(
page,
rev[ '*' ],
summary.replace( /\$1/g, rev.user )
.replace( /\$2/g, user2 )
.replace( /\$3/g, rev.revid )
);
$patrolLink.click();
}
} else {
alert( 'Houve um erro inesperado ao usar a API do MediaWiki.' );
}
},
error: function() {
alert( 'Houve um erro ao usar AJAX para consultar o conteúdo da página.' );
}
});
};
this.editPage = function( page, text, summary, section ) {
jsMsg(
'Preparando a edição da página "' + page.replace( /_/g, ' ' ) + '"...'
);
var data = {
format: 'json',
action: 'edit',
minor: true,
title: page,
text: text,
summary: summary,
token: mw.user.tokens.get( 'editToken' )
};
if (section === 'new') {
data.appendtext = '\n\n' + text;
data.text = '';
}
$.ajax({
url: mw.util.wikiScript( 'api' ),
type: 'POST',
dataType: 'json',
data: data,
success: function( data ) {
if ( data && data.edit && data.edit.result && data.edit.result === 'Success' ) {
jsMsg(
'A página "' + page.replace( /_/g, ' ' ) + '" <a href="'
+ mw.util.getUrl( page ) + '?diff=0">foi editada</a> (<a href="'
+ mw.util.getUrl( page ) + '">abrir</a>).'
);
} else {
alert( 'Houve um erro ao requisitar a edição da página.' );
}
},
error: function() {
alert( 'Houve um erro ao usar AJAX para editar a página.' );
}
});
};
this.getLink = function ( text, data, action ) {
var $link = $( '<a href="#" title="' + data.desc + '">' + text + '</a>' );
if ( typeof data.url === 'string' ) {
$link.attr( 'href', data.url );
} else {
$link.click( function( event ) {
event.preventDefault(); // avoid jumping to the top (href=#)
if ( $.isFunction( data.url ) ) {
data.url();
} else if ( action === 'revert') {
that.revert(
mw.config.get( 'wgPageName' ),
mw.util.getParamValue(
'oldid',
$( '#mw-diff-otitle1' ).find( 'a' ).first().attr( 'href' )
),
data.sum + ' com [[WP:RA|Reversão e avisos]].'
);
} else if ( action === 'warn' ) {
// edit user talk
that.editPage(
mw.config.get( 'wgFormattedNamespaces' )[ 3 ] + ':' + user2,
'{' + '{subst:' + data.subst + '}} ~~' + '~~',
data.sum + ' com [[WP:RA|Reversão e avisos]].', // = section title
'new'
);
}
} );
}
return $link;
};
/**
* Inserts additional tools on diff pages
*/
this.addOptions = function () {
var $html = $( '<span id="diff-tools"></span>' ),
$ulSections = $( '<ul></ul>' );
$.each( options, function( section, list ) {
var $liSection = $( '<li class="diff-tools-section"></li>' ),
$ulSubSections = $( '<ul></ul>' );
$.each( list, function( subsection, sublist ) {
var $ulItems = $( '<ul></ul>' ),
$liSubSection = $( '<li class="diff-tools-subsection"></li>' );
if ( subsection === 'description' ) {
$liSection.prepend( sublist || '' );
} else {
$.each( sublist, function( text, data ) {
var $item = $( '<li></li>' );
$item.append( that.getLink( text, data, section ) );
$ulItems.append( $item );
} );
$liSubSection.append( $ulItems );
$ulSubSections.append( $liSubSection );
}
} );
$liSection.append( $ulSubSections );
$ulSections.append( $liSection );
} );
$html.append( $ulSections );
$( '#contentSub' ).prepend( $html );
};
/**
* Prepare and execute the tools
*/
this.run = function () {
if ( mw.config.get( 'wgNamespaceNumber' ) !== -1 && !!mw.util.getParamValue( 'diff' ) ) {
that.addOptions();
that.ajaxPatrolLinks();
}
};
};
// Executes the script when page is ready
$( new window.DiffTools().run );
}( jQuery, mediaWiki ) );
// [[Categoria:!Código-fonte de scripts|Reversão e avisos]]
// [[en:Wikipedia:WikiProject User scripts/Scripts/Revert tools]]