![]() |
Los robots o bots son procesos automáticos que interactúan con Wikipedia (y otros proyectos de Wikimedia) como si fueran editores humanos. Esta página intenta explicar cómo llevar a cabo el desarrollo de un bot para su uso en proyectos de Wikimedia y gran parte de esto es transferible a otras wikis basadas en MediaWiki. La explicación está dirigida principalmente a aquellos que tienen alguna experiencia previa en programación, pero no están seguros de cómo aplicar este conocimiento para crear un bot de Wikipedia.
¿Por qué necesitaría crear un bot?
Los bots pueden automatizar tareas y realizarlas mucho más rápido que los humanos. Si tiene una tarea simple que necesita realizar muchas veces (un ejemplo podría ser agregar una plantilla a todas las páginas en una categoría con 1000 páginas), entonces esta es una tarea más adecuada para un bot que para un humano.
Consideraciones antes de crear un bot
Reutilizar bots existentes
A menudo, es mucho más sencillo solicitar un trabajo de bot a un bot existente. Si solo tiene solicitudes periódicas o no se siente cómodo con la programación, esta suele ser la mejor solución. Estas solicitudes se pueden realizar en Wikipedia: Solicitudes de bot . Además, hay una serie de herramientas disponibles para cualquier persona. La mayoría de ellos toman la forma de navegadores web mejorados con funcionalidad específica de Mediawiki. El más popular de ellos es AutoWikiBrowser (AWB), un navegador diseñado específicamente para ayudar con la edición en Wikipedia y otros proyectos de Wikimedia. Puede encontrar una lista mayoritariamente completa de herramientas en Wikipedia: Herramientas / Herramientas de edición . Las herramientas, como AWB, a menudo se pueden operar con poca o ninguna comprensión de la programación.
Reutilizar la base de código
Si decide que necesita un bot propio debido a la frecuencia o la novedad de sus requisitos, no es necesario que escriba uno desde cero. Ya hay varios bots ejecutándose en Wikipedia y muchos de estos bots publican su código fuente, que a veces se puede reutilizar con poco tiempo de desarrollo adicional. También hay varios marcos de bot estándar disponibles. La modificación de un bot existente o el uso de un marco acelera enormemente el tiempo de desarrollo. Además, debido a que estas bases de código son de uso común y son proyectos comunitarios mantenidos, es mucho más fácil obtener bots basados en estos marcos aprobados para su uso. El más popular y común de estos marcos es Pywikibot (PWB), un marco de bot escrito en Python . Está completamente documentado y probado y ya están disponibles muchos scripts Pywikibot estandarizados (instrucciones bot). Otros ejemplos de marcos bot se pueden encontrar a continuación . Para algunos de estos marcos de bots, como PWB, todo lo que se necesita para ejecutar el bot con éxito es una familiaridad general con los scripts (es importante actualizar estos marcos con regularidad).
Preguntas importantes
Escribir un nuevo bot requiere una gran capacidad de programación. Un bot completamente nuevo debe someterse a pruebas sustanciales antes de que se apruebe su funcionamiento normal. Para escribir un bot exitoso, la planificación es crucial. Las siguientes consideraciones son importantes:
- ¿El bot será asistido manualmente o completamente automatizado?
- ¿Creará el bot solo o con la ayuda de otros programadores?
- ¿Se registrarán las solicitudes, ediciones u otras acciones del bot? Si es así, ¿se almacenarán los registros en medios locales o en páginas wiki?
- ¿El bot se ejecutará dentro de un navegador web (por ejemplo, escrito en Javascript) o será un programa independiente?
- Si el bot es un programa independiente, ¿se ejecutará en su computadora local o en un servidor remoto como Toolforge ?
- Si el bot se ejecuta en un servidor remoto, ¿podrán otros editores operar el bot o iniciar su ejecución?
¿Cómo funciona un bot de Wikipedia?
Resumen de funcionamiento
![Wikieditcycle.png](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/0/0e/Wikieditcycle.png/180px-Wikieditcycle.png)
Al igual que un editor humano, un robot de Wikipedia lee las páginas de Wikipedia y realiza cambios donde cree que es necesario realizar cambios. La diferencia es que, aunque los bots son más rápidos y menos propensos a la fatiga que los humanos, no son tan brillantes como nosotros. Los bots son buenos en tareas repetitivas que tienen patrones fácilmente definidos, donde se deben tomar pocas decisiones.
En el caso más típico, un bot inicia sesión en su propia cuenta y solicita páginas de Wikipedia de la misma manera que lo hace un navegador, aunque no muestra la página en la pantalla, pero trabaja en ella en la memoria, y luego examina programáticamente el código de la página para ver si es necesario realizar algún cambio. Luego realiza y envía las ediciones para las que fue diseñado, nuevamente de la misma manera que lo haría un navegador.
Debido a que los bots acceden a las páginas de la misma manera que las personas, los bots pueden experimentar el mismo tipo de dificultades que los usuarios humanos. Pueden verse atrapados en conflictos de edición, tener tiempos de espera de página o encontrarse con otras complicaciones inesperadas al solicitar páginas o realizar ediciones. Debido a que el volumen de trabajo realizado por un bot es mayor que el realizado por una persona en vivo, es más probable que el bot encuentre estos problemas. Por lo tanto, es importante considerar estas situaciones al escribir un bot.
API para bots
Para realizar cambios en las páginas de Wikipedia, un bot necesariamente tiene que recuperar páginas de Wikipedia y devolver las ediciones. Hay varias interfaces de programación de aplicaciones (API) disponibles para ese propósito.
- API de MediaWiki (
api.php
). Esta biblioteca se escribió específicamente para permitir que los procesos automatizados, como los bots, realicen consultas y publiquen cambios. Los datos se devuelven en formato JSON (consulte los formatos de salida para obtener más detalles).- Estado: función incorporada de MediaWiki, disponible en todos los servidores de Wikimedia. Otros wikis que no pertenecen a Wikimedia pueden deshabilitar o restringir el acceso de escritura.
- También hay una zona de pruebas de API para aquellos que quieran probar las características de api.php.
- Especial: la exportación se puede utilizar para obtener una exportación masiva del contenido de la página en formato XML. Consulte Manual: Parámetros a Especial: Exportar para obtener argumentos;
- Estado: función incorporada de MediaWiki, disponible en todos los servidores de Wikimedia.
- Procesamiento de páginas sin procesar (wikitexto): enviar una solicitud
action=raw
o unaaction=raw&templates=expand
solicitud GET a index.php proporcionará el código fuente de wikitexto sin procesar de una página. Por ejemplo:https://en.wikipedia.org/w/index.php?title=Help:Creating_a_bot&action=raw
. Una consulta de API conaction=query∝=revisions&rvprop=content
oaction=query∝=revisions&rvprop=content&rvexpandtemplates=1
es aproximadamente equivalente y permite recuperar información adicional.- Estado: función incorporada de MediaWiki, disponible en todos los servidores de Wikimedia.
Algunos servidores web de Wikipedia están configurados para otorgar solicitudes de contenido comprimido ( gzip ). Esto se puede hacer incluyendo una línea "Accept-Encoding: gzip" en el encabezado de la solicitud HTTP; si el encabezado de respuesta HTTP contiene "Content-Encoding: gzip", el documento está en formato gzip; de lo contrario, está en el formato normal sin comprimir. Tenga en cuenta que esto es específico del servidor web y no del software MediaWiki. Es posible que otros sitios que utilizan MediaWiki no tengan esta función. Si está utilizando un marco de bot existente, debería manejar operaciones de bajo nivel como esta.
Iniciando sesión
Los bots aprobados deben iniciar sesión para realizar modificaciones. Aunque un bot puede realizar solicitudes de lectura sin iniciar sesión, los bots que hayan completado las pruebas deben iniciar sesión para todas las actividades. Los bots que inician sesión desde una cuenta con la bandera de bot pueden obtener más resultados por consulta de la API de Mediawiki (api.php). La mayoría de los marcos de bots deberían manejar el inicio de sesión y las cookies automáticamente, pero si no está utilizando un marco existente, deberá seguir estos pasos.
Por motivos de seguridad, los datos de inicio de sesión deben pasarse mediante el método HTTP POST . Debido a que los parámetros de las solicitudes HTTP GET son fácilmente visibles en la URL, los inicios de sesión a través de GET están deshabilitados.
Para iniciar la sesión de un bot usando la API de MediaWiki , se necesitan dos solicitudes:
Solicitud 1: esta es una solicitud GET para obtener un token de inicio de sesión
Solicitud 2: esta es una publicación POST para completar el inicio de sesión
- URL:
https://en.wikipedia.org/w/api.php?action=login&format=xml
- Parámetros POST:
lgname=BOTUSERNAME
lgpassword=BOTPASSWORD
lgtoken=TOKEN
donde TOKEN es el token del resultado anterior. Las cookies HTTP de la solicitud anterior también deben pasarse con la segunda solicitud.
Un intento de inicio de sesión exitoso resultará en que el servidor de Wikimedia establezca varias cookies HTTP . El bot debe guardar estas cookies y devolverlas cada vez que realiza una solicitud (esto es particularmente crucial para la edición). En la Wikipedia en inglés, se deben utilizar las siguientes cookies: enwikiUserID , enwikiToken y enwikiUserName . La cookie enwiki_session es necesaria para enviar una edición o realizar algún cambio; de lo contrario, se devolverá el mensaje de error MediaWiki: Session Fail Preview .
El inicio de sesión de la cuenta principal a través de "action = login" está obsoleto y puede dejar de funcionar sin previo aviso. Para continuar el inicio de sesión con "action = login", consulte Especial: BotPasswords .
Edición; editar tokens
Wikipedia utiliza un sistema de tokens de edición para realizar ediciones en las páginas de Wikipedia, así como otras operaciones que modifican el contenido existente, como la reversión. El token parece un número hexadecimal largo seguido de '+ \', por ejemplo:
- d41d8cd98f00b204e9800998ecf8427e + \
La función de los tokens de edición es evitar el "secuestro de edición", donde se engaña a los usuarios para que realicen una edición haciendo clic en un solo enlace.
El proceso de edición implica dos solicitudes HTTP. Primero, se debe realizar una solicitud de un token de edición. Luego, se debe realizar una segunda solicitud HTTP que envíe el nuevo contenido de la página junto con el token de edición recién obtenido. No es posible realizar una edición en una sola solicitud HTTP. Un token de edición permanece igual durante la duración de una sesión iniciada, por lo que el token de edición debe recuperarse solo una vez y puede usarse para todas las ediciones posteriores.
Para obtener un token de edición, siga estos pasos:
- API de MediaWiki (api.php) . Realice una solicitud con los siguientes parámetros (consulte mw: API: Editar - Crear y editar páginas ).
action=query
prop=info
titles=PAGENAME
intoken=edit
El token se devolverá en el
edittoken
atributo de la respuesta.
Si el token de edición que recibe el bot no tiene la cadena hexadecimal ( es decir , el token de edición es simplemente '+ \'), lo más probable es que el bot no haya iniciado sesión. Esto podría deberse a varios factores: falla en la autenticación con el servidor, una conexión interrumpida, un tiempo de espera de algún tipo o un error al almacenar o devolver las cookies correctas. Si no es debido a un error de programación, simplemente inicie sesión nuevamente para actualizar las cookies de inicio de sesión. Los bots deben usar la aserción para asegurarse de que están conectados.
Editar conflictos
Los conflictos de edición se producen cuando se realizan varios intentos de edición superpuestos en la misma página. Casi todos los bots eventualmente quedarán atrapados en un conflicto de edición de un tipo u otro, y deberían incluir algún mecanismo para probar y acomodar estos problemas.
Los bots que utilizan la API de Mediawiki (api.php) deben recuperar el token de edición, junto con la starttimestamp
marca de tiempo "base" de la última revisión, antes de cargar el texto de la página en preparación para la edición; prop=info|revisions
se puede utilizar para recuperar tanto el token como el contenido de la página en una consulta ( ejemplo ). Al presentar la edición, establecer el starttimestamp
y basetimestamp
atributos, y comprobar las respuestas del servidor para las indicaciones de errores. Para obtener más detalles, consulte mw: API: Editar - Crear y editar páginas .
En términos generales, si una edición no se completa, el bot debe revisar la página nuevamente antes de intentar realizar una nueva edición, para asegurarse de que la edición sigue siendo apropiada. Además, si un bot vuelve a comprobar una página para volver a enviar un cambio, debe tener cuidado de evitar cualquier comportamiento que pueda conducir a un bucle infinito y cualquier comportamiento que incluso pueda parecerse a una guerra de edición .
Descripción general del proceso de desarrollo de un bot
En realidad, codificar o escribir un bot es solo una parte del desarrollo de un bot. Por lo general, debe seguir el ciclo de desarrollo a continuación para asegurarse de que su bot siga la política de bots de Wikipedia . El incumplimiento de la política puede provocar que su bot no sea aprobado o que se le bloquee la edición de Wikipedia.
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/5/51/Bot_development_cycle.svg/600px-Bot_development_cycle.svg.png)
Ocurrencia
- La primera tarea al crear un bot de Wikipedia es extraer los requisitos o tener una idea. Si no tiene una idea de para qué escribir un bot, puede recoger ideas en las solicitudes de trabajo que debe realizar un bot .
- Asegúrese de que un bot existente no esté haciendo lo que usted cree que debería hacer su bot. Para ver qué tareas ya está realizando un bot, consulte la lista de bots actualmente en funcionamiento .
Especificación
- La especificación es la tarea de describir con precisión el software que se va a escribir, posiblemente de una manera rigurosa. Debería presentar una propuesta detallada de lo que quiere que haga. Intente discutir esta propuesta con algunos editores y perfeccionarla en función de los comentarios. Incluso una gran idea se puede mejorar incorporando ideas de otros editores.
- En la forma más básica, su bot especificado debe cumplir con los siguientes criterios:
- El bot es inofensivo (no debe realizar ediciones que puedan considerarse perjudiciales para el buen funcionamiento de la enciclopedia)
- El bot es útil (proporciona un servicio útil más eficazmente que un editor humano)
- El bot no desperdicia los recursos del servidor.
Arquitectura de software
- Piense en cómo podría crearlo y qué lenguaje (s) de programación y herramientas usaría. La arquitectura se ocupa de asegurarse de que el sistema de software cumpla con los requisitos del producto, así como de garantizar que se puedan abordar los requisitos futuros. Ciertos lenguajes de programación se adaptan mejor a algunas tareas que a otras; para más detalles, consulte § Lenguajes de programación y bibliotecas .
Implementación
La implementación (o codificación) implica convertir el diseño y la planificación en código. Puede ser la parte más obvia del trabajo de ingeniería de software, pero no es necesariamente la parte más grande. En la etapa de implementación debes:
- Crea una cuenta para tu bot. Haga clic aquí cuando inicie sesión para crear la cuenta, vinculándola a la suya. (Si no crea la cuenta de bot mientras está conectado, es probable que se bloquee como posible sockpuppet o bot no autorizado hasta que verifique la propiedad)
- Crea una página de usuario para tu bot. Las ediciones de su bot no deben realizarse con su propia cuenta. Su bot necesitará su propia cuenta con su propio nombre de usuario y contraseña.
- Agregue la misma información a la página de usuario del bot. Sería una buena idea agregar un enlace a la página de aprobación (aprobado o no) para cada función.
Pruebas
Una buena forma de probar su bot mientras está desarrollando es hacer que muestre los cambios (si los hubiera) que habría realizado en una página, en lugar de editar la wiki en vivo. Algunos marcos de bot (como pywikibot ) tienen métodos precodificados para mostrar diferencias. Durante el proceso de aprobación , lo más probable es que al bot se le dé un período de prueba (generalmente con una restricción en la cantidad de ediciones o días que se ejecutará) durante el cual realmente puede editar para permitir el ajuste fino y eliminar cualquier error. Al final del período de prueba, si todo salió de acuerdo con el plan, el bot debería obtener la aprobación para la operación a gran escala.
Documentación
Una tarea importante (y a menudo pasada por alto) es documentar el diseño interno de su bot con el propósito de realizar un mantenimiento y una mejora futuros. Esto es especialmente importante si va a permitir clones de su bot. Idealmente, debería publicar el código fuente de su bot en su página de usuario o en un sistema de control de revisiones (ver # Bots de código abierto ) si desea que otros puedan ejecutar clones del mismo. Este código debe estar bien documentado (generalmente con comentarios) para facilitar su uso.
Consultas / Quejas
Debe estar listo para responder a las consultas u objeciones a su bot en su página de discusión de usuario, especialmente si está operando en un área potencialmente sensible, como la limpieza de imágenes de uso justo .
Mantenimiento
Mantener y mejorar su bot para hacer frente a errores recién descubiertos o nuevos requisitos puede llevar mucho más tiempo que el desarrollo inicial del software. Para facilitar el mantenimiento, documente su código desde el principio.
Se deben aprobar los cambios importantes de funcionalidad de los bots aprobados .
Pautas generales para ejecutar un bot
Además de la política oficial de bots, que cubre los puntos principales a considerar al desarrollar su bot, hay una serie de puntos de asesoramiento más generales a considerar al desarrollar su bot.
Mejores prácticas de bot
- Establezca un encabezado de agente de usuario personalizado para su bot, según la política de agente de usuario de Wikimedia . Si no lo hace, su bot puede encontrar errores y terminar bloqueado por el personal técnico a nivel del servidor.
- Utilice el parámetro maxlag con un retraso máximo de 5 segundos. Esto permitirá que el bot se ejecute rápidamente cuando la carga del servidor sea baja y acelerará el bot cuando la carga del servidor sea alta.
- Si escribe un bot en un marco que no admite maxlag, limite el total de solicitudes (solicitudes de lectura y escritura juntas) a no más de 10 por minuto.
- Utilice la API siempre que sea posible y establezca los límites de consulta a los valores más altos que permita el servidor, para minimizar el número total de solicitudes que se deben realizar.
- Las solicitudes de edición (escritura) son más caras en tiempo de servidor que las solicitudes de lectura. Sea ligero en la edición y diseñe su código para mantener las ediciones al mínimo.
- Intente consolidar las ediciones. Una sola edición grande es mejor que 10 más pequeñas.
- Habilite las conexiones persistentes HTTP y la compresión en su biblioteca de cliente HTTP, si es posible.
- No realice solicitudes de subprocesos múltiples. Espere a que se complete una solicitud del servidor antes de comenzar con otra.
- Retroceda al recibir errores del servidor. Los errores como los tiempos de espera de squid suelen ser una indicación de una gran carga del servidor. Utilice una secuencia de retrasos cada vez más largos entre solicitudes repetidas .
- Haga uso de la aserción para asegurarse de que su bot esté conectado.
- Pruebe su código a fondo antes de realizar grandes ejecuciones automatizadas. Examine individualmente todas las ediciones en las ejecuciones de prueba para verificar que sean perfectas.
Características comunes de los bots que debería considerar implementar
Asistencia manual
Si su bot está haciendo algo que requiera juicio o evaluación del contexto (por ejemplo, corregir la ortografía), entonces debería considerar hacer que su bot sea asistido manualmente, lo que significa que un humano verifica todas las ediciones antes de guardarlas. Esto reduce significativamente la velocidad del bot, pero también reduce significativamente los errores.
Deshabilitando el bot
Debería ser fácil desactivar rápidamente su bot. Si tu bot se estropea, ¡es tu responsabilidad limpiarlo! Puede hacer que el bot se niegue a ejecutarse si se ha dejado un mensaje en su página de discusión, asumiendo que el mensaje puede ser una queja contra sus actividades; esto se puede verificar usando la meta=userinfo
consulta API ( ejemplo ). O podría tener una página que apague el bot cuando se cambie; esto se puede comprobar cargando el contenido de la página antes de cada edición.
Firma
Al igual que un humano, si su bot edita una página de discusión en Wikipedia, debe firmar su publicación con cuatro tildes (~~~~). Las firmas pertenecen solo a los espacios de nombres de las charlas, con la excepción de las páginas del proyecto que se utilizan para la discusión (por ejemplo, artículos para eliminar ).
Bandera de bot
Las ediciones de un bot serán visibles en Special: RecentChanges , a menos que las ediciones estén configuradas para indicar un bot. Una vez que el bot ha sido aprobado y se le ha otorgado su permiso de marca de bot, se puede agregar el "bot-True" a la llamada a la API; consulte mw: API: Edit # Parameters para ocultar las ediciones del bot en Special: RecentChanges . En Python, al usar mwclient o wikitools, luego agregar Bot = True al comando editar / guardar establecerá la edición como una edición de bot, por ejemplo PageObject.edit(text=pagetext, bot=True, summary=pagesummary)
.
Bots de código abierto
Muchos operadores de bots optan por hacer que su código sea de código abierto y, en ocasiones, puede ser necesario antes de la aprobación de bots particularmente complejos. Hacer que su código sea de código abierto tiene varias ventajas:
- Permite que otros revisen su código en busca de posibles errores. Al igual que con la prosa, a menudo es difícil para el autor del código revisarlo adecuadamente.
- Otros pueden usar su código para construir sus propios bots. Un usuario nuevo en la escritura de bots puede usar su código como ejemplo o una plantilla para sus propios bots.
- Fomenta las buenas prácticas de seguridad , en lugar de la seguridad a través de la oscuridad .
- Si abandona el proyecto, permite que otros usuarios ejecuten sus tareas de bot sin tener que escribir código nuevo.
El código de fuente abierta, aunque rara vez se requiere, generalmente se recomienda de acuerdo con la naturaleza abierta y transparente de Wikipedia.
Antes de compartir el código, asegúrese de que la información confidencial, como las contraseñas, esté separada en un archivo que no se haga público.
Hay muchas opciones disponibles para los usuarios que deseen abrir su código. Alojar el código en una subpágina del espacio de usuario del bot puede ser complicado de mantener si no está automatizado y da como resultado que el código tenga múltiples licencias según los términos de licencia de Wikipedia, además de cualquier otro término que usted pueda especificar. Una mejor solución es utilizar un sistema de control de revisiones como SVN , Git o Mercurial . Wikipedia tiene artículos que comparan las diferentes opciones de software y sitios web para el alojamiento de código , muchos de los cuales son gratuitos .
Bibliotecas y lenguajes de programación
Los bots se pueden escribir en casi cualquier lenguaje de programación. La elección de un idioma depende de la experiencia y las preferencias del escritor del bot y de la disponibilidad de bibliotecas relevantes para el desarrollo del bot. La siguiente lista incluye algunos lenguajes que se utilizan comúnmente para los bots:
Awk
GNU Awk es un lenguaje sencillo para bots pequeños y grandes, incluido OAuth.
- Marco y bibliotecas: BotWikiAwk
- Bots de ejemplo en la cuenta de GitHub del usuario: GreenC en GitHub
Perl
Si se encuentra en un servidor web, puede iniciar la ejecución de su programa e interactuar con su programa mientras se ejecuta a través de la Interfaz de puerta de enlace común desde su navegador. Si su proveedor de servicios de Internet le proporciona espacio web, es muy probable que tenga acceso a una compilación de Perl en el servidor web desde el cual puede ejecutar sus programas Perl.
Bibliotecas:
- MediaWiki :: API - Interfaz básica para la API, que permite a los scripts automatizar la edición y extracción de datos de sitios impulsados por MediaWiki.
- MediaWiki :: Bot : un marco de bots de MediaWiki bastante completo escrito en Perl. Proporciona un mayor nivel de abstracción que MediaWiki :: API. Los complementos proporcionan funciones de administrador y delegado. Actualmente no compatible.
PHP
PHP también se puede utilizar para programar bots. Los desarrolladores de MediaWiki ya están familiarizados con PHP, ya que ese es el lenguaje en el que están escritas MediaWiki y sus extensiones. PHP es una opción especialmente buena si desea proporcionar una interfaz basada en formularios web para su bot. Por ejemplo, suponga que desea crear un bot para cambiar el nombre de las categorías. Puede crear un formulario HTML en el que escriba los nombres actuales y deseados de una categoría. Cuando se envía el formulario, su bot puede leer estas entradas, luego editar todos los artículos en la categoría actual y moverlos a la categoría deseada. (Obviamente, cualquier bot con una interfaz de formulario debería protegerse de alguna manera de los navegadores web aleatorios).
La tabla de funciones de bot de PHP puede proporcionar información sobre las capacidades de los principales marcos de bot.
Personas clave [php 1] | Nombre | Versión PHP | Última actualización | Utiliza API [php 2] | Cumple con la exclusión | Funciones de administración | Complementos | Repositorio | Notas |
---|---|---|---|---|---|---|---|---|---|
Usuario: Cyberpower678 , Usuario: Addshore y Usuario: Jarry1250 | Aterciopelado | 5.2.1 | 2017 | sí | sí | sí | sí | GitHub | Marco grande, actualmente en proceso de reescritura. La documentación no existe actualmente, así que pida ayuda al Usuario: Cyberpower678 . |
Usuario: Addshore | mediawiki-api-base | 5.3–7 | 2018 | sí | N / A | N / A | bibliotecas adicionales | GitHub | La biblioteca base para la interacción con la API de mediawiki le proporciona formas de manejar el inicio de sesión, el cierre y el manejo de tokens, así como la obtención y publicación de solicitudes fácilmente. |
Usuario: Addshore | mediawiki-api | 5.3 | 2019 | sí | No | algunos | bibliotecas adicionales | GitHub | Construido sobre mediawiki-api-base, esto agrega servicios más avanzados para la API como RevisionGetter, UserGetter, PageDeleter, RevisionPatroller, RevisionSaver, etc. Admite la carga fragmentada . |
Usuario: nzhamstar | Wikimate | 5.3.2 | 2021 | sí | No | No | No | GitHub | Admite artículos principales y archivos. Autenticación, comprobación de la existencia de páginas, lectura y edición de páginas / secciones. Obtener información de archivos, descargar y cargar archivos. Probado y funcionando. Tiene como objetivo que sea fácil de usar. |
Григор Гачев | Apibot | 5.1 | 2015 | sí | sí | sí | sí | en wiki | Soporte completo de API hasta MW 1.21, incluidas conexiones persistentes, xfers con gzip, HTTPS, autenticación HTTP, clasificación GET, almacenamiento y uso automático de sitios / usuarios / paraminfo, cumplimiento de exclusión de bots de página, cerca de 1000 funciones, soporte de DB, etc. Estructura modular fácilmente ampliable. Un marco de 'línea de ensamblaje' superpuesto similar a UNIX. AGPL 3.0 o posterior. |
Chris G , wbm1058 | botclasses.php botclasses.php | 7.3 | 2020 2019 | sí | sí | sí | No | en wiki (2020), GitHub (2019) | Bifurcación de wikibot.classes más antiguas (utilizadas por ClueBot y SoxBot ). Actualizado para los cambios de API de 2010 y 2015. Admite la carga de archivos. |
- ^ No incluye a aquellos que trabajaron en marcos bifurcados para crear el marco enumerado.
- ^ Siempre que sea posible. Excluye la carga de imágenes y otras tareas similares que actualmente no son compatibles con la API.
Pitón
Bibliotecas:
- Pywikibot : probablemente el marco de bots más utilizado.
- ceterach : una interfaz para interactuar con MediaWiki
- wikitools: un marco de bot ligero único de Python-2 que usa la API de MediaWiki exclusivamente para obtener datos y editar, usado y mantenido por Mr.Z-man ( descargas )
- mwclient : un marco basado en API mantenido por Bryan
- mwparserfromhell - Un analizador de wikitext, mantenido por The Earwig
- pymediawiki : un contenedor de API de MediaWiki de solo lectura en Python, que es fácil de usar.
MATLAB
- MatWiki : un cliente preliminar (a partir de febrero de 2019) MATLAB R2016b (9.1.x) que solo admite inicios de sesión de bot y consultas semánticas #ask.
Microsoft .NET
Microsoft .NET es un conjunto de lenguajes que incluyen C # , C ++ / CLI , Visual Basic .NET , J # , JScript .NET , IronPython y Windows PowerShell . Con Mono Project , los programas .NET también se pueden ejecutar en Linux , Unix , BSD , Solaris y macOS , así como en Windows .
Bibliotecas:
- DotNetWikiBot Framework : una API de cliente con todas las funciones en .NET, que permite crear programas y robots web fácilmente para administrar información en sitios con tecnología MediaWiki. Ahora traducido a varios idiomas. La documentación recopilada detallada está disponible en inglés.
- Biblioteca .NET de WikiFunctions: incluida con AWB , es una biblioteca de material útil para los bots, como generar listas, cargar / editar artículos, conectarse al canal de IRC de cambios recientes y más.
Java
Bibliotecas:
- Java Wiki Bot Framework : un marco de Java wiki bot
- wiki-java : un marco de trabajo de bot de wiki de Java que es solo un archivo
- WPCleaner : la biblioteca utilizada por la herramienta WPCleaner
- jwiki : un marco de trabajo de bots wiki de Java simple y fácil de usar
Node.js
Bibliotecas:
- La biblioteca mwn se mantiene y escribe activamente en ES6 moderno usando promesas (compatible con async-await). Esta es una biblioteca grande y tiene clases para trabajar cómodamente con títulos de página y wikitexto (incluidas capacidades limitadas de análisis de wikitext). También es compatible con TypeScript .
- !! MUY DEPRECATED Un MediaWiki existe módulo para Node.js . El módulo también puede agregarse a su página common.js y usarse como biblioteca para llamadas JS en wiki. Proporciona un marco de solicitudes estándar (por ejemplo, iniciar sesión, cerrar sesión, etc.) así como un método de envoltura general para la API de MediaWiki e incluye limitación.
- wikiapi : una forma sencilla de acceder a la API de MediaWiki a través de JavaScript con un analizador de wikitexto simple, utilizando el módulo CeJS MediaWiki. Consulte los ejemplos de bots de Wikipedia en GitHub .
Rubí
Bibliotecas:
- MediaWiki :: Butt - Cliente API. Mantenido activamente. Ver evaluación
- mediawiki / ruby / api , cliente API del equipo de ingeniería de versiones de Wikimedia . Última actualización en diciembre de 2017, ya no se mantiene, pero aún funciona.
- wikipedia-client - cliente API. Última actualización en marzo de 2018. Se desconoce si aún funciona.
- MediaWiki :: Gateway - Cliente API. Última actualización en enero de 2016. Probado hasta MediaWiki 1.22, luego fue compatible con los wikis de Wikimedia. Desconocido si todavía funciona.
Lisp común
- CL-MediaWiki implementa la API de MediaWiki como un paquete Common Lisp . Está previsto utilizar JSON como formato de datos de consulta. Soporta maxlag y aserción.
Haskell
- http://hackage.haskell.org/package/mediawiki
VBScript
VBScript es un lenguaje de programación basado en el lenguaje de programación Visual Basic . No hay marcos de bots publicados para VBScript, pero a continuación se pueden ver algunos ejemplos de bots que lo usan:
- Usuario: Smallman12q / Scripts / cleanuplistingtowiki - Inicie sesión y obtenga una vista previa de la edición
- Usuario: Smallman12q / VBS / Savewatchlist - Iniciar sesión, obtener lista de seguimiento sin procesar, guardar en archivo, cerrar sesión, cerrar IE
- Commons: Usuario: Smallbot # Fuentes : varios scripts que muestran el uso de VBScript (Javascript, XMLHTTP, MSHTML, XMLDOM, COM) para cargas por lotes.
Lua
- Durante el Taller Anual de Lua 2016, Jim Carter y Dfavro comenzaron a desarrollar el marco de bots de Lua para proyectos de Wikimedia. Comuníquese con Jim Carter en su página de discusión para discutir sobre el desarrollo.
- mwtest es un ejemplo que usa Lua para escribir un wikibot, creado por el Usuario: Alexander Misel , con API simple.