Wikipédia:Robôs/Pedidos de aprovação/Danilo.bot/3

Danilo.botEditar

pedidoediçõescontadorlogsblock userblock logflag logflag botSUL util
Pedidos de tarefas: 1, 2, 3, 4

Operator: Danilo.mac

Automatic or manually assisted: automático

Programming language(s): python

Function summary: Mover páginas do domíno Anexo para o domínio principal.

Edit period(s) (e.g. continuous, daily, one time run): até completar a tarefa

Edit rate requested: 1 moção por minuto

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

Function details: Conforme consenso, o robô irá mover as páginas do domínio Anexo para o título correspondente no domínio principal, ou seja, removendo o prefixo "Anexo:". Conforme discutido na seção 'Comentários ao plano de trabalho', o robô precisará do estatuto de eliminador quando for mover páginas para títulos que precisam ser eliminados antes da moção.

DiscussionEditar

Pretendo começar pelos títulos que não precisam de eliminação para mover, o que vai levar mais de 24 horas, só precisarei do estatuto de eliminador depois disso. Danilo.mac(discussão) 02h33min de 3 de junho de 2014 (UTC)

Apesar de ter participado na discussão, julgo não haver problema em eu aprovar o período de teste. Não esquecer do rate e de avisar aqui quando tiver 50 edições para ser analisado. GoEThe (discussão) 08h27min de 3 de junho de 2014 (UTC)

Olá GoEThe. Na verdade, de acordo com a política atual, somente membros do GAB podem aprovar. Outros usuários estão livres para comentar o pedido. O Alchimista ficou de ver o pedido até amanhã (falei com ele via irc). Danilo.mac(discussão) 20h26min de 3 de junho de 2014 (UTC)
O cabeçalho [1] induziu-me em erro. GoEThe (discussão) 09h40min de 4 de junho de 2014 (UTC)
Danilo, já começas-te com o script? Há a meu ver algumas coisas a ter em conta, nomeadamente:
  • Títulos semelhantes - tenho andado a pensar numa forma de contornar a situação, mas ainda não me ocorre nada
  • Filtrar os casos onde os títulos começam por "Lista", e convém perguntar se haverá outros casos similares
  • Páginas protegidas - convém criar uma lista para posterior análise
  • Redirecionamentos - convém criar uma lista de todas as movimentações, posteriormente, quando se verificar que tudo está em condições, fica mais fácil corrigir os redirecionamentos.

Alchimista Fala comigo! 08h43min de 12 de junho de 2014 (UTC)

Minha ideia é pegar os títulos com query sql e fazer as moções em partes, nessa ordem:
  1. Anexos cujo título no domínio principal redireciona para para o anexo e só tem uma edição (mover de volta).
  2. Anexos que não possuem título correspondente no domínio principal (criar a página ao mover).
  3. Anexos cujo título no domínio principal redireciona para o anexo mas tem mais de uma edição (eliminar título alvo antes de mover).
As páginas que sobrarem no domínio Anexo depois disso são aquelas com conflito de título, essas a gente pode discutir no tópico da esplanada como fazer. Posso fazer uma lista das movidas depois filtrando as edições do bot pelo sumário. Danilo.mac(discussão) 18h57min de 12 de junho de 2014 (UTC)
É preciso atenção neste terceiro passo, pois o histórico pode precisar ser preservado por questões de licenciamento, e neste caso uma opção seria fundir os históricos (o que nem sempre faz sentido). Helder.wiki (discussão) 20h54min de 12 de junho de 2014 (UTC)

Alchimista, gerei as três listas conforme tinha me sugerido via IRC e coloquei os links para todos avaliarem no tópico da esplanada. Danilo.mac(discussão) 20h40min de 8 de outubro de 2014 (UTC)

Bem, como sou no momento sou o único membro ativo do GAB tomei a liberdade de fazer as edições de teste sem acompanhamento de outro membro, peço aos editores que vigiam este pedido para verificar as edições e comentar se encontrarem algum problema nas edições. Fiz 38 moções, nas primeiras 8 eu achei que havia algum problema com o mecanismo que limita o número de edições por minuto, mas ao olhar mais atentamente percebi que cada moção realiza mais de uma ação, podendo chegar a até 4 ações por moção: a movimentação do anexo, a criação de página de redirecionamento no título antigo, a moção da discussão do anexo e a criação de página de redirecionamento no título antigo da discussão do anexo. Sendo assim modifiquei a velocidade que eu tinha proposto no inicio de 6 para 1 moção por minuto, as últimas 30 moções de teste foram feitas nessa taxa, o que resulta numa taxa de até 4 ações por minuto, isso também vai ajudar a não sobrecarregar o robô que corrige os redirecionamentos duplos. Vou deixar alguns dias para ver se alguém tem comentários, e se não houver problemas começo a rodar o robô. Danilo.mac(discussão) 01h09min de 19 de outubro de 2014 (UTC)

Parece ok. Mas eu tentaria reduzir o sumário, que está repetitivo. Em vez de

Danilo.bot moveu Anexo:X para seu redirecionamento X: Bot: Movendo anexos para domínio principal conforme [[Wikipédia:Esplanada/propostas/Eliminação do domínio Anexo (26abr2014)|consenso]]

acho melhor

Danilo.bot moveu Anexo:X para seu redirecionamento X conforme [[Wikipédia:Esplanada/propostas/Eliminação do domínio Anexo (26abr2014)|consenso]]

Além disso, como alguns títulos são longos, o link poderá ficar quebrado. Se utilizar um link permanente como Special:PermaLink/40307602, poderá economizar alguns bytes e aumentar as chances de não ficar cortado. Helder 18h22min de 19 de outubro de 2014 (UTC)
Fiz mais 100 moções. Reduzi o sumário e adicionei mais uma função para fazer esta correção durante as moções. Não havendo comentários começo amanhã a rodar continuamente até o fim da primeira etapa. Danilo.mac(discussão) 23h47min de 24 de outubro de 2014 (UTC)
Para já parece-me tudo bem, há contudo uma alteração que me apercebi entretanto, mas não relacionada com o bot: o link quebrado para a página da votação da lista em destaque. Alchimista Fala comigo! 20h54min de 25 de outubro de 2014 (UTC)
Bom vê-lo de volta Alchimista! Após mover os anexos, precisarão ainda ser feitas as moções das páginas de votações, o que corrigirá os links quebrados. E por esta proposta na esplanada será também necessária a fusão da {{Destacado}} e a {{Bom}} na {{História do artigo}}, mas como pode também ter outras correções a serem feitas na {{História do artigo}}, por exemplo correção das ligações para as páginas de votação (que ainda serão movidas) e troca de siglas como AnD → LD, acho melhor fazer isso depois de terminadas as moções dos anexos. Danilo.mac(discussão) 03h34min de 26 de outubro de 2014 (UTC)
Terminei a primeira etapa, estou passando para a segunda, fiz 12 moções de teste, não encontrei problemas. Não havendo comentários eu começo a a rodar continuamente amanhã. Pretendo também aumentar a taxa de edição para 2 moções por minuto, pois a segunda etapa tem mais de 10 mil anexos, demoraria mais de uma semana a uma moção por minuto. Danilo.mac(discussão) 02h16min de 1 de novembro de 2014 (UTC)
@Alchimista: Terminei a segunda etapa, agora é o ponto em que o robô precisa do estatuto de eliminador para mover as páginas restantes, pois seus redirecionamento no domínio principal têm mais de uma edição e o MediaWiki não permite mover de volta para seu redirecionamento sem eliminá-lo antes. Vou usar page.move(..., safe=False) para fazer essas moções. Danilo.mac(discussão) 21h03min de 6 de novembro de 2014 (UTC)
Já foi adicionado o estatuto, faz umas 10 movimentações e pára, para verificar-mos se tudo está bem. Alchimista Fala comigo! 22h43min de 6 de novembro de 2014 (UTC)
Conforme acompanhou via IRC fiz as 10 moções antes de dar continuidade. Eu também preferi não eliminar redirecionamentos que tinham históricos com mais de 10 edições, eles podem ter algo a ser aproveitado em seus históricos e portanto é melhor deixar esses para verificar e eliminar manualmente, para fazer essa separação troquei na query que o robô usou HAVING COUNT(*) > 1 por HAVING COUNT(*) BETWEEN 2 AND 10. E outro registro importante, relacionado ao código do pywikibot que elimina páginas, o parâmetro safe=False não está implementado, então foi necessário colocar um código para eliminar o título alvo e sua discussão (caso exista) antes de mover, e outro empecilho foi o fato que o código do pywikibot não reconhece a flag de eliminador para eliminar páginas, page.delete(u'motivo', prompt=False) não funciona, para contornar isso é preciso usar site.deletepage(page, u'motivo', as_group='user') para que o pywikibot não verifique se o robô é sysop antes de eliminar. Danilo.mac(discussão) 15h33min de 7 de novembro de 2014 (UTC)