Usuário(a):PauloHenrique/common.js
Aspeto
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.
mw.loader.using('mediawiki.api', function() {( function ( $, mw ) {
'use strict';
var api = new mw.Api(),
page = mw.config.get( 'wgPageName' ).substring (32),
ape = {},
months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ],
date = new Date(),
withScript = ', arquivada com [[Usuário:Chicocvenancio/arquivarPEs|um script]]';
ape.getWikiText = function (title, ok, err) {
api.get( {
prop: 'revisions',
rvprop: 'content',
rvlimit: 1,
indexpageids: true,
titles: title
}, {
ok: function ( data ) {
var q = data.query,
id = q && q.pageids && q.pageids[0],
pg = id && q.pages && q.pages[ id ],
rv = pg && pg.revisions;
if ( rv && rv[0] && rv[0]['*'] ) {
ok( rv[0]['*'] );
}
},
err: err
} );
};
ape.editPage = function (title, text, summary, ok, err) {
api.post({
action: 'edit',
title: title,
text: text,
summary: summary,
token : mw.user.tokens.get('csrfToken')
}, {
ok: ok,
err: err
} );
};
ape.startArchive = function (pfdwText) {
var notFinishedRegex = /\{\{Nomeação não concluída\|(\d*)(|\|prog=.*)\}\}/g,
matchRegex = notFinishedRegex.exec(pfdwText),
prog;
if (!matchRegex){
ape.useDialog('Problema', 'Predefinição de PE inconclusa não encontrada, por favor verifique a página da PE pela predefinição {{Nomeação não concluída|data (yyyymmdd)}}', 'nprompt-dialog');
return;
}
date.iso = matchRegex[1];
date.setFullYear(date.iso.substring(0, 4), parseInt(date.iso.substring(4, 6) - 1, 10), parseInt(date.iso.substring(6, 8), 10));
if (matchRegex[2]){
date.setDate(date.getDate() + 7);
}
switch (ape.result) {
case 'Inconclusivo/':
ape.useDialog('Em progresso', 'Mudando predefinição em PE', 'nprompt-dialog');
ape.editPage('Wikipédia:Páginas para eliminar/' + page, pfdwText.replace(notFinishedRegex, '{{Nomeação concluída|~~' + '~~' + '~|Inconclusiva}}'), 'Fechando PE' + withScript, function (){ape.removeTemplate();}, ape.ajaxErr);
ape.result = 'Arquivo de mantidas/';
ape.inconclusive = 1;
break;
case 'Arquivo de eliminadas/':
ape.useDialog('Em progresso', 'Mudando predefinição em PE', 'nprompt-dialog');
ape.editPage('Wikipédia:Páginas para eliminar/' + page, pfdwText.replace(notFinishedRegex, '{{Nomeação concluída|~~' + '~~' + '~|Eliminada$2}}'), 'Fechando PE' + withScript, function (){ape.deletePage();}, ape.ajaxErr);
break;
case 'Arquivo de mantidas/':
ape.useDialog('Em progresso', 'Mudando predefinição em PE', 'nprompt-dialog');
ape.editPage('Wikipédia:Páginas para eliminar/' + page, pfdwText.replace(notFinishedRegex, '{{Nomeação concluída|~~' + '~~' + '~|Mantida}}'), 'Fechando PE' + withScript, function (){ape.removeTemplate();}, ape.ajaxErr);
break;
case 'Prorrogar/':
ape.useDialog('Em progresso', 'Prorrogando a página', 'nprompt-dialog');
if (matchRegex[2]) {
ape.useDialog('Erro!', 'Esta PE já está prorrogada.', 'nprompt-dialog');
return;
}
prog = matchRegex[0].replace(/\}\}/, '|prog=1|~~' + '~~}}');
ape.editPage('Wikipédia:Páginas para eliminar/' + page, pfdwText.replace(notFinishedRegex, prog), 'Prorrogando PE' + withScript, function (){ape.useDialog('Sucesso', 'PE Prorrogada', 'nprompt-dialog');}, ape.ajaxErr);
break;
}
};
ape.addArchiveLink = function (element) {
var archivePFD;
archivePFD = $('<a href="#" class="sysop-show eliminator-show"> Arquivar </a>').click(function (e) {
e.preventDefault();
ape.nicePrompt('Que tipo de arquivamento deseja fazer?',
function(result) {
ape.result = result;
ape.useDialog('Em progresso', 'Buscando wikitexto da PE', 'nprompt-dialog');
ape.getWikiText ('Wikipédia:Páginas para eliminar/' + page, ape.startArchive, ape.ajaxErr);
}
);
});
$($(element).children()[1]).before($(archivePFD)).before('| ');
};
ape.archivePage = function () {
ape.day = date.getDate();
ape.fullArchivePage = 'Wikipédia:Páginas para eliminar/' + ape.result + months[date.getMonth()] + ' ' + date.getFullYear();
ape.useDialog('Em progresso', 'Arquivando página', 'nprompt-dialog');
api.post({
action : 'edit',
minor : false,
title : ape.fullArchivePage,
appendtext : '\n*{{PE/link2|' + page.replace(/_/g, ' ') + '}}',
section : ape.day,
summary : 'arquivando ' + '[[' + page + ']]' + withScript,
token : mw.user.tokens.get('csrfToken')
},{
ok : ape.backlinks
,
err : ape.ajaxErr
});
};
ape.backlinks = function () {
if (ape.result === 'Arquivo de eliminadas/') {
ape.useDialog('Em progresso', 'Procurando afluentes', 'nprompt-dialog');
api.get({
action: 'query',
list: 'backlinks',
bltitle: page,
blnamespace: '0|8|10|12|14|100|102',
bllimit: '80',
blredirect: '1'
}).done(ape.embedded).fail(ape.backlinksFail);
} else {
ape.success();
}
};
ape.embedded = function (result) {
var numberOfBl = result.query.backlinks.length,
i;
for (i = 0; i < result.query.backlinks.length; i += 1){
if (result.query.backlinks[i].redirlink) {
numberOfBl += result.query.backlinks[i].redirlink.length;
}
}
ape.numberOfBl = numberOfBl;
api.get({
action: 'query',
list: 'embeddedin',
eititle: page,
einamespace: '0|8|10|12|14|100|102',
eilimit: '80'
}).done(ape.success).fail(ape.backlinksFail);
};
ape.backlinksFail = function (code, result) {
ape.useDialog('Quase sucesso', 'Houve um erro ao verficar afluentes do artigo, por favor faça manualmente.<br /> Sucesso em arquivar! (<a href="' + mw.util.getUrl(ape.fullArchivePage) +
'#' + ape.day +'_de_' + mw.config.get( 'wgMonthNames')[date.getMonth() + 1] + '">Abrir</a>) <a href="' +
mw.util.getUrl(ape.fullArchivePage) + '?diff=0">(diff)</a>' + '<br /> Verifique as suas ações.', 'nprompt-dialog');
};
ape.success = function (result) {
var embeddedin,
i;
if (result){
embeddedin = result.query.embeddedin.length;
for (i = 0; i < result.query.embeddedin.length; i += 1){
if (result.query.embeddedin[i].redirlink) {
embeddedin += result.query.embeddedin[i].redirlink.length;
}
}
ape.numberOfBl += embeddedin;
if (ape.numberOfBl >= 80) {
ape.numberOfBl = '80 ou mais afluentes';
}
}
ape.useDialog('Sucesso', 'Sucesso em arquivar! (<a href="' + mw.util.getUrl(ape.fullArchivePage) + //mensagem de sucesso
'#' + ape.day +'_de_' + mw.config.get( 'wgMonthNames')[date.getMonth()] + '">Abrir</a>) <a href="' +
mw.util.getUrl(ape.fullArchivePage) + '?diff=0">(diff)</a>' + (ape.result === 'Arquivo de eliminadas/' ? '<br />' +
(ape.numberOfBl === 0 ? 'Não há afluentes para esse artigo' : 'Há ' + ape.numberOfBl + ' <a href="' + mw.util.getUrl( 'Especial:Páginas afluentes/' + page ) +
'" >afluentes</a> para esse artigo') : '') + '<br /> Verifique as suas ações.', 'nprompt-dialog');
};
ape.ajaxErr = function (code, result) {
ape.useDialog('Erro!!', 'Houve um erro ao requisitar a edição da página. Código: "' + code + '". ' + result.error.info, 'nprompt-dialog');
};
ape.talkPageErr = function (code, result) {
if (code === 'missingtitle') {
ape.archivePage();
} else {
ape.ajaxErr (code, result);
}
};
ape.deleteTalkPage = function () {
var title,
collon = page.indexOf(':');
ape.useDialog('Em progresso', 'Eliminando a página de discussão ' + page, 'nprompt-dialog');
if (collon === -1) {
title = 'Discussão:' + page;
} else {
title = page.substring(0, collon) + ' Discussão' + page.substring (collon);
}
api.post({
action : 'delete',
title : title,
reason: 'PD de páina eliminada por [[Wikipédia:Páginas para eliminar/' + page +'|PE]]' + withScript,
token : mw.user.tokens.get('csrfToken')
},{
ok : ape.archivePage,
err : ape.talkPageErr
});
};
ape.deletePage = function () {
ape.useDialog('Em progresso', 'Eliminando a página ' + page, 'nprompt-dialog');
api.post({
action : 'delete',
title : page,
reason: 'Decidido em [[Wikipédia:Páginas para eliminar/' + page +'|PE]]' + withScript,
token : mw.user.tokens.get('csrfToken')
},{
ok : ape.deleteTalkPage,
err : ape.ajaxErr
});
};
ape.removeTemplate = function () {
ape.useDialog('Em progresso', 'Retirando {{apagar2}} da página ' + page, 'nprompt-dialog');
ape.getWikiText( page, function (wtext) {ape.editPage( page, wtext.replace( /\{\{apagar2\|\d* de \w*\}\}\n/g, ''), 'Retirando {{apagar2}}' + withScript, ape.addOldPfdTemplate, ape.ajaxErr);}, ape.ajaxErr);
};
ape.addOldPfdTemplate = function () {
var title,
collon = page.indexOf(':');
ape.useDialog('Em progresso', 'Adicionando {{antigaPE}} na página de discussão' , 'nprompt-dialog');
if (collon === -1) {
title = 'Discussão:' + page;
} else {
title = page.substring(0, collon) + ' Discussão' + page.substring (collon);
}
api.post ( {
action: 'edit',
title : title,
prependtext : ape.inconclusive ? '{{antigaPE|resultado=inconclusivo}}\n\n' : '{{antigaPE}}\n\n',
summary : 'Adicionando predefinição de antigaPE' + withScript,
token : mw.user.tokens.get('csrfToken')},
{ ok : ape.archivePage,
err: ape.ajaxErr
});
};
ape.nicePrompt = function (title, callback) {
$('<div id="nprompt-dialog" class="ui-widget"><input type="radio" name="nprompt-input-radio" value="Inconclusivo/" /> Inconclusiva <br /><input type="radio" name="nprompt-input-radio" value="Arquivo de mantidas/" />Mantida <br /><input type="radio" name="nprompt-input-radio" value="Arquivo de eliminadas/" />Eliminar<br /><input type="radio" name="nprompt-input-radio" value="Prorrogar/" />Prorrogar </div>').dialog({
title: title,
open: function () {
$(".ui-dialog-titlebar-close").hide();
},
close: function () {
$('#nprompt-dialog').dialog('destroy');
$('#nprompt-dialog').remove();
},
buttons: {
"OK": function () {
callback($('input[name=nprompt-input-radio]:checked').val());
},
Cancelar: function() {
ape.useDialog('Ah!', 'Você cancelou!', 'nprompt-dialog');
}
}
});
};
ape.useDialog = function (title, message, id) {
$('#' + id).empty();
$('#' + id).dialog("option", "title", title);
$('#' + id).append($('<div>' + message + '</div>'));
$('#' + id).dialog("option", "buttons", { "Fechar": function() {
$(this).dialog("close");
} } );
};
ape.addArchiveLink($('.PEferramentas').last());
}( jQuery, mediaWiki ) );});