Manual:Pywikibot/replace.py/ca

From MediaWiki.org
Jump to navigation Jump to search
Altres idiomes: English  • català • français • magyar • italiano • русский
Wikimedia-logo-meta.png

This page was moved from MetaWiki.
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.

Git logo
Wikimedia Git repository has this file: scripts/replace.py

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]