Manual:Pywikibot/replace.py/ca

From mediawiki.org
Jump to navigation Jump to search
Wikimedia-logo-meta.png

This page was moved from Meta-Wiki.
It probably requires cleanup – please feel free to help out. In addition, some links on the page may be red; respective pages might be found at Meta. Remove this template once cleanup is complete.

Replace.py és un mòdul que forma part del marc de treball del Pywiki bot.

Aquest bot substitueix text. Recupera informació en aquelles pàgines que necessiten canvis per mig d'un dipòsit XML o un fitxer de text, o sols modifica una pàgina. Per obtenir més informació utilitzeu

python replace.py -help

Fitxers[edit]

El bot empra tres fitxers adicionals de l'entorn de treball:

replace.py
el mòdul principal
fixes.py
alguns arranjaments predefinits
user-fixes.py
un fitxer personalitzable. El fitxer es crea prèviament buit executant l'ordre generate_user_files.py

Fitxers que poden utilitzar-se per a llegir dades o registrar resultats:

filename.txt
un fitxer amb una llista d'articles quan s'afegeix el paràmetre "-file"
filename.xml
un dipòsit XML local quan s'especifica el paràmetre "-xml"
replacelog
un registre amb un nom quan s'especifica el paràmetre "-log"

Paràmetres[edit]

locals[edit]

Podeu executar replace.py amb els següents paràmetres (per exemple, python replace.py -file:llista_articles.txt "errror" "error").

Source
-xml Recupera informació des d'un dipòsit XML local (pages_current, vegeu https://dumps.wikimedia.org). L'argument pot donar-se amb "-xml:filename".
-file S'executa en totes les pàgines d'un fitxer local. Es llegiran tots els [[enllaços viqui]] i es carregaran els corresponents articles. L'argument s'especifica amb "-file:nom_del_fitxer".
-cat S'executa en totes les pàgines d'una categoria. L'argument s'especifica amb "-cat:categoryname".
-subcat S'executa com -cat, però inclou també les subcategories.
-transcludes S'executa en totes les pàgines que transclouen una determinada plantilla. L'argument s'especifica amb "-transcludes:referredtemplate", e.g. "-transcludes:esborrany" significa que es realitzarà en aquelles pàgines que contenen la plantilla "esborrany".
-page S'executa en una única pàgina. L'argument s'especifica amb "-page:títol_pàgina". Podeu emprar este paràmetre reiteradament per a executar el bot en múltiples pàgines.
-ref S'executa en totes les pàgines que enllacen a una determinada pàgina. L'argument s'especifica amb "-ref:referredpagetitle".
-filelinks S'executa en pàgines que enllacen a una imatge. L'argument s'espefica amb "-filelinks:ImageName".
-links Treballa sobre una totes les pàgines que enllacen a una determinada pàgina. L'argument s'espefica amb "-links:linkingpagetitle".
-start S'executa en totes les pàgines d'un projecte, començant per la pàgina concretada. Escolliu "-start:!" per començar des del principi. Nota: És aconsellable emprar -xml en lloc d'aquesta opció; pretén ser útil en casos en que no hi ha disponible un dipòsit XML.
Pàràmetres de reemplaçament
-except:XYZ (sols per a versions antigues) Ignora les pàgines que conté XYZ. Si s'especifica l'argument -regex, XYZ és considerada com a una expressió regular.
-excepttitle:XYZ (sols per a versions noves) Ignora les pàgines que conté XYZ. Si s'especifica l'argument -regex, XYZ és considerada com a una expressió regular.
-excepttext:XYZ (sols per a versions noves) Ignora les pàgines que contenen el text. Si s'especifica l'argument -regex, XYZ és considerada com a una expressió regular.
-exceptinside:XYZ (sols per a versions noves) Ingora les coincidències del text a reemplaçar que contenen XYZ. Si s'especifica l'argument -regex, XYZ és considerada com a una expressió regular.
-exceptinsidetag:XYZ (sols per a versions noves) Ignora les coincidències del text a reemplaçar que contenen l'etiqueta XYZ.
-summary:XYZ Estableix el resum d'edició, evitant els resums d'edició per defecte.
-fix:XYZ Executa una de les tasques predefinides, especificades al diccionari 'fixes' dins del fitxer fixes.py o user-fixes.py. L'argument -regex i altres reemplaçaments especificats seran ignorats si empreu -fix. Actualment les esmenes predefinides són:
  • HTML - converteix les etiquetes HTML en sintaxi, i arranja el codi XHTML.
  • syntax - intenta esmenar la sintaxi wiki.
  • case-de - esmena errors de caixa en alemany.
  • grammar-de - esmena errors gramaticals i mencanogràfics en alemany.
-namespace:n S'executa el l'espai de nom corresponent al nombre n. El paràmetre es pot repetir. Funciona per a tots els paràmetres excepte l'argument -start, si desitgeu modificar totes les pàgines d'un espai de noms determinat afegiu el prefix d'este, per exemple, -start:User:!.
sensenom Les substitucions funcionen per parells, denominem sensenom aquelles cadenes que no inclouen un nom de paràmetre.

El primer argument sensenom és el text a recercar, mentre que el segon és text que substituira el primer. Si s'ha especificat l'argument -regex, el primer argument sense nom es tractarà com una expressió regular i l segon podrà contenir expressions com \\1 or \g<name>.

Opcions
-always Evita preguntar per a cada substitució.
-recursive Reemplaçament recursiu fins el possible.
-nocase Activa el mode el qual no distingeix entre majúscules i minúscules (fins i tot per a expressions regulars).
-allowoverlap Substitueix totes les coincidències encara que els diferents patrons s'estiguen aniuant. Compte! No empreu esta opció si no sabeu el que feu, ja que és possible que condueixi a bucles infinits.
-regex Activa el mode per a cerques amb expressions regulars. Si no s'especifica aquest argument el bot farà substitucions de text simples.

globals

These options will override the configuration in user-config.py settings.

Global options
ParameterDescriptionConfig variable
-dir:PATH Read the bot's configuration data from directory given by PATH, instead of from the default directory.  
-lang:xx Set the language of the wiki you want to work on, overriding the configuration in user-config.py. xx should be the language code. mylang
-family:xyz Set the family of the wiki you want to work on, e.g. wikipedia, wiktionary, wikitravel, ... This will override the configuration in user-config.py. family
-user:xyz Log in as user 'xyz' instead of the default username. usernames
-daemonize:xyz Immediately return control to the terminal and redirect stdout and stderr to file xyz. (only use for bots that require no input from stdin).  
-help Show the help text.  
-log Enable the log file, using the default filename 'script_name-bot.log' Logs will be stored in the logs subdirectory. log
-log:xyz Enable the log file, using 'xyz' as the filename. logfilename
-nolog Disable the log file (if it is enabled by default).  
-maxlag Sets a new maxlag parameter to a number of seconds. Defer bot edits during periods of database server lag. Default is set by config.py maxlag
-putthrottle:n
-pt:n
-put_throttle:n
Set the minimum time (in seconds) the bot will wait between saving pages. put_throttle
-debug:item
-debug
Enable the log file and include extensive debugging data for component "item" (for all components if the second form is used). debug_log
-verbose
-v
Have the bot provide additional console output that may be useful in debugging. verbose_output
-cosmeticchanges
-cc
Toggles the cosmetic_changes setting made in config.py or user-config.py to its inverse and overrules it. All other settings and restrictions are untouched. cosmetic_changes
-simulate Disables writing to the server. Useful for testing and debugging of new code (if given, doesn't do any real changes, but only shows what would have been changed). simulate
-<config var>:n You may use all given numeric config variables as option and modify it with command line.  

Exemples[edit]

Si desitgeu modificar plantilles amb la sintaxi antiga, v.g. {{msg:Esborrany}}, per la nova sintaxi, e.g. {{Stub}}, descarregueu el fitxer dipòsit XML des de https://dumps.wikimedia.org, i aleshores empreu esta ordre:

python replace.py -xml -regex "{{msg:(.*?)}}" "{{\1}}"

Es poden trobar patrons en més d'una línia:

python replace.py -regex -start:! "Primer a línia\nSegona línia" ""

El replace.py es pot emprar per a inserir o afegir text en una pàgina:

python replace.py -regex '(?ms)^(.*)$' "\1[[Category:NewCat]]"

Si teniu un fitxer dipòsit anomenat diposit.xml i voleu esmenar errors mecanogràfics, v.g. Errror -> Error, empreu esta línia d'ordres:

python replace.py -xml:foobar.xml "Errror" "Error"

Si sabeu d'una pàgina anomenada "Betxí" amb etiquetes HTML i les voleu convertir a sintaxi viqui, feu la següent ordre:

python replace.py -page:John_Doe -fix:HTML

Si no indique els arguments necessaris el programa vos anirà demanant els paràmetres:

python replace.py -file:articles.txt

L'script demana a l'usuari abans de modificar un article els paràmetres de reemplaçament, el resum d'edició, etc. Es remomana fer una doble comprovació per assegurar-se que el bot no insereix errors (especialment tractant-se de correccions ortogràfiques). És possible especificar un conjunt d'articles amb un fitxer extern que continga les pàgines a revisar a mode d'enllaços viqui. Per exemple si desitgeu revisar les pàgines ”avió”, ”vehicle”, ”tren”, i ”cotxe”, haurieu de crear un fitxer de text anomenat articles.txt amb el següent contingut:

 [[avió]]
 [[vehicle]]
 [[tren]]
 [[cotxe]]

Aleshores posarieu la següent ordre:

python replace.py [paràmetres-globals] -file:articles.txt "possar" "posar"

Més que indicar les expressions regulars a la línia d'ordres és preferible afegir-les al fitxer Python user-fixes.py, podent accedir a les dades d'este fitxer de la següent manera:

python replace.py -file:articles.txt -fix:exemple1

El vostre fitxer user-fixes.py hauria de contenir almenys la següent variable:

fixes['exemple1'] = {
    'regex': True,
    'msg': {"exemple1": u"Bot: canviant possar per posar"},
    'replacements': [
        (r"(P|p)ossar", r"\1osar"),
        ]
    }

Example: Replacing multiple paragraphs[edit]

The original text of the page Meta:Sandbox is:

This page is for any tests.

Welcome to the sandbox!

If you want to switch the statement (the second one goes before the first one), you type the following syntax:

replace.py -page:Meta:Sandbox -regex "This page is for any tests.\r\n\r\nWelcome to the sandbox!" "Welcome to the sandbox!\n\nThis page is for any tests."

To add a new line we use \n.

External links[edit]