Manual:Pywikibot/replace.py/pt-br

Replace.py faz parte da estrutura do Pywikibot.

Este bot substitui o texto. Ele recuperará informações sobre quais páginas podem precisar de alterações de um despejo XML ou de um arquivo de texto ou apenas alterar uma única página. Para obter mais informações, use

Se você possui o Windows, pode omitir "python".

Visão geral
Você pode usar esse script basicamente de duas maneiras:


 * 1) Você escreve todos os parâmetros na linha de comando, incluindo o texto a ser substituído e a substituição. Isso é útil para tarefas simples. Por exemplo,   procurará a palavra "cor" apenas nos artigos (ns:0), altera as ocorrências em minúsculas para "cor", solicita sempre que você confirme a substituição e usa o comentário de edição padrão. Tenha cuidado, porque há casos em que a cor não deve ser alterada para cor (por exemplo, no artigo Cascading Style Sheets); nunca execute essa substituição automaticamente, a menos que você tenha pelo menos 100% de certeza de que está sempre correta! Essa é quase a forma mais simples do comando (veja abaixo os parâmetros mínimos).   é equivalente a escrever a palavra cor na barra de pesquisa e é uma maneira rápida de reunir artigos, mas não encontra cores."Se o texto antigo ou o novo contiverem espaços, use aspas! Tarefas repetidas podem ser armazenadas em um arquivo em lotes (Windows) ou shell script (Linux)."
 * 2) Você armazena os parâmetros principais, incluindo texto antigo e novo, exceções e edita o comentário em um arquivo. Várias tarefas (chamadas de correções) podem ser armazenadas em um arquivo e usadas repetidamente. Esse arquivo pode ser , que está incluído na sua distribuição pywikibot, mas está sujeito a alterações a cada atualização; portanto, você deve salvá-lo, ou  , projetado para uso pessoal, mas não é incluído no Pywiki e pode ser criado com generate_user_files.py. Este último tem uma sintaxe um pouco diferente, mas tem um exemplo. Isso é muito mais eficiente e flexível, mas precisa de alguma preparação. Esses dois métodos podem ser combinados; no entanto, alguns parâmetros armazenados na correção substituem o parâmetro correspondente fornecido na linha de comando.

Depois de escolher entre essas opções, você tem outra decisão:


 * 1) Você faz substituições de texto simples como a acima. Essa é uma boa maneira de alterar palavras, modelos, categorias, títulos ou nomes de seções, mas não é flexível. Por exemplo, o comando acima substituirá "cor", mas não cores, coloridas e cor em maiúsculas. (Se você está preocupado apenas com o caso, ainda pode digitar  .)
 * 2) Você usa expressões regulares (geralmente mencionadas como regexes). Eles procuram padrões e os substituem por padrões. Existem alguns exemplos em  . Para idiomas aglutinantes e flexíveis, essa é a única maneira eficiente de corrigir as ortografia.

Sua terceira decisão será a seguinte:


 * 1) Você procura por páginas a serem modificadas no wiki ao vivo. Isso resultará em uma velocidade aceitável se você trabalhar com modelos, categorias ou o mecanismo de pesquisa, mas geralmente é muito lento para a iteração simples de páginas, especialmente em wikis de grande e médio porte. Então  é a maneira de uso menos recomendada, pois desperdiça seu tempo e os recursos do servidor. (No entanto, às vezes é necessário e inevitável se o seu wiki não tiver despejos.)
 * 2) Você baixa um dump XML do seu wiki em https://dumps.wikimedia.org (geralmente xxwiki-latest-pages-articles.xml.bz2) e usa-o com  . Isso irá acelerar o seu bot e usar seu tempo, bem como o tempo do seu computador e do servidor, com mais eficiência. Essa é a maneira recomendada de procurar cores e cores juntas, porque o mecanismo de pesquisa infelizmente não lida com expressões regulares. A desvantagem desse método é que você não encontrará artigos nos quais o texto fornecido se encontra desde a composição do último despejo.
 * O acesso direto aos dumps do seu wiki é algo como o huwiki/. Mude as duas primeiras letras para o seu código de idioma.
 * Os despejos no link fornecido estão disponíveis apenas para os wikis da Wikimedia. Para outros wikis, entre em contato com o mantenedor desse wiki para saber se eles têm despejos.

E, por último mas não menos importante, você enfrenta mais uma decisão:


 * 1) Você procura por páginas e as modifica rapidamente. Isso resultará novamente em uma velocidade aceitável se você trabalhar com modelos, categorias ou o mecanismo de pesquisa, mas poderá ser muito lento se você apenas procurar uma regex no espaço para nome completo ou wiki.

Conjunto mínimo de parâmetros

Pelo menos esses dados devem ser fornecidos para o bot sempre:


 * 1) Onde e como procurar as páginas a serem editadas?
 * O parâmetro correspondente pode ser qualquer um de  etc.; consulte a seção Fonte da tabela abaixo.
 * 1) O texto antigo a ser substituído e o novo a ser substituído.
 * Pode ser um ou mais pares de cadeias ou o nome de uma correção.
 * 1) Não é obrigatório, mas geralmente vale a pena e é altamente recomendável que iniciantes limitem o trabalho ao namespace principal com  . Assim, você pode evitar alterar as contribuições dos usuários nas páginas de discussão ou corrigir o título de um artigo em uma página em que a discussão seja apenas sobre esse título. Parte visível dos modelos (mas não o código em si!) E as descrições dos arquivos também estão no escopo dos leitores. É melhor não modificar páginas de discussão, páginas de usuário e páginas de projeto (o espaço de nomes "Wikipedia") pela primeira vez, e ele precisa de cuidados especiais e consenso da comunidade ainda mais tarde. Não se surpreenda com reações iradas ou com o bloqueio de seu bot se você omitir o parâmetro namespace.

Arquivos
O bot usa três arquivos além da estrutura:


 * o módulo principal


 * algumas "correções" predefinidas


 * um arquivo para adicionar suas próprias correções. O arquivo é criado quase vazio por

Arquivos que podem ser usados para entrada e/ou saída:


 * um arquivo com uma lista de artigos, se especificado com o parâmetro "-file"


 * um dump XML local se usado com o parâmetro "-xml"


 * o log com um nome que pode ser especificado com o parâmetro "-log"

Local
Você pode executar replace.py com os seguintes parâmetros (por exemplo, ).

Exemplos
Se você deseja alterar modelos da sintaxe antiga, por exemplo,, para o nova sintaxe, por exemplo  , baixe um arquivo de despejo XML (tabela de páginas) em https://dumps.wikimedia.org, use este comando:

Você pode combinar padrões em mais de uma linha:

Se você tem um dump chamado foobar.xml e deseja corrigir erros de digitação, por exemplo, Erro -> Erro, use este:

Se você tem uma página chamada 'John Doe' e deseja converter tags HTML em wiki sintaxe, use:

Se você executar o bot sem argumentos, você será solicitado várias vezes a substituir:

O script solicita ao usuário antes de modificar um artigo. É recomendável verificar novamente o resultado para garantir que o bot não tenha introduzido erros (especialmente com palavras com erros ortográficos). É possível especificar um conjunto de artigos com um arquivo de texto externo contendo os links do Wiki :

O bot é chamado usando algo como:

Em vez de especificar expressões regulares na linha de comando, é preferível adicioná-las ao

Exemplo: Substituindo vários parágrafos
O texto original da página Sandbox é: Esta página é para todos os testes.

Welcome to the sandbox!

Se você deseja alternar a instrução (a segunda vai antes da primeira), digite a seguinte sintaxe:

Para adicionar uma nova linha, usamos.

Exemplo: muito desdobramento em um artigo
Em este artigo realmente havia muitas títulos de episódios em negrito em várias tabelas que deveriam ser desdobradas. É o caso em que você pode usar um bot para um único artigo e isso mostra o papel de alguns parâmetros interessantes.


 * O que você está procurando?
 * Textos entre pares de ,
 * que estão  dentro de uma tabela  (não queremos substituir no restante do artigo!),
 * mas não contém um caractere  (apenas por segurança, para garantir que ainda estamos dentro de uma célula - talvez possamos omitir isso),
 *  'prestando atenção'  em ter muitas ocorrências dentro de uma tabela (recursão),
 * e que as tabelas são agrupadas em várias linhas (dotall),
 * e que cada tag de abertura de tabela deve corresponder à sua própria tag de fechamento e todo começo de texto em negrito deve corresponder ao seu próprio fechamento  (é por isso que usamos   s para tornar as expressões não agradáveis).

Com as partes de texto antes, entre e depois das negritas - elas são colocadas entre parênteses para poder se referir a elas com seus números de grupo, respectivamente.
 * Com o que substituímos?

(Ele está incluído aqui para facilitar a leitura, mas você deve escrever para uma linha, é claro.) O bot irá pedir o título, já que não o demos. O uso de aspas duplas ajusta-se à linha de comando e oferece a liberdade de usar apóstrofos na expressão.
 * O comando

Aqui você está. (Não clique se o computador não estiver suficientemente forte!)
 * Resultado:

Uso avançado de correções: funções próprias
Ser um assistente por meio do replace.py não é um sonho, se você estiver familiarizado com o básico da programação Python. textlib.py (outro módulo da estrutura pywikibot) possui uma capacidade maravilhosa, mas não amplamente utilizada. Se você escrever uma função em vez de um texto constante ou uma expressão regular no texto de substituição ou nas exceções, ele a reconhecerá e executará. Com um pouco de programação, você pode aproveitar esse recurso e usar o replace.py em um nível superior. Desnecessário dizer que o uso de uma função própria oferece muito mais flexibilidade do que uma simples expressão regular. Você também pode usar uma função para gerar as expressões de substituição para mantê-las claramente organizadas. Para aprender como usar suas próprias funções em fixes.py e user-fixes.py e para que serve, consulte hu:Szerkesztő:Bináris/Fixes and functions HOWTO.

Ligações externas

 * A biblioteca padrão do Python »Operações de expressão regular
 * - O depurador de expressões regulares do Python - para testar expressões regulares especificamente para python
 * - introdução e comparação de várias implementações de regex, incluindo python
 * Conversor Unicode para HTML (útil para criar articles_list.txt)