Wikipédia:Robôs/Pedidos de aprovação/BloqBot

Origem: Wikipédia, a enciclopédia livre.

pedidoediçõescontadorlogsblock userblock logflag logflag botSUL util

Operator: Albertoleoncio

Automatic or manually assisted: Automático

Programming language(s): PHP

Function summary: Execução de tarefas relacionadas à bloqueios.

Edit period(s) (e.g. continuous, daily, one time run): Contínuo

Edit rate requested: 1 execução a cada 10 minutos.

Already has a bot flag (Y/N): N

Function details: Criei essa conta de robô para cuidar de duas tarefas:

  1. Fechamento de pedidos de bloqueio em Wikipédia:Pedidos/Notificações de vandalismo e Wikipédia:Pedidos/Revisão de nomes de usuário. Após solicitação do EVinente, criei um script para fechar automaticamente os pedidos de bloqueio e coloquei em execução. Dentre os motivos:
    • Comumente, pedidos de bloqueio são eram executados e continuam continuavam abertos.
    • Poupa o tempo do administrador que é dispensado da tarefa de editar uma página somente para inserir o {{feito}}.
    • Ajuda no monitoramento da página, já que uma edição de robô não é monitorada e, assim, o fechamento de pedidos não gerará notificações.
    • Como é uma tarefa permanente, demanda uma conta própria separada da minha conta principal de robô. Possibilita que, caso o robô apresente erros, um eventual bloqueio não interferirá nas demais tarefas.
  2. Bloqueios parciais em faixas de IP. Dentro de alguns dias a votação estará finalizada e, caso seja aprovada, espera-se que a execução das medidas seja tomada de forma imediada. Nisso, em conjunção com os scripts (common.js/mobile.js) e os filtros, bloqueios parciais em faixas de IP também terão que ser efetuados. A função do robô nessa tarefa será o monitoramento de edições capturadas pelo filtro que não foram evitadas pelos scripts (via uso do aplicativo Android/iOS ou algum outro artifício do usuário anônimo) e o bloqueio parcial automático, evitando o atingimento do limiar de 5% do filtro. Nisso, em conjunção com os scripts (common.js/mobile.js) e os filtros, bloqueios parciais em faixas de IP são recursos emergenciais que podem ser utilizados caso algo dê errado. A função do robô nessa tarefa será o monitoramento das edições recentes em busca de edições por IP que não foram evitadas pelos scripts e que, por algum motivo superveniente, não tenham sido capturadas pelo filtro. O código-fonte está disponível aqui. Não é necessário o estatuto de sysop, apenas o de reversor, já que o estatuto de reversor possui o privilégio (block), que é o único privilégio necessário para a execução dessa tarefa.

Discussion[editar código-fonte]

@Albertoleoncio: Olá, é possível inserir também o monitoramento de Wikipédia:Pedidos/Proteção (sofre dos mesmos problemas, pedidos já atendidos que não são fechados...)? Rafael (stanglavine) msg 17h54min de 26 de setembro de 2020 (UTC)[responder]

@Stanglavine: É possível sim. Só não o fiz ainda porque, caso alguém solicitasse uma alteração da proteção de uma página já confirmada (de autoconfirmado para autorrevisor, por exemplo), o bot não diferenciaria isso e fecharia o pedido automaticamente. Pretendo descobrir alguma solução e resolver isso em breve. ━ ALBERTOLEONCIO Who, me? 19h25min de 26 de setembro de 2020 (UTC)[responder]
@Stanglavine: Resolvido! O bot também já está fechando pedidos de proteção. Utilizei a marcação da assinatura do solicitante para evitar esse problema, fazendo com que o robô apenas considere proteções realizadas após a solicitação. ━ ALBERTOLEONCIO Who, me? 02h31min de 21 de outubro de 2020 (UTC)[responder]

@Albertoleoncio: Desculpe a demora. Pode iniciar os testes da primeira função, como já é feita pelo seu outro robô só algumas poucas edições já são suficientes para confirmar que está funcionando bem. Sobre a segunda função, veja que tem uma discussão para não aplicar as medidas imediatamente após a votação, lá eu também explico que os bloqueios talvez não sejam necessários se o script e o filtro conseguirem dar conta de todas edições de IPs. Em todo caso é bom ter um robô de olho no filtro e pronto para aplicar os bloqueios se forem realmente necessários. Uma coisa que poderia ser melhorada nessa função é a adição de uma página de registro, uma subpágina de usuário do robô onde o robô colocaria (talvez uma vez por dia) a porcentagem de edições que o filtro pegou, para saber se o robô está verificando corretamente se filtro está perto do limite de 5% onde ele para de funcionar e o bloqueio precisa ser aplicado. E tenho algumas dúvidas: O robô espera a detecção do filtro chegar a quantos por cento antes de fazer um bloqueio? Se o filtro passar da porcentagem programada, quantos bloqueios de faixa o robô vai aplicar? Como o robô sabe sabe que os bloqueios aplicados são suficientes para fazer o filtro ficar longe do 5% em que o filtro para de funcionar? O robô considera as faixas de IP mais pegas pelo filtro para bloquear? Danilo.mac(discussão) 03h41min de 2 de outubro de 2020 (UTC)[responder]

@Danilo.mac: Acabei de perceber uma coisa interessantíssima, da qual eu não tinha percebido antes. Ao atingir o limite de 5%, as "ações perigosas" desempenhadas pelo filtro são desabilitadas automaticamente. Entretanto, diferentemente do que eu pensava, a ação disallow não está listada como ação perigosa, apenas as ações block, degroup, blockautopromote e rangeblock. Descobri isso ao verificar que o filtro 163, embora esteja desativado emergencialmente, está funcionando perfeitamente. Portanto, mesmo que o filtro atinja esses 5%, não deixará de funcionar. Alterei um pouco o pedido de aprovação, para que sirva apenas como um mecanismo emergencial que seja ativado apenas se surgirem edições que o filtro não tenha impedido. ━ ALBERTOLEONCIO Who, me? 15h03min de 2 de outubro de 2020 (UTC)[responder]
Muito bom saber disso. Mas por segurança é bom realizar algum teste antes de tentar fazer bloqueios, você poderia rodar o robô sem a parte do bloqueio e dar um print na lista ou fazer o robô salvar em algum lugar para sabermos quais faixas de IP ele bloquearia? Danilo.mac(discussão) 17h25min de 2 de outubro de 2020 (UTC)[responder]
@Danilo.mac: Sim, é possível ver o output da ferramenta aqui. ━ ALBERTOLEONCIO Who, me? 19h10min de 2 de outubro de 2020 (UTC)[responder]
Ótimo, assim que o script e o filtro for ativado eu peço a flag de reversor para continuarmos os testes. Danilo.mac(discussão) 23h42min de 2 de outubro de 2020 (UTC)[responder]
@Danilo.mac: Poderia solicitar a flag de bot nesse interim? Gostaria de iniciar a tarefa 1 com essa conta e a flag é necessária, nesse caso, para que as edições não apareçam nas mudanças recentes e nem nas páginas vigiadas. Talvez o período de testes possa ser dispensado para essa tarefa, já que ela já está em execução em meu outro robô e eu apenas mudaria o nome da conta no script. ━ ALBERTOLEONCIO Who, me? 00h20min de 3 de outubro de 2020 (UTC)[responder]
Não é usual darmos flag antes dos testes, mas não vejo problemas neste caso, vou explicar para os burocratas. Danilo.mac(discussão) 01h57min de 3 de outubro de 2020 (UTC)[responder]
Flag atribuída para a execução da primeira tarefa. Edições simples já testadas pela outra conta, tarefa trivial e necessária. Constatei apenas essa edição com uma divergência na duração do bloqueio (talvez um erro de digitação?), mas de longe nada grave que impeça a operação do bot. Em relação a outra tarefa, vamos aguardar o desenrolar da situação, como afirmou o Danilo. Rafael (stanglavine) msg 04h21min de 3 de outubro de 2020 (UTC)[responder]

───────────────── @Danilo.mac: Foi tanta coisa ao mesmo tempo que acabei esquecendo de comunicar: fiz 3 testes com o bot aplicando bloqueios de faixa (desfeitos imediatamente após realização) onde ele demostrou a capacidade de bloquear utilizando a API. Encontrei um bug nas duas primeiras ações que estavam configurando o bloqueio incorretamente, impedindo a criação de contas, bug esse que foi corrigido e, analisando o log do terceiro bloqueio, não houve erros encontrados. ━ ALBERTOLEONCIO Who, me? 16h55min de 5 de outubro de 2020 (UTC)[responder]

Eu tinha esquecido que administradores podem dar estatuto de reversor, pedi aos burocratas duas hora atrás. Bem, para ser sincero não sei bem como avaliar essa função do robô, ele só vai funcionar se der algum problema no filtro ou script, o que não aconteceu. Os burocratas que estiverem acompanhando fiquem a vontade para dar ideias. Albertoleoncio, aonde o robô pegou esses IPs que foram bloqueados no teste? Danilo.mac(discussão) 18h03min de 5 de outubro de 2020 (UTC)[responder]
@Danilo.mac: Ele pegou os IPs nas Mudanças Recentes. Esses, nesse teste, foram os últimos a editar artigos até a execução do PHP. ━ ALBERTOLEONCIO Who, me? 18h13min de 5 de outubro de 2020 (UTC)[responder]