# Tutorial de bots/Versión para imprimir

* Si imprimes esta página, o eliges la opción de Vista preliminar de impresión de tu navegador, verás que desaparecen este cuadro y los elementos de navegación de arriba y de la izquierda, pues no son útiles en una versión impresa.
* Pulsando antes en Refrescar esta página te asegurarás de obtener los últimos cambios del libro antes de imprimirlo.
* Para más información, puedes ver Wikilibros:Versión para imprimir.

# Portada de Este Manual

Este tutorial explica como instalar y utilizar el sistema de bots del proyecto de Pywikibot para automatizar o simplificar tareas de edición en cualquier proyecto de Wikimedia. El tutorial intenta dar una introducción al uso del bot para realizar automáticamente numerosas ediciones, y da por sentado que el usuario ya está familiarizado con la interfaz de MediaWiki y las convenciones de la misma. Si necesitas ayuda en este sentido, por favor, consulta Manual wiki y Wikilibros:Manual de Estilo antes de comenzar.
* Programas necesarios
* Descargar el bot
* Usar pywikibot
Versión para imprimir Consulte la versión para imprimir de este libro

## Enlaces externos

* Taller "Bots en Wikipedia: Introducción a pywikipediabot", por emijrp y nessa_los (Primera edición)

# Descarga del Bot

El último paso es descargar el código del bot, llamado pywikipedia. Puedes obtener el paquete completo aquí, aunque tendrás problema a la hora de actualizar los repositorios. No obstante es la forma más sencilla de hacerse con el código. Si deseas obtener la versión más actualizada, tendrás que descargártela mediante Subversion (SVN)

## Sistemas tipo UNIX
### Mediante SVN

Si tienes SVN instalado, entonces ejecuta los siguientes comandos en un terminal, situándote en un directorio donde descargará el código.

### Mediante descarga directa

A través del sitio web de Toolserver se puede descargar una versión reciente de la librería. La dirección es:
http://toolserver.org/~valhallasw/pywiki/

## Microsoft Windows
### SVN

Si ya instalaste TortoiseSVN, sigue estos pasos:
* Elige, usando el explorador de Windows, la carpeta en la que quieres instalar el paquete
* Haz un clic con el botón derecho en dicha carpeta
* Si has instalado TortoiseSVN correctamente, te aparecerá la opción "SVN Checkout...". Haz clic en esa opción y te aperecerá una ventana.
* En la primera caja de texto, pon la siguiente dirección:
http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ verificas que en la segunda caja esté la dirección de la carpeta correctamente y haz clic en ok

### Abriendo el bot

Si abres la carpeta en la que tienes tu bot y haces clic en las diversas funciones te aparece brevemente una pantalla de fondo negro y texto blanco y luego desaparece. Qué tontería, ¿no? Para hacer funcionar el bot con más eficacia hay un proceso mucho mejor.
* Haz clic en el botón de "Inicio" o "Start"
* Elige "Ejecutar..." o "Run..."
* Teclea en la caja de texto "cmd.exe" o "command.com", dependiendo de la versión de Windows que tengas; intenta los dos.
* Te aparece una ventana con fondo negro y texto blanco de la que tal vez no sepas usar. No te preocupes, no es necesario entenderla mucho.
* Suponiendo que tienes un solo disco duro, teclea "cd \"
* Ahora, estás en la raíz de tu disco duro, desde donde puedes ir a cualquier otra carpeta.
* De acuerdo, tienes que ir a la carpeta en la que tienes tu bot usando la orden "cd"; esta carpeta varía de un usuario a otro. Teclea "cd carpeta donde está tu bot".
* Desde ahí, puedes teclear "interwiki.py", o "replace.py", o lo que sea. Sólo tienes que añadir ".py" al título del bot.

## Antes de empezar

Ahora tienes todo lo que necesitas menos una cosita, tu fichero de usuario, donde configurarás el nombre de tu bot y el proyecto con el que estés trabajando:
* Abre un editor de texto plano o sin formato (o software análogo).
* En la primera línea (sin texto en negrita, formato, estilo, ni nada así) escribe:
Se supone que vas a estar usando el bot en es.wikipedia. Si no es así, puedes cambiar "es" por cualquier otro dominio; por ejemplo: en, eo, it, fr... y sino estás trabajando en Wikipedia, puedes cambiar 'wikipedia' por otro nombre de proyecto como ser wikibooks', 'wiktionary', etc.
    3. En las siguientes líneas escribe
    4. Agregar en la línea siguiente
reemplazando "TUNOMBREDEUSUARIO" por tu verdadero nombre de usuario, el que está registrado como bot, preferiblemente. Puedes añadir más de un dominio, continuando en las siguientes líneas y modificando los valores pertinentes. De esta forma cada vez que quieras identificarte tendrás que especificar el proyecto y el idioma, como se explica en login.py

### Bibliotecarios

Para aquellos bibliotecarios que deseen dar a su bot permisos de bibliotecario para borrar páginas (redirecciones rotas, etc) o arreglar interwikis en páginas protegidas, deben añadir a continuación:
Deberás iniciar la sesión con tu nombre de bibliotecario solamente cuando quieras dar permisos especiales a tu Bot. NOTA: Usa con cuidado los derechos de bibliotecario. Puedes armar un buen lío.
* Guarda el documento que acabas de crear con el bloc de notas como "user-config.py" en la misma carpeta que están todos tus bots.
* Ahora, en la ventana famosa negra de texto blanco, escribe "python login.py" (asegúrate que estás en la carpeta correcta). Te pide la contraseña y se la das.
      * NOTA: Cuando tecleas la contraseña no aparecen las letras, ni asteriscos, nada. Ten por seguro, sin embargo, que todo cuenta (mayúsculas, espacios, bloqueo de mayúsculas, etc.). Si tecleas la contraseña mal, lo mejor que puedes hacer es presionar CTRL+C. De esta forma no es necesario volver a abrir la ventana de comandos, cancela todo y puedes volver a usar la orden "login.py".

# Python

El sistema de bots de pywikipedia está escrito en Python. Si bien el entorno de programación de Python es estándar en la mayoría de las distribuciones GNU/Linux, normalmente no está instalado en los equipos que corren Microsoft Windows. Es necesario disponer de la versión 2.3 o posterior para emplear el bot.
    Importante: NO descargues la versión 3.x.x, ya que no es compatible con el bot, es preferible utilizar la 2.6.x o 2.5.x

## Sistemas tipo UNIX

Si quieres comprobar si Python está instalado, abre una consola y escribe:
Si Python está instalado, recibirás un mensaje como:
Si, por el contrario, la orden arroja un error de programa no encontrado o similar, probablemente no cuentes con Python, y necesitarás descargarlo. Sigue las instrucciones correspondientes a tu sistema operativo para hacerlo.
Para compilar e instalar Python desde código fuente, puedes descargar un tarball comprimido de http://www.python.org/download/.
Es posible que exista un paquete precompilado para tu distribución. Consulta el archivo de software de la misma para asegurarte de ello.

### Debian GNU/Linux

Debian dispone de una versión adecuada de Python. Para instalarla en sistemas basados en Debian, sencillamente escribiremos:
$ sudo apt-get install python

### Fedora y similares

Hay paquetes RPM actualizados en el sitio web de Python.

## Mac OS X

Los usuarios de Mac OS X pueden optar por compilar su propio Python, al igual que en cualquier otra versión de UNIX o descargar el instalador automático del sitio de Python. Si optas por esta última opción, ten en cuenta que no será la última versión; podrás correr el bot de pywikipedia, pero no estarás completamente actualizado.

## Microsoft Windows

La última versión de Python está disponible aquí en un instalador de Windows. Descarga el programa y sigue las instrucciones en pantalla para instalar Python en tu equipo.

# Subversion

Subversion (SVN) es un método para bajar archivos directamente de un servidor específico a tu computadora. La herramienta facilitará la descarga al igual que la actualización. Además, garantiza que bajes siempre la versión más reciente del paquete de bots, ya que casi todos los días se modifica. Para poder descargar y actualizar tu versión del código de Pywikipedia, deberás disponer de un cliente SVN, un sistema diseñado para mantener actualizados repositorios de software.

## Sistemas tipo UNIX

SVN es parte de la mayoría de las instalaciones de sistemas UNIX. Si no estuviera instalado tendrás que instalar el paquete de Subversion que estará disponible en los repositorios de la distribución, o utilizando (para Debian y derivados):
$ sudo apt-get install subversion

## Microsoft Windows

Debes instalar este programa: TortoiseSVN

# Usar pywikipedia
## ¿Qué hace cada bot de pywikipedia?

Cada bot se puede abrir con un editor de texto (Bloc de notas, IDLE, Word, etc.) y se encontrará casi siempre una breve descripción sobre qué es lo que hace el bot y cual es la sintaxis correcta.

### Órdenes generales (argumentos)

* -start:! Comienza a operar desde la primera página del proyecto en orden alfabético.
* -start:B Comienza a operar desde la página B (o la siguiente alfabéticamente) en adelante. No siempre es necesaria. En catall.py sólo es necesario poner el nombre directamente.
* -links:Página_A Sólo revisa las páginas que enlacen en Página A.
* -cat:Principal Revisa únicamente las páginas pertenecientes a la Categoría:Principal.
Los argumentos se escriben en la misma línea que el nombre del archivo python a ejecutar, separándolos con un espacio. Todos comienzan con un guión. Si el nombre de la página o elemento incorpora un espacio deberá ser escrito entre comillas.

## Login.py

Es lo primero que debes ejecutar cuando inicias el bot. Desde el momento que acepte la contraseña estarás identificado mientras mantengas la ventana abierta. Antes has debido crear un archivo de texto plano llamado user-config.py.

### Los argumentos que acepta son

* -pass:XXX Sustituyendo XXX por tu contraseña se identifica automáticamente. ¡¡Cuidado que la contraseña no se oculta!!. Si no usas el argumento te pide la contraseña, en ese momento sí se oculta.
* -sysop Se identifica como bot pero con permisos de bibliotecario.
* -all El bot se identifica en todos los proyectos que hayas escrito en user-config.py.
* -force Cuando usas -all ignora si el usuario estaba en ese momento registrado.
Acaba dando una confirmación de que estás registrado.

## Catall.py

Se usará cuando se quieran categorizar las páginas masivamente. Si no se indican argumentos empezará por la A. Si indicas un nombre comenzará por la página que corresponda.

### Los argumentos que acepta son

* -onlynew Sólo categoriza las páginas que no tienen ninguna categoría.
Te dice el nombre de la página, las categorías que ya tiene, y te deja escribir nuevas categorías, que sólo tendrás que escribir los nombres, nunca precediendo de la palabra categoría "Categoría:XXX".

## Category.py

Sintaxis:
La acción puede ser:
* add Añade masivamente una categoría a una lista de páginas
* remove Elimina categoría del conjunto de páginas en otra categoría
* move Mueve todas las páginas de una categoría a otra
* tidy Ordena una categoría moviendo sus páginas a subcategorías
* tree Muestra un árbol de subcategorías de una categoría dada
Las opciones pueden ser:
* person Lista personas por su último nombre (para acción 'add')
* rebuild Resetea la base de datos

## Interwiki.py

Interwiki.py es un bot diseñado para verificar que todos los enlaces interlingüísticos existan y sean correctos. Es un bot muy fácil de utilizar y de los más populares. No es muy divertido, pero el proceso es simple: Busca los interwikis existentes en la página, y luego sigue buscando en las páginas de otros idiomas, cuando encuentra todas las equivalencias posibles edita la página poniendo todos los interwikis que ha encontrado.

### Los argumentos que acepta son

* -force No pide permiso para hacer cambios importantes como eliminar un interwiki porque no exista la página a la que enlaza.
* -always Hace guarda cambios aunque un solo byte se tenga que cambiar. No sólo en cambios importantes.
* -hint: Usado como -hint:de:Anweisung da una idea al bot por dónde comenzar.
...Hasta 30 argumentos. Leer Interwiki.py para más información.

### Una sola página

Lo más fácil (y menos útil) es comprobar una sola página:
* En la pantalla negra teclea interwiki.py (otra vez, asegúrate que estés en la carpeta correcta).
* Te pregunta cuál es la página que quieres analizar.
* Tecleas el título de la página (ej: Helen Keller)
* Checa todo y te pregunta si tiene dudas y si no hay nada que hacer te dice "No changes needed"

### Más de una página

Para comprobar más de una página, se complica un poco el proceso: tienes que usar parámetros:
* -start:XXX especifica dónde comenzar, por orden alfabético.
* -autonomous hace que el bot opere solito, poniendo todas sus dudas en un documento en tu computadora.
* -continue Continúa desde la última página que se verificó antes de que se detuviera el bot.
Entonces para checar todas las páginas, sin que te haga preguntas o te pida confirmaciones, darías la orden "interwiki.py -start:! -autonomous"
Si quisieras checar todas las páginas empezando con la letra "B", darías la orden "interwiki.py -start:B"
   * NOTA: Con esta última orden, el bot te va a pedir confirmaciones porque no has puesto -autonomous. Te preguntará cuál es el enlace correcto si encuentra dos interwikis enlazados al mismo idioma.

## Replace.py

Debe iniciarse con parámetros. Si no se hace, y se dejan vacías las siguientes respuestas, se muestra a continuación la lista de parámetros que acepta. Si se quiere reemplazar todas las páginas, debe añadirse -start:!, si se quiere empezar por una página concreta se pone -start:Página (y se continuará en orden alfabético), si sólo se quiere revisar las páginas de una categoría, se usa -cat:Nombre de la categoría, y si se quiere revisar las páginas a las que enlaza X se usa -links:X.
Se pueden poner varias palabras a reemplazar.

## Touch.py

Se usa para cuando se necesita refrescar alguna lista de páginas como: páginas huérfanas, lo que enlaza aquí, categorías aplicadas mediante plantillas, etc...
Su trabajo consiste en guardar cada página sin hacer ninguna modificación, por lo que no deja rastro en el historial ni en cambios recientes. Cuando se hace esto, se actualizan las listas que contienen un enlace a esa página, pudiendo quitar ese enlace si ya no debe estar ahí. Para que tenga un buen efecto se hace con todas las páginas a las que enlace.

### Argumentos que acepta

* -start:XXX Para indicarle a partir de la página que debe empezar.
* -file:XXX Para indicarle el archivo que tiene que "tocar".
* -ref:XXX Para indicar que debe actuar con las páginas cuyos enlaces se encuentren en la página en cuestión.
* -links:XXX Para indicarle que modifique las páginas que sean enlazadas desde la página que escribas.
* -cat:XXX Para indicarle que modifique las páginas categorizadas con una categoría.
* -redir Fuerza a actuar con las páginas con redirecciones. En otro caso las saltaría.
Siendo XXX el nombre de la categoría, página, o archivo al que se refiera.
Si no pones parámetros te sale un texto de ayuda con parámetros posibles.

## Redirect.py

Corrige redirecciones dobles (las redirecciones deben enlazar a una página existente, no redireccionada, entre otras cosas, para evitar bucles). También elimina páginas que redireccionan a páginas inexistentes o borradas, pero se necesita ser bibliotecario. No es necesario poner argumentos, sólo poner a continuación de redirect.py:
* double (para reparar redirecciones dobles)
* broken (para borrar páginas con redirecciones incorrectas)

## Template.py

Este programa reemplaza una plantilla con otra, y convierte el antiguo formato {{msg:...}} al nuevo formato.
Ejemplo: python template.py "Cities in Washington" "Cities in Washington State"
Se deben poner comillas por existir espacios. El programa consultará la página de la plantilla y buscará todas las páginas que la estén usando y la reemplaza automáticamente.
Argumentos:
* -remove Elimina la plantilla de todos los artículos.
* -xml retrieve information from a local dump (http://download.wikimedia.org). If this argument isn't given, info will be loaded from the maintenance page of the live wiki. Argument can also be given as "-xml:filename.xml".
* otros: El primer argumento es la plantilla antigua, el segundo es el nuevo nombre. Si sólo se da un argumento, el bot sustituye automáticamente la plantilla por su contenido. Ésto se puede hacer manualmente empezando la plantilla con "subst:" como en {{subst:...}}. No olvides poner comillas si la plantilla tiene espacios.

## Para más información

meta:Category:Pywikipedia