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

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

Operator: Diego Queiroz

Automatic or manually assisted: Automático

Programming language(s): Python (pywikibot)

Function summary: Substituir a predefinição {{Ref-livro}} por {{Citar livro}}

Edit period(s) (e.g. continuous, daily, one time run): Uma vez

Edit rate requested: 10 edits por minuto

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

Function details: Como foi brevemente discutido na Esplanada, as predefinições {{Ref-livro}} e {{Citar livro}} estão com a fusão pendente há algum tempo. Analisando melhor elas, vi que o melhor a se fazer é aposentar a predefinição {{Ref-livro}} pois, além de mal documentada, ela não engloba as funcionalidades de {{Citar livro}}. Os campos das predefinições são basicamente os mesmos, então a transição será simples. As seguintes modificações serão feitas nos campos de {{Ref-livro}}:

  • outros = Função não é clara. Será mantido como está.
  • publicação = Função não é clara. Será mantido como está.
  • data = Não existe equivalente em {{Citar livro}}. Será mantido como está.
  • mês = Não existe equivalente em {{Citar livro}}. Será mantido como está.
  • linkautor = Será substituído por autorlink.
  • URLcapítulo = Será substituído por capítulourl.
  • URL = Será substituído por url.
  • cita = Será substituído por notas.
  • id = Será substituído por isbn, issn ou oclc.

--Diego Queiroz (discussão) 02h41min de 21 de novembro de 2014 (UTC)[responder]

Código executado:

python replace.py -transcludes:"Ref-livro" -namespace:0 -regex -dotall \
  "({{[Rr]ef-livro[^{}]*?){{ISBN\s*?\|\s*?([^{}]*?)}}([^{}]*?}})" "\1\2\3" \
  "({{[Rr]ef-livro[^{}]*?\|\s*id\s*=\s*)ISBN[\s:]*([^{}]*?}})" "\1\2" \
  "({{[Rr]ef-livro[^{}]*?\|\s*)id(\s*=\s*)ISSN[\s:]*([^{}]*?}})" "\1issn\2\3" \
  "({{[Rr]ef-livro[^{}]*?\|\s*)id(\s*=\s*){{OCLC\s*?\|\s*?([^{}]*?)}}([^{}]*?}})" "\1oclc\2\3\4" \
  "({{[Rr]ef-livro[^{}]*?\|\s*)id(\s*?=[^{}]*?}})" "\1isbn\2" \
  "{{[Rr]ef-livro([^{}]*?)}}" "{{Citar livro\1}}" \
  "({{Citar livro[^{}]*?\|\s*)linkautor(\s*?=[^{}]*?}})" "\1autorlink\2" \
  "({{Citar livro[^{}]*?\|\s*)URLcapítulo(\s*?=[^{}]*?}})" "\1capítulourl\2" \
  "({{Citar livro[^{}]*?\|\s*)URL(\s*?=[^{}]*?}})" "\1url\2" \
  "({{Citar livro[^{}]*?\|\s*)cita(\s*?=[^{}]*?}})" "\1notas\2" \
  -summary:"[[WP:Bot|Bot]]: Substituindo [[Predefinição:Ref-livro]] (depreciada) por [[Predefinição:Citar livro]]."

--Diego Queiroz (discussão) 18h46min de 25 de novembro de 2014 (UTC)[responder]

Discussion editar

Discutimos já alguns detalhes via chat. Pode iniciar os testes, faça 50 edições a 3 edições por minuto (-putthrottle:20) e aguarde. Danilo.mac(discussão) 19h39min de 24 de novembro de 2014 (UTC)[responder]

Como mostrado no diff as ações do robô estão de acordo com o planejado. --Zoldyick (Discussão) 21h32min de 24 de novembro de 2014 (UTC)[responder]

Verifiquei todas as edições, o robô está funcionando corretamente, porém tem dois erros que encontrei relacionados aos parâmetros das duas predefinições. Nesta edição a ref-livro tinha o parâmetro "apelido" como alternativa para sobrenome, a citar web não tem o mesmo parâmetros e ficou sem mostrar o sobrenome do autor. E outro problema, que dá para ver por exemplo nesta edição comparando com a edição anterior a do robô, é que na ref-livro o parâmetro "id" é usado como código ISBN e na citar web o mesmo parâmetro existe mas é usado como "Código arbitrário", então teria que trocar id por isbn antes de trocar o nome da predefinição para não trocar o id de outras citar livro que já estejam na página. Após as correções faça mais 20 edições a 3 por minuto. Danilo.mac(discussão) 23h26min de 24 de novembro de 2014 (UTC)[responder]
@Danilo.mac: Na verdade, não são necessariamente erros. A {{Ref-livro}} era mal documentada e, por isso, vai ocorrer de uma coisa ou outra ficar estranho mesmo. Quanto aos casos citados:
  • Nem a {{Ref-livro}} nem a {{Citar livro}} possui o parâmetro apelido, ou seja, antes da alteração também não devia funcionar. Quem colocou isso aí que merecia uns tapas. Sugere algo?
  • Na verdade, não sei se dá pra dizer com segurança como o parâmetro id era utilizado. Existe uma indicação que era o ISBN na {{Ref-livro}}, mas não sei o quanto isso era seguido. Foi de propósito que eu manti o id para ser o código arbitrário da {{Citar livro}}. Acha melhor mudar para isbn?
--Diego Queiroz (discussão) 23h58min de 24 de novembro de 2014 (UTC)[responder]
Ok quanto ao apelido, falha minha, não vi como estava na ref-livro. Sim, melhor mudar id para isbn porque a ref-livro faz um link ISBN com o código em id. Danilo.mac(discussão) 00h32min de 25 de novembro de 2014 (UTC)[responder]
  Feito novo teste. Durante o teste identifiquei um erro que comentei com você no Chat. Fiz os ajustes necessários, ajustei os erros, e executei um novo teste. Creio que agora esteja ok. --Diego Queiroz (discussão) 04h01min de 25 de novembro de 2014 (UTC)[responder]
  Aprovo, agora está tudo certo. Coloque o estatuto de robô e pode rodar, porém em vez de 10 edições por minuto como pediu rode a 6 edições por minuto, que é a velocidade máxima permitida pela política de robôs e é também a velocidade padrão quando não se coloca -putthrottle. Danilo.mac(discussão) 05h04min de 25 de novembro de 2014 (UTC)[responder]

@Danilo.mac: Com a execução do bot, notei que há casos em que existe o código | id = ISSN 0000-0000, neses casos em particular, configurei o id para se tornar o campo issn ao invés de isbn. --Diego Queiroz (discussão) 14h10min de 25 de novembro de 2014 (UTC)[responder]

Ok, bom saber que está atento e fazendo alterações quando necessário, essa atenção é muito importante quando se opera robôs. Danilo.mac(discussão) 15h10min de 25 de novembro de 2014 (UTC)[responder]
Na verdade, é terapeutico ficar olhando o robô enquanto tá executando. :) Encontrei mais uma possibilidade que envolve o {{OCLC}}. --Diego Queiroz (discussão) 18h04min de 25 de novembro de 2014 (UTC)[responder]

A tarefa do bot foi concluída. Adicionei o código executado para referência futura. --Diego Queiroz (discussão) 18h46min de 25 de novembro de 2014 (UTC)[responder]