Proyecto Phabricator: #PAWS

Manual:Pywikibot/PAWS

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/PAWS and the translation is 86% complete.

Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎čeština • ‎Ελληνικά • ‎русский • ‎українська • ‎اردو • ‎中文 • ‎日本語 • ‎한국어
Véase Wikitech:PAWS para más detalles.

Este documento proporciona una visión general rápida e interactiva de Pywikibot usando una notebook alojada en el entorno Wikimedia Labs usando PAWS (Pywikibot As Web Service).

Ten en cuenta que la terminal de PAWS solamente soporta "copiar" y "pegar" en los navegadores basados en Chromium (Google Chrome, Opera y Safari están bien). Si usas un navegador diferente, necesitarás escribir manualmente los comandos mencionados en esta guía. También puedes crear un archivo bash que contenga el comando y luego ejecutar en la terminal con bash file.sh.

Crea una cuenta Wikimedia

Para seguir esta guía solamente necesitas una cuenta en el proyecto Wikimedia.

Una vez hayas creado una cuenta por favor, visita https://test.wikipedia.org/ y comprueba que tu nombre de usuario aparece en la esquina superior derecha (esto funciona en torno a T120327).

Iniciar sesión en una notebook

Para iniciar una notebook alojada, ve a https://paws.wmflabs.org

Haz clic en "Sign in with MediaWiki", y haz clic en "Permitir" cuando te pregunte si apruebas el "Uso OAuth". La primera vez que accedes a PAWS necesitas crear un servidor. Haz clic en el botón verde "Start my Server". Es normal que tengas que esperar unos cuantos minutos para iniciar el nuevo servidor.

Una vez esté completado, serás redirigido a una URL como https://paws.wmflabs.org/paws/user/<nombre de usuario>/tree.

Iniciar una terminal

Para iniciar una nueva terminal interactiva:

  1. Ve al inicio de PAWS.
  2. Haz clic en 'New' en el lado derecho y selecciona 'Terminal'.

Esto abrirá una nueva ventana con la URL https://paws.wmflabs.org/paws/user/<nombre de usuario>/terminals/1, con una línea de comandos '$' de Linux.

Puedes añadir la URL a tus marcadores y volver a la terminal en cualquier momento, incluso después de haber cerrado tu navegador o apagar el ordenador.

Esta terminal no es un emulador. Es una cónsola bash real, parte de una instalación Linux establecida en un contenedor Docker, por lo que puedes utilizar cualquier comando bash, y usar cualquier comando disponible en el sistema Linux que ha sido instalado.

Para ver algunos comandos disponibles, usa

ls

.

$ ls /bin/
bash          cat            domainname  journalctl  mkdir          pwd         stty                            tar           zcmp
unzip2       chacl          echo        kill        mknod          rbash       su                              tempfile      zdiff
../..
$ ls /usr/bin/
2to3-3.4                 dvipdf                     lcf                         printf               systemd-path                         
X11                      dwp                        ld                          prlimit              systemd-run
../..

Login to the wiki

This will establish your account on the server and allow you to log in from the command line.

El siguiente comando debería confirmar que puedes conectarte a https://test.wikipedia.org/ . Usa OAuth, por lo que no necesitas introducir una contraseña.

$ pwb.py login
Logging in to test:test as <username>
Logged in on test:test as <username>.

You can connect pywikibot to a different wiki by creating a file named user-config.py in your $HOME directory (/home/paws) and adding mylang and family variables:

mylang = 'test'
family = 'wikipedia'

Crear una página

Para crear una página, introduce el siguiente comando en la terminal, sustituyendo '<username>' con tu nombre de usuario, y pulsa 'Y' cuando te lo solicite para aceptar tus cambios:

$ pwb.py add_text -up -talk -page:"User talk:<username>" -text:"Hello. ~~~~"
Loading User talk:<username>...

>>> User talk:<username> <<<
@@ -0,0 +1 @@
+ Hello. ~~~~

Do you want to accept these changes? ([Y]es, [N]o, [a]ll, open in [b]rowser): Y
Page [[User talk:<username>]] saved

Has editado la wiki. Puedes ver tus cambios abriendo https://test.wikipedia.org/wiki/User_talk:<nombre de usuario> en tu navegador web.

Puedes leer más sobre cada uno de estos scripts de línea de comandos con la opción '-help' de la línea de comandos.

$ pwb.py add_text -help
...

Extraer una página

Puedes extraer muchas páginas con el comando "listpages".

Para obtener el contenido de la página creada en la sección anterior, introduce el siguiente comando:

$ pwb.py listpages -page:"User talk:<username>" -save
   1 <username>
Saving User talk:<username> to /home/paws/User_talk_<username>
1 page(s) found

Ahora deberías encontrar la página guardada en tu lista de archivos PAWS.

Un ejemplo real de script

Cuando un sitio web usado en Wikipedia cambia sus URLs, los enlaces en Wikipedia se desactualizan, y posiblemente se conviertan en enlaces rotos si el sitio web no redirige desde las antiguas URLs a las nuevas. Por ejemplo, la Encyclopedia Britannica (EB) ha cambiado sus enlaces, moviendo sus páginas desde http://www.britannica.com/EBchecked/media/ a http://www.britannica.com/topic/[topic name]/images-videos/*. Puedes encontrar una lista de usos de la URL antigua en la Wikipedia en inglés en https://en.wikipedia.org/wiki/Special:LinkSearch/http://www.britannica.com/EBchecked/media . Actualizar todos estos enlaces manualmente consumiría mucho tiempo. Por suerte, EB ha mantenido redirecciones desde sus antiguas URLs a las nuevas URLs, por lo que no necesita ser corregido inmediatamente.

Para un ejemplo más simple, la Wikipedia en inglés actualmente contiene enlace a http://britannica.com/EBchecked/ en vez de a http://www.britannica.com/EBchecked/; es decir, falta el subdominio 'www.' en la URL.

En este momento hay 14 casos en la Wikipedia en inglés: https://en.wikipedia.org/wiki/Special:LinkSearch/http://britannica.com/EBchecked/

Wikipedia en otros idiomas también tiene este problema. Por ejemplo, hay un caso en la Wikipedia en alemán: https://de.wikipedia.org/wiki/Spezial:Weblinksuche/http://britannica.com/EBchecked/

Para arreglar todos estos enlaces, podemos usar el script replace.py de Pywikibot. En esta demostración usaremos el parámetro '-simulate' para evitar escribir la wiki, tal y como indican las reglas estrictas sobre las edición automática de la Wikipedia en español.

Primero vamos a obtener un lista de las páginas con el enlace http://britannica.com/EBchecked/.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

Ahora comprobamos que estas páginas tenga de verdad la URL literal en la página; es decir, que no estén usando una plantilla.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

Ahora usamos 'replace' para añadir el subdominio "www." que falta.

$ pwb.py replace -lang:en -simulate -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked" "http://britannica.com/EBchecked/" "http://www.britannica.com/EBchecked/"
The summary message for the command line replacements will be something like: Bot: Automated text replacement  (-http://britannica.com/EBchecked/ +http://www.britannica.com/EBchecked/)
Press Enter to use this automatic message, or enter a description of the
changes your bot will make: 
Logging in to wikipedia:en as <username>
Retrieving 14 pages from wikipedia:en.
Retrieving 14 pages from wikipedia:en.


>>> Stephen I of Hungary <<<
@@ -47 +47 @@
- Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}
+ Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://www.britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}

Do you want to accept these changes? ([y]es, [N]o, [e]dit, open in [b]rowser, [a]ll, [q]uit): N

...

En PAWS, y en cualquier terminal con soporte de color, la diferencia de los cambios mostrará el "www." añadido en color verde, haciendo más fácil encontrar los cambios propuestos.

Dentro de Pywikibot

Advertencia Advertencia: Don't write passwords in files of server, the files are public!

Lo siguiente será usar PAWS en una sesión de Python.

  1. Ve al inicio de PAWS.
  2. Haz clic en 'New' en el lado derecho y selecciona 'Python 3'.

Esto abrirá una nueva ventana.

En la caja de texto, introduce lo siguiente y en el menú 'Cell' selecciona 'Run' (o pulsa shift+enter para ejecutarlo).

import pywikibot

Aparecerá una nueva caja de texto. Ejecuta lo siguiente para crear un objeto APISite conectado a https://test.wikipedia.org/:

site = pywikibot.Site('test', 'wikipedia')

Describe "site" introduciéndolo en la nueva caja de texto y selecciona "Run".

site

Esto debería mostrar:

 Out[3]: APISite("test", "wikipedia")

Crea un objeto "page":

page = pywikibot.Page(site, 'test')

Comprueba si existe ejecutando:

page.exists()

Esto debería mostrar:

 VERBOSE:pywiki:Found 1 wikipedia:test processes running, including this one.
 Out[5]: True

Muestra el texto en la página:

page.text

Cambia el texto en la página:

page.text = 'Hello world'

Guarda la página en la wiki:

page.save()

Las respuesta debería ser:

  Page [[Test]] saved
  INFO:pywiki:Page [[Test]] saved

La notebook de Python 3 interactivo permite ejecutar muchas líneas juntas. Lo anterior podría ser colocado en una sola caja de texto y ejecutarse:

import pywikibot

site = pywikibot.Site('test', 'wikipedia')
page = pywikibot.Page(site, 'test')

page.text = 'Hello world!'
page.save()

El registro de tu sesión interactiva de Python puede guardarse o descargarse para una referencia futura.

Accediendo a la documentación online en PAWS

La documentación de Pywikibot se puede encontrar en https://doc.wikimedia.org/pywikibot/index.html . Está extraída principalmente de docstrings, que pueden ser cargadas en la notebook de Python 3 interactivo usando función incorporada de Python help().

Por ejemplo, para ver los argumentos para el método "save" anterior, funciona tanto:

help(page.save)

como

help(pywikibot.Page.save)


Editando scripts de Pywikibot

La librería Pywikibot y los scripts están localizados en /srv/paws, y son de solo-lectura. La librería Pywikibot instalada no puede ser modificada en PAWS.

Los scripts pueden ser modificados copiándolos a tu inicio de PAWS.

Por ejemplo, para ejecutar una modificación de "checkimages.py":

  1. En la terminal, introduce cp /srv/paws/pwb/scripts/checkimages.py ~
  2. En el navegador, ve a tu inicio de PAWS y haz clic en el archivo checkimages.py.
  3. Puedes editar el archivo en el navegador. Edita el código ―de momento, después del código start = time.time() en la línea 1775, añade una nueva línea (1776) que muestre tu nombre: print("MINOMBRE's version.").
  4. En la interfaz de edición, usa el menú "File" y haz clic en 'Save' para guardar tus modificaciones.
  5. En la terminal, introduce pwb.py ~/checkimages.py -simulate para ejecutar el script modificado.

See also


If you need more help on setting up your Pywikibot visit the IRC channel #pywikibotconectar @ freenode server or Pywikibot mailing list.