Wikipédia:Filtro de edições/Instruções

Página principal (discussão) Instruções Análise e estatísticas Bloqueios Etiquetas Arquivo Gestão: Filtro   Etiquetas

Ações

As ações (consequências) que podem ser executadas por um filtro, quando um edição (ou criação de conta, ou outra ação qualquer) o dispara, são as seguintes:

Assinalar a edição no registro de abusos
Todas as edições detectadas por um filtro são registradas em Especial:AbuseLog. Essa opção não pode ser desativada.
Disparar estas ações após emitir um aviso ao usuário
O usuário, após executar a ação detectada pelo filtro, recebe uma mensagem (editável) do sistema. O editor é alertado para a real pertinência da sua ação, de modo que possa pensar duas vezes antes de salvar em definitivo.
Disparar ações apenas se o usuário ultrapassar um limite de rapidez
O filtro irá apenas executar as demais ações selecionadas se um limite de rapidez for atingido. Pode-se especificar o número de ações a permitir o tempo dentro do qual tais ações devem ocorrer e como essas ações são agrupadas.
Os grupos são os conjuntos de editores que dividirão o limite. Ou seja, se digitar 'user', o mesmo usuário deve disparar o filtro um determinado número de vezes em um determinado período de tempo. Pode-se também combinar grupos com vírgulas para especificar todos os critérios que juntos irão estabelecer o limite desejado. Por exemplo, usando 'ip,page', o filtro X deve disparar, em Y segundos o mesmo endereço IP na mesma página, para disparar as demais ações selecionadas.
Lista completa dos grupos:
  • ip — Endereço IP.
  • user — Conta de usuário.
  • range — Bloco de endereços IP de 16 bits.
  • creationdate — Data de criação, hora do servidor.
  • editcount — Contador de edições — para distinguir usuários.
  • site — Todo o site.
  • page — Página.
Impedir o usuário de realizar a ação em questão
Ações detectadas pelo filtro serão impedidas, sendo exibida uma mensagem de alerta.
Revogar o estatuto autoconfirmado do usuário
O usuário que disparou o filtro perderá o estatuto de editor autoconfirmado e não poderá receber estatutos concedidos automaticamente entre três e sete dias. Isso pode ser revertido na página de ferramentas.
Etiquetar a edição para posterior revisão
A ação pode ser etiquetada, e a etiqueta fica visível nas Mudanças Recentes, na lista de contribuições, no histórico e em todo lugar onde a ação está registrada, ao lado do sumário. Estas tags podem ser formatadas, podendo ser coloridas para chamar a atenção, por exemplo.

Variáveis

Variável Descrição curta Descrição completa
user_editcount Contador de edições do usuário Número de edições foram feitas pelo usuário. Não inclui uso de ferramentas administrativas. Atenção: ao visualizar o log de um disparo, é exibida ao lado da variável a contagem atual, e não a da época da edição correspondente ao disparo.
user_name Nome da conta de usuário Nome da conta de usuário, sem prefixos.
user_emailconfirm Endereço de email temporal foi confirmado Quando um usuário cria uma conta, é enviado um e-mail de confirmação. Quando o usuário recém-registrado confirma o e-mail, essa informação é gravada na forma de um número, indicando a data e a hora da confirmação. Por exemplo: se o número 20060828201925 estiver armazenado na variável, isto significa que o usuário filtrado registrou-se em 28/08/2006, às 20:19:25.
user_age Idade da conta de usuário Indica há quanto tempo o usuário foi criado. Desconheço maiores detalhes.
user_groups Grupos (incluindo implícitos) nos quais o usuário se encontra Armazena em uma lista todos os grupos aos quais o usuário pertence. A variável é sempre preenchida, pelo menos, com o grupo * (ou seja, todos os usuários, sem distinção).
article_articleid Número de identificação de página Número associado de modo exclusivo a uma página do projeto e seu histórico. Após uma moção, tal número acompanhará a página movida, e estará a partir de então associado ao título novo, que contém agora o histórico original.
article_namespace Espaço nominal de página Número associado ao domínio (namespace) do projeto. Por exemplo, 1 para página de discussão de artigos e 4 para o domínio Wikipedia.
article_text Título da página Título da página sem o prefixo (domínio). Se o filtro disparou em uma edição da página User:Fulano de tal da Silva, a variável armazenará o texto "Fulano de tal da Silva".
article_prefixedtext Título completo da página (com domínio) Título da página, incluindo o prefixo.
article_restrictions_edit Nível de restrição de edição da página Se a página editada estiver protegida, a variável armazenará o nível correspondente ("autoconfirmed" ou "sysop").
article_restrictions_move Nível de restrição de movimentação da página Similar à variável article_restrictions_edit.
article_recent_contributors Últimos dez contribuidores para a página Armazena os nome de usuários ou endereços IPs dos dez últimos editores da página filtrada.
action Ação Tipo de ação foi tomada no momento do disparo do filtro. São quatro ações possíveis: edição (edit), movimentação de título (move), criação de conta de usuário (createaccount) ou eliminação (delete).
summary Editar sumário/motivo Texto presente no sumário de edição, incluindo a seção editada, se for o caso. Por exemplo: "/* História */ +iws, +cats"
minor_edit Se a edição está marcada ou não como menor (minor_edit) Armazena o número "1", em caso de edições menores.
old_wikitext Wikitexto antigo da página, antes da edição (old_wikitext) Todo o texto da página (na formatação wiki) anterior à ação.
new_wikitext Wikitexto novo da página, após a edição (new_wikitext) Todo o texto da página (na formatação wiki) a ser salvo após a ação.
edit_diff Diferença unificada das modificações feitas pela edição Variável que armazena (usando código específico) as linhas adicionadas e retiradas durante a ação.
new_size Novo tamanho de página Número de caracteres do novo texto da página após a ação, incluindo-se o código wiki.
old_size Antigo tamanho de página Número de caracteres do texto da página antes da ação, incluindo-se o código wiki.
edit_delta Alteração de tamanho na edição Número inteiro que representa a diferença entre as variáveis new_size e old_size.
added_lines Linhas adicionadas na edição Conjunto dos textos adicionados à página, incluindo-se o código wiki.
removed_lines Linhas removidas na edição Conjunto dos textos removidos da página, incluindo-se o código wiki.
all_links Todas as ligações externas no novo texto Conjunto dos links externos existentes na página após a ação. Apenas as ligações precedidas de http:// são incluídas na variável.
old_links Ligações na página, antes da edição Conjunto dos links externos existentes na página antes da ação. Apenas as ligações precedidas de http:// são incluídas na variável.
added_links Todas as ligações externas adicionadas na edição Conjunto dos links externos adicionados à página na ação. Apenas as ligações precedidas de http:// são incluídas na variável.
removed_links Todas as ligações externas removidas na edição Conjunto dos links externos retirados da página na ação. Apenas as ligações precedidas de http:// são incluídas na variável.
new_html Fonte HTML analisada da nova revisão Código HTML da página após a ação, se o filtro não impedi-la.
new_text Nova página de texto, sem qualquer formatação Armazena o texto novo sem código HTML ou código wiki.
old_html Fonte HTML analisada da nova revisão Código HTML da página anterior à ação.
old_text Nova página de texto, sem qualquer formatação Armazena o texto novo sem código HTML ou código wiki.
tor_exit_node Se a mudança foi feita ou não através de um nó TOR. Ver The Onion Router para mais detalhes.
timestamp Marca temporal Unix da mudança Ver Era Unix para mais detalhes.
moved_from_articleid Número de identificação da página movida Após uma movimentação, tal número acompanhará a página movida, e estará a partir de então associado ao título novo, que contém agora o histórico original.
moved_from_namespace Domínio original da página movida Domínio onde a página movida estava localizada.
moved_from_text Título original da página movida Título original da página movida, sem o domínio.
moved_from_prefixedtext Título original da página movida (com domínio) Título original completo da página movida, ou seja, com o domínio.
moved_to_restrictions_edit Nível de restrição de edição da página Nível de proteção de edição aplicado na página após a movimentação.
moved_to_restrictions_move Nível de restrição de movimentação da página Nível de proteção de movimentação aplicado na página movida.
moved_to_recent_contributors Últimos dez contribuidores para a página movida Armazena os nome de usuários ou endereços IPs dos dez últimos editores da página movida.
moved_from_restrictions_edit -- --
moved_from_restrictions_move -- --
moved_from_recent_contributors -- --
moved_to_articleid -- --
moved_to_namespace -- --
moved_to_text -- --
moved_to_prefixedtext -- --

Operadores lógicos

Operador Significado
& Conjunção lógica (and, e)
| Disjunção lógica (or, ou)
! Negação (not, não)
^ Disjunção exclusiva (xor, ou exclusivo)

Exemplos

  • Detectar editores anônimos
!("user" in user_groups)
  • Detectar editores anônimos ou contas recém criadas
!("autoconfirmed" in user_groups)
  • Detectar editores anônimos ou contas recém criadas branqueando uma página
!("autoconfirmed" in user_groups) & new_size=0
  • Detectar determinado usuário editando em determinado domínio (ver tabela de domínios em Wikipedia:Domínio)
user_name="Nome_do_usuário" & article_namespace=0
  • Detectar inserção de determinada palavra
("Ronaldo" in ADDED_LINES) & !("Ronaldo" in REMOVED_LINES)
Obs: a comparação é sensível à capitalização. Pode usar também o comando lcase para transformar todos os caracteres de uma sequência em minúsculas:
("ronaldo" in lcase(ADDED_LINES)) & !("ronaldo" in lcase(REMOVED_LINES))

Guia

Passo-a-passo sugestivo para criação de novos filtros:

  1. Ter uma idéia de uma situação na qual um filtro será útil, verificar se já há um filtro que aplica a idéia.
    • Se houver, verificar no histórico quem o criou/adaptou e verificar se ele já está funcionando. Se estiver funcionando, voltar à etapa 1. Se não estiver, trabalhar em cima do código já existente.
    • Se não houver filtro similar, criar um código ou adaptar algum já existente, similar, se o filtro idealizado ainda não existir.
  2. Criar um novo filtro, deixando desmarcada a opção "Ativar este filtro".
  3. Realizar testes utilizando esta ferramenta e, se necessário, a Wikipédia:Página de testes.
    • Se o teste envolver situações mais complexas, como movimentações ou eliminação de páginas, provavelmente será melhor utilizar a wiki de testes do MediaWiki.
  4. Marcar a opção "Ativar este filtro", quando os testes preliminares mostrarem que o código funciona com um mínimo de eficiência (sem muitos falsos positivos).
  5. Observar os primeiros disparos em busca de falsos positivos. Encontrando falsos positivos, verificar as causas e aperfeiçoar o filtro.
  6. Continuar o ciclo de falha/correção até que:
    • ou se desista do filtro (caso seja impossível diminuir a quantidade falsos positivos para um nível aceitável);
    • ou ele passe a não mais disparar falsos positivos (ou pelo menos o faça a níveis aceitáveis);
      • "Nível aceitável" dependerá muito do que o filtro pretende fazer. Em caso de dúvida, é importante pedir a opinião de outros usuários.
  7. Uma vez que o filtro esteja "pronto" (geralmente alguns dias após a implementação) ele pode ser colocado no modo de etiqueta ou de aviso, se for o caso. É importante que o modo de etiqueta seja sempre ativado junto com o modo de aviso, para facilitar a identificação de edições impróprias. Isto servirá tanto para quem combate vandalismos e não tem acesso fácil ao filtro, quanto para que haja mais olhos observando possíveis falhas do filtro. Ler esta página com atenção, para não configurar etiquetas desnecessárias.
    • Todo filtro ativado em modo de aviso deve ter uma explicação amigável (de preferência, personalizada no domínio MediaWiki) e um link para Wikipédia:Filtro de edições/Problemas, para que qualquer editor avisado pelo filtro possa comunicar possíveis falhas aos administradores/demais editores.
  8. Após um período extenso de observação (geralmente várias semanas, ou meses), e após um número significativo de disparos ocorrerem sem a existência de um único falso positivo, o filtro pode passar ao modo de limitação ou desautorização (impedimento) de edições.
    • Filtros que sempre terão possibilidade real de falsos positivos (por exemplo, remoção de interwiki) podem no máximo ser colocados no modo de aviso+etiqueta.
      • Os avisos são bastante eficientes para desestimular vandalismos, mesmo não os impedindo totalmente. Em filtros apenas no modo de aviso, 60 a 90% das edições não prosseguem (isto é, o "vândalo" desiste e não salva sua edição, mesmo podendo fazê-lo).
  9. Qualquer ocorrência comprovada de falso positivo a um filtro no modo de impedimento de edições deverá fazê-lo voltar ao passo 6 (modo de aviso+etiqueta), exceto se a causa puder ser corrigida imediatamente.
  • Normalmente a maioria dos filtros destinam-se a combater problemas ocasionais, sem visar um usuário específico. Na maioria dos casos, não há necessidade de ocultar o código do filtro, já que é remota a possibilidade de algum mal-intencionado verificar tal código e descobrir uma maneira de burlá-lo constantemente que não teria como ser descoberta sem inspecionar o código. A ocultação do código do filtro só é recomendada quando for essencial para o funcionamento do filtro. Ela pode ser importante, por exemplo, em um filtro direcionado a coibir alguns poucos editores mal-intencionados que insistem por semanas, meses ou anos em um padrão de comportamento inadequado, e cujo código revele formas de contorná-lo. Se nenhum vândalo tentaria burlar um filtro privado se ele passasse a ser público, não faz sentido mantê-lo oculto.