# Tutorial de bots/Utilitzar pywikipediabot
## Què fa cada bot de pywikipedia?

Cada bot es pot obrir amb un editor de text (preferentment amb un bloc de notes, tot i que també serveixen IDLE, OpenOffice, Microsoft Word,...). A dins, hi trobaràs gairebé sempre una breu descripció de què fa el bot, i quina és la seva sintaxi correcta.

### Ordres generals (arguments)

* -start:! Comença a operar des de la primera pàgina del projecte en ordre alfabètic.
* -start:B Comença a operar des de la pàgina B o la següent en ordre alfagètic. No sempre és necessari. A catall.py només es necessita posar el nom directament.
* -links:Página A Només revisa les pàgines que enllacen amb la Pàgina A.
* -cat:Principal Revisa només les pàgines que pertanyen a la Categoria:Principal.
Els arguments s'escriuren en la mateixa línia que el nom d'arxiu python a executar, separant-los per un espai. Tots comencen amb un guió. Si el nom de la pàgina o element incorpora un espai, s'haurà d'escrirue entre cometes.

## Login.py

Quan iniciïs el bot, això serà el primer que has d'executar. Des del moment que t'apareix la contrasenya et mantindràs identificat mentre deixis la finestra oberta. Abans, hauràs hagut de crear un arxiu de text pla anomenat user-config.py.

### Els arguments que accepta són

* -pass:XXX Substituint XXX per la teva contrasenya, s'identificà automàticament. Ves amb compte, perquè la contrasenya serà visible, no s'oculta! Si ho prefereixes, no utilitzis aquest argument: després et demanarà cada cop la contrasenya, i llavors sí que s'ocultarà.
* -sysop S'identifica com a bot, però amb permisos d'administrador.
* -all El bot s'identificarà en tots els projectes que hagis escrit a user-config.py.
* -force Si utilitzes -all, aquest argument ignora si l'usuari estava registrat.
Acabarà confirmant-te que estàs registrat.

## Catall.py

Aquest arxiu és especialista en fer categoritzacions massives. Per defecte, si no se li indica res, comença a fer-ho per la lletra A. Si indiques un nom de pàgina, començarà per aquesta i seguirà en ordre alfabètic.

### Els arguments que accepta són

* -onlynew Només categoritza les pàgines que no tenen cap categoria.
Et dirà el nom de la pàgina, ies categories que ja existeixen, i et permetrà escriure noves categories, de les quals només hauràs d'escriure els noms (ell, automàticament, ja et generarà el codi [[Categoria:XXX]]..

## Category.py

Aquest bot utilitza la següent sintaxi:
Una acció pot ser:
* add Afegeix massivament una categoria a una llista de pàgines.
* remove Elimina l'etiqueta d'una categoria en el conjunt de pàgines que estiguin a una altra categoria.
* move Mou totes les pàgines d'una categoria a una altra.
* tidy Ordena una categoria movent les seves pàgines a les subcategories.
* tree Mostra un arbre de subcategories en una categoria concreta.
Les opcions poden ser:
* person Ordena les pàgines de persones segons el seu cognom (en cas d'utilitzar la funció add).
* rebuild Reseteja la base de dades.

## Interwiki.py

Interwiki.py és un bot dissenyat especialment per verificar que tots els enllaços interllengüa existeixen i són els correctes. Tot i que no és gaire emocionant, és un bot molt fàcil d'utilitzar. El procés és simple: busca als interwikis existents a la pàgina, i després segueix buscant en les pàgines d'altres idiomes. Quan troba totes les equivalències possibles, modifica la pàgina escrivint-ho tots els interwikis que ha trobat.

### Els arguments que accepta són

* -force Força les accions, és a dir: no demana permís per a fer canvis importants, com seria eliminar un interwiki perquè no existeix la pàgina a la qual enllaça.
* -always Força a guardar canvis sempre, encara que no s'hagi de canviar ni una lletra de la pàgina.
* -hint: Utilitzat del mode -hint:de:Anweisung indica al bot per on ha de començar.
N'existeixen fins a 30 arguments diferents. Si ho preferiu, llegiu Interwiki.py per obtenir més informació..

### Una sola pàgina

El més senzill de fer amb aquest bot, és comprovar una sola pàgina:
* Tecleja a la pantalla negra interwiki.py (com sempre, comprova abans que estiguis a la carpeta correcta).
* El programa et preguntarà què és el que vols analitzar. Tecleja el nom de la pàgina en concret.
* El bot ho comprovarà tot; en cas que tingui dubtes et farà preguntes, i si no hi detecta res, dirà "No changes needed".

### Més d'una pàgina

Si vols comprovar més d'una pàgina simultàniament, el procés és una mica més complex. Hauràs d'utilitzar diversos paràmetres:
* -start:XXX especifica on començarà l'anàlisi, en ordre alfabètic.
* -autonomous fa que el bot treballi sol, guardant els dubtes en un arxiu enlloc de preguntar-los.
* -continue Continúa des de l'última página que es va analitzar abans d'aturar el bot per últim cop.
Per exemple, per analitzar totes les pàgines sense que et faci preguntes, l'ordre seria "interwiki.py -start:! -autonomous"
Si el que volguessis fos començar per la lletra B, l'ordre correcta seria "interwiki.py -start:B"
   * NOTA: Amb aquesta ordre el bot et demanarà confirmació a cada dubte, perquè no has fet servir la funció -autonomous. Per exemple, et preguntarà què fer quan trobi dos interwikis que enllacen a un sol idioma en una mateixa pàgina.

## Replace.py

Aquest bot s'ha d'iniciar utilitzant paràmetres que indica. A més, si es volen recanviar totes les pàgines, cal escriure -start:!, i si es vol començar per una pàgina concreta s'ha d'utilitzar -start:nomdelapàgina i a partir d'aquí continuarà per ordre alfabètic. Si només es volen revisar les pàgines d'una categoria, cal utilitzar -cat:nomdelacategoria. Per últim, si es volen revisar les pàgines que enllacen a la pàgina X, cal utilitzar el codi -links:X.
Es poden utilitzar diverses paraules per recanviar en una sola execució del bot.

## Touch.py

Aquest bot s'utilitza quan és necessari refrescar alguna llista de pàgines, com per exemple les pàgines òrfenes, què hi enllaça, categories aplicades mitjançant plantilles, etc...
La seva tasca consisteix en guardar cada pàgina sense fer-hi cap modificació, pel que no deixa rastre a l'historial no als canvis recents. Però quan fa això, s'actualitzen les llistes que contenen un enllaç a aquesta pàgina, de manera que es pot treure aquest enllaç si ja no hi ha de ser. Perquè tinguin un bon efecte, s'ha de fer amt totes les pàgines a on enllaça.

### Arguments que accepta

* -start:XXX Per indicar-li per quina pàgina ha de començar.
* -file:XXX Per indicar-li quin és l'arxiu que ha de manipular.
* -ref:XXX Per indicar-li que ha d'actuar amb les pàgines que enllacen a la pàgina en qüestió.
* -links:XXX Per indicar-li que ha de modificar les pàgines que tenen un enllaç a la pàgina on escrius.
* -cat:XXX Per indicar-li que modifiqui les pàgines categoritzades en una categoria.
* -redir Força a actuar amb les pàgines de redirecció. En cas contrari, ometria aquestes pàgines.
En cada cas, cal substituir XXX pel nom de la categoria, pàgina o arxiu al qual es refereix.
Si no especifiques paràmetres et sortirà un text d'ajuda amb els paràmetres possibles.

## Redirect.py

Aquest bot corregeix redireccions dobles (les redireccions han d'enllaçar a una pàgina existent, no redireccionada). També elimina les pàgines que redireccionen a pàgines inexistents o esborrades, però per això és necessari tenir privilegis d'administrador.
No és necessari utilitzar arguments, només cal escriure un d'aquests dos codis a continació de redirect.py:
* double (per reparar redireccions dobles)
* broken (per esborrar pàgines amb redireccions incorrectes)

## Template.py

Aquest bot recanvia una plantilla per una altra. També és capaç de fer el canvi de format de {{msg:...}} al format actual.
Exemple de funcionament: python template.py "Cities in Washington" "Cities in Washington State"
És necessari posar els noms entre cometes sempre que existeixin espais en el nom (més d'una paraula). El programma consultarà la pàgina de la plantilla i buscarà totes les pàgines que l'estiguin utilitzant, fent el recanvi automàticament.
Arguments:
* -remove Elimina la plantilla de tots els articles.
* -xml Recupera la informació des de la base de dades local. Si no s'especifica aquest argument, la informació es carregarà des de la pàgina de manteniment de la wiki en qüestió. Aquest argument també es pot escriure com a "-xml:filename.xml".

## Per a més informació

meta:Category:Pywikibot