MediaWiki:Common.js

De Dicionário Brasileiro de Linguagem Jurídica
Ir para navegaçãoIr para pesquisar

Nota: Após publicar, você pode ter que limpar o "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.
  • Opera: Pressione Ctrl-F5.
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
/* Script inteligente para listar colaboradores reais de cada verbete (exclui robôs) */
$(document).ready(function() {
    var $container = $('#contribuidores-nomes');
    if ($container.length === 0) return;

    var pageName = mw.config.get('wgPageName');
    var apiUrl = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';

    $.getJSON(apiUrl, {
        action: 'query',
        prop: 'revisions',
        titles: pageName,
        rvlimit: 50,
        rvprop: 'user|flags',
        format: 'json'
    }, function(data) {
        var pages = data.query.pages;
        var pageId = Object.keys(pages)[0];
        
        if (pageId === "-1" || !pages[pageId].revisions) {
            $container.html('<span style="color:#72777d; font-style:italic;">Sem histórico de edições.</span>');
            return;
        }

        var revisions = pages[pageId].revisions;
        var uniqueUsers = [];
        // Lista negra explícita de contas de robô conhecidas
        var botNames = ['Advogado Completo@robô']; 

        revisions.forEach(function(rev) {
            var user = rev.user;
            
            // Critérios para identificar e descartar robôs
            var isBot = false;
            if (rev.bot !== undefined || // Marcado com o flag de bot da API
                user.indexOf('@robô') !== -1 || // Contas que terminam em @robô
                user.toLowerCase().indexOf('bot') !== -1 || // Usuários com "bot" no nome
                botNames.indexOf(user) !== -1) { // Nome na lista negra explícita
                isBot = true;
            }

            // Apenas adiciona se for humano e único na lista
            if (!isBot && uniqueUsers.indexOf(user) === -1) {
                uniqueUsers.push(user);
            }
        });

        if (uniqueUsers.length === 0) {
            $container.html('<span style="color:#72777d; font-style:italic;">Verbete simplificado e atualizado exclusivamente por Robôs.</span>');
            return;
        }

        $container.empty();
        uniqueUsers.forEach(function(user) {
            var userUrl = mw.config.get('wgArticlePath').replace('$1', 'Usuário:' + encodeURIComponent(user));
            $container.append(
                $('<a>')
                    .attr('href', userUrl)
                    .attr('title', 'Ver perfil do colaborador: ' + user)
                    .css({
                        'background': '#e8f0fe',
                        'color': '#1a73e8',
                        'padding': '5px 12px',
                        'border-radius': '20px',
                        'text-decoration': 'none',
                        'font-weight': '600',
                        'border': '1px solid #d2e3fc',
                        'transition': 'all 0.2s',
                        'box-shadow': '0 1px 2px rgba(26,115,232,0.05)'
                    })
                    .text(user)
            );
        });
    });
});