Ayuda:Crear un bot

Página de información de Wikipedia

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á orientada principalmente a aquellos que tienen alguna experiencia previa en programación, pero no están seguros de cómo aplicar este conocimiento a la creación de 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 tienes una tarea sencilla que debes realizar muchas veces (un ejemplo podría ser agregar una plantilla a todas las páginas de una categoría con 1000 páginas), entonces 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 tienes solicitudes periódicas o no te sientes cómodo con la programación, esta suele ser la mejor solución. Estas solicitudes se pueden realizar en Wikipedia:Bot requests . Además, hay una serie de herramientas disponibles para cualquiera. La mayoría de ellas 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. Puedes encontrar una lista casi completa de herramientas en Wikipedia:Tools/Editing tools . Las herramientas, como AWB, a menudo se pueden utilizar con poco o ningún conocimiento de programación.

Reutilizar código base

Si decide que necesita un bot propio debido a la frecuencia o novedad de sus requisitos, no necesita escribir 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 trabajo de bots estándar disponibles. Modificar un bot existente o usar un marco de trabajo 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 de trabajo aprobados para su uso. El más popular y común de estos marcos de trabajo es Pywikibot (PWB), un marco de trabajo de bot escrito en Python . Está completamente documentado y probado y ya hay muchos scripts de Pywikibot estandarizados (instrucciones de bot). A continuación, se pueden encontrar otros ejemplos de marcos de trabajo de bots. Para algunos de estos marcos de trabajo de bots, como PWB, una familiaridad general con los scripts es todo lo que se necesita para ejecutar el bot con éxito (es importante actualizar estos marcos de trabajo con regularidad).

Preguntas importantes

Para escribir un bot nuevo se necesitan habilidades de programación importantes. Un bot completamente nuevo debe someterse a pruebas exhaustivas antes de que se lo apruebe para su funcionamiento habitual. Para escribir un bot exitoso, la planificación es crucial. Las siguientes consideraciones son importantes:

  • ¿El bot será asistido manualmente o estará totalmente automatizado?
  • ¿Crearás 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 un medio local 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, ¿otros editores podrán operar el bot o iniciarlo?

¿Cómo funciona un bot de Wikipedia?

Descripción general del funcionamiento

Al igual que un editor humano, un bot de Wikipedia lee las páginas de Wikipedia y hace cambios cuando cree que es necesario hacerlo. 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, en las que hay que 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 forma muy similar a como lo hace un navegador (aunque no muestra la página en la pantalla, sino que trabaja con 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 modificaciones para las que fue diseñado, nuevamente de forma muy similar a como lo haría un navegador.

Debido a que los bots acceden a las páginas de la misma manera que las personas, pueden experimentar el mismo tipo de dificultades que los usuarios humanos. Pueden quedar atrapados en conflictos de edición, tener tiempos de espera de páginas 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 de una persona real, es más probable que el bot se encuentre con estos problemas. Por lo tanto, es importante tener en cuenta estas situaciones al escribir un bot.

API para bots

Para poder realizar cambios en las páginas de Wikipedia, un bot necesariamente tiene que recuperar páginas de Wikipedia y enviar las modificaciones de vuelta. Existen 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 procesos automatizados, como bots, realicen consultas y publiquen cambios. Los datos se devuelven en formato JSON (consulte los formatos de salida para obtener más detalles).
    Estado: característica incorporada de MediaWiki, disponible en todos los servidores de Wikimedia. Otros wikis que no son de Wikimedia pueden deshabilitar o restringir el acceso de escritura.
    También hay un sandbox de API para aquellos que quieran probar las características de api.php.
  • Special:Export se puede utilizar para obtener una exportación masiva del contenido de una página en formato XML. Consulte Manual:Parámetros de Special:Export para conocer los argumentos.
    Estado: característica incorporada de MediaWiki, disponible en todos los servidores de Wikimedia.
  • Procesamiento de páginas sin procesar (wikitexto): enviar una solicitud GET action=rawo action=raw&templates=expanda index.php proporcionará el código fuente 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 API con action=query&prop=revisions&rvprop=contento action=query&prop=revisions&rvprop=content&rvexpandtemplates=1es aproximadamente equivalente y permite recuperar información adicional.
    Estado: característica incorporada de MediaWiki, disponible en todos los servidores de Wikimedia.

Algunos servidores web de Wikipedia están configurados para aceptar 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 utilicen MediaWiki no tengan esta función. Si está utilizando un marco de trabajo de bot existente, debería manejar operaciones de bajo nivel como esta.

Iniciar 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 hayan iniciado 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 trabajo para bots deberían gestionar el inicio de sesión y las cookies de forma automática, pero si no utiliza un marco de trabajo existente, deberá seguir estos pasos.

Por razones de seguridad, los datos de inicio de sesión se deben pasar 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 mediante GET están deshabilitados.

Para iniciar sesión con un bot mediante la API de MediaWiki, se necesitan dos solicitudes:

Solicitud 1: esta es una solicitud GET para obtener un token de inicio de sesión

  • URL:https://en.wikipedia.org/w/api.php?action=query&meta=tokens&type=login&format=json

Solicitud 2: este es un POST para completar el inicio de sesión

  • URL:https://en.wikipedia.org/w/api.php?action=login&format=json
  • 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 hará que el servidor de Wikimedia configure varias cookies HTTP . El robot debe guardar estas cookies y enviarlas de vuelta 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 confirmar 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 iniciando sesión con "action=login", consulte Special:BotPasswords .

Edición; editar tokens

Wikipedia utiliza un sistema de tokens de edición para realizar modificaciones 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 los usuarios son engañados para realizar una edición haciendo clic en un solo enlace.

El proceso de edición implica dos solicitudes HTTP. En primer lugar, se debe realizar una solicitud de un token de edición. A continuación, se debe realizar una segunda solicitud HTTP que envíe el nuevo contenido de la página junto con el token de edición que se acaba de obtener. No es posible realizar una edición en una única 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 solo debe recuperarse 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
    • meta=tokens

    El token se devolverá en el csrftokenatributo de la respuesta.

La URL se verá así:https://en.wikipedia.org/w/api.php?action=query&meta=tokens&format=json

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 puede deberse a varios factores: un error 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 se debe a un error de programación, simplemente vuelva a iniciar sesión para actualizar las cookies de inicio de sesión. Los bots deben usar la aserción para asegurarse de que hayan iniciado sesión.

Editar conflictos

Los conflictos de edición ocurren cuando se realizan varios intentos de edición superpuestos en la misma página. Casi todos los bots se verán atrapados en algún conflicto de edición de un tipo u otro, y deberían incluir algún mecanismo para probar y solucionar estos problemas.

Los bots que utilizan la API de Mediawiki (api.php) deben recuperar el token de edición, junto con el starttimestampy la 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|revisionsse puede utilizar para recuperar tanto el token como el contenido de la página en una sola consulta ( ejemplo ). Al enviar la edición, configure los atributos starttimestampy basetimestampy verifique las respuestas del servidor para ver si hay indicaciones de errores. Para obtener más detalles, consulte MediaWiki:API:Editar - Crear y editar páginas.

En términos generales, si una edición no se completa, el bot debe volver a verificar la página 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 verificar una página para volver a enviar un cambio, debe tener cuidado de evitar cualquier comportamiento que pueda generar un bucle infinito y cualquier comportamiento que pueda incluso parecerse a una guerra de ediciones .

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. En general, debes seguir el ciclo de desarrollo que se indica a continuación para asegurarte de que tu bot cumple con la política de bots de Wikipedia . Si no cumples con la política, es posible que tu bot no sea aprobado o que se le bloquee la posibilidad de editar Wikipedia.

Descripción general del ciclo de desarrollo de bots de Wikipedia

Idea

Especificación

  • La especificación es la tarea de describir con precisión el software que se va a escribir, posiblemente de manera rigurosa. Debes elaborar una propuesta detallada de lo que quieres que haga. Intenta discutir esta propuesta con algunos editores y refínala 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, el bot especificado debe cumplir los siguientes criterios:
    • El bot es inofensivo (no debe realizar modificaciones que puedan considerarse perjudiciales para el buen funcionamiento de la enciclopedia).
    • El bot es útil (proporciona un servicio útil de manera más efectiva que un editor humano)
    • El bot no desperdicia recursos del servidor.

Arquitectura de software

  • Piense en cómo podría crear un bot y qué lenguaje(s) de programación y herramientas utilizaría. La arquitectura se ocupa de garantizar que el sistema de software cumpla con los requisitos del producto, así como de garantizar que se puedan abordar los requisitos futuros. Algunos lenguajes de programación son más adecuados para algunas tareas que otros; para obtener 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 más importante. En la etapa de implementación, debes:

  • Crea una cuenta para tu bot. Haz clic aquí cuando hayas iniciado sesión para crear la cuenta y vincularla a la tuya. (Si no creas la cuenta del bot mientras estás conectado, es probable que se bloquee como posible bot falso o no autorizado hasta que verifiques su propiedad)
  • Crea una página de usuario para tu bot. Las modificaciones de tu bot no deben realizarse desde tu propia cuenta. Tu bot necesitará su propia cuenta con su propio nombre de usuario y contraseña.
  • Añade la misma información a la página de usuario del bot. Sería una buena idea añadir un enlace a la página de aprobación (ya sea aprobada o no) para cada función.

Pruebas

Una buena forma de probar tu bot mientras lo estás desarrollando es hacer que muestre los cambios (si los hubiera) que hubiera realizado en una página, en lugar de editar realmente la wiki en vivo. Algunos marcos de trabajo para bots (como pywikibot) tienen métodos precodificados para mostrar diferencias. Durante el proceso de aprobación , lo más probable es que se le dé al bot un período de prueba (generalmente con una restricción en la cantidad de ediciones o días que debe ejecutarse) durante el cual puede editar para permitir ajustes y eliminar errores. Al final del período de prueba, si todo salió según lo planeado, el bot debería recibir la aprobación para operar a gran escala.

Documentación

Una tarea importante (y que a menudo se pasa por alto) es documentar el diseño interno de tu bot con el fin de realizar un mantenimiento y una mejora futuros. Esto es especialmente importante si vas a permitir clones de tu bot. Lo ideal es que publiques el código fuente de tu bot en su página de usuario o en un sistema de control de revisiones (consulta #Bots de código abierto) si quieres que otros puedan ejecutar clones del mismo. Este código debe estar bien documentado (normalmente mediante comentarios) para facilitar su uso.

Consultas/Quejas

Debes estar preparado para responder consultas u objeciones sobre tu bot en tu página de discusión de usuarios, 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 que se adapte 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.

Los cambios importantes en la funcionalidad de los bots aprobados deben ser aprobados .

Pautas generales para ejecutar un bot

Además de la política oficial del bot, que cubre los puntos principales a tener en cuenta al desarrollar su bot, hay una serie de puntos de asesoramiento más generales a tener en cuenta al desarrollar su bot.

Mejores prácticas para bots

  • Establezca un encabezado User-Agent personalizado para su bot, según la política User-Agent de Wikimedia. Si no lo hace, su bot puede encontrar errores y puede terminar bloqueado por el personal técnico a nivel de 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 lo limitará cuando la carga del servidor sea alta.
    • Si escribe un bot en un marco que no admite maxlag, limite las solicitudes totales (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 en los valores más grandes que permita el servidor, para minimizar la cantidad total de solicitudes que se deben realizar.
  • Las solicitudes de edición (escritura) son más costosas en términos de tiempo de servidor que las solicitudes de lectura. No modifique demasiado y diseñe su código para mantener las modificaciones al mínimo.
    • Intente consolidar las modificaciones. Una sola modificación grande es mejor que diez modificaciones 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 multiproceso. Espere a que se complete una solicitud del servidor antes de iniciar otra.
  • Retroceda al recibir errores del servidor. Los errores como los tiempos de espera agotados suelen ser una indicación de una gran carga del servidor. Utilice una secuencia de retrasos cada vez más largos entre las solicitudes repetidas .
  • Utilice la afirmación para asegurarse de que su bot haya iniciado sesión.
  • Pruebe su código a fondo antes de realizar ejecuciones automatizadas de gran tamaño. Examine individualmente todas las modificaciones en las ejecuciones de prueba para verificar que sean perfectas.

Características comunes de los bots que deberías considerar implementar

Asistencia manual

Si su bot está haciendo algo que requiere 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.

Deshabilitar el bot

Debería ser fácil deshabilitar rápidamente su bot. Si su bot deja de funcionar, es su 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 sobre sus actividades; esto se puede verificar utilizando la meta=userinfoconsulta de API ( ejemplo ). O puede tener una página que apague el bot cuando se modifique; esto se puede verificar cargando el contenido de la página antes de cada edición.

Firma

Al igual que un humano, si tu bot edita una página de discusión en Wikipedia, debe firmar su publicación con cuatro tildes (~~~~). Las firmas pertenecen únicamente a los espacios de discusión, con excepción de las páginas de proyecto utilizadas 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 el permiso de bandera de bot, se puede agregar "bot=True" a la llamada API - vea 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).

Monitoreo del estado del bot

Si el bot está completamente automatizado y realiza ediciones periódicas, debe comprobar periódicamente que funciona como se especifica y que su comportamiento no se ha visto alterado por cambios de software. Considere agregarlo a Wikipedia:Monitor de actividad de bots para recibir una notificación si el bot deja de funcionar.

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 para detectar posibles errores. Al igual que con la prosa, a menudo resulta difícil para el autor del código revisarlo adecuadamente.
  • Otros pueden usar tu código para crear sus propios bots. Un usuario que no tenga experiencia en la creación de bots puede usar tu código como ejemplo o 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, permitirá que otros usuarios ejecuten las tareas de su bot sin tener que escribir código nuevo.

El código fuente abierto, aunque rara vez se requiere, generalmente se fomenta para mantener la naturaleza abierta y transparente de Wikipedia.

Antes de compartir 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 desean que su código sea abierto. 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 pueda especificar. Una mejor solución es utilizar un sistema de control de revisión como SVN , Git o Mercurial . Wikipedia tiene artículos que comparan las diferentes opciones de software y sitios web para alojar código , muchos de los cuales no tienen costo.

Lenguajes de programación y bibliotecas

Los bots se pueden escribir en casi cualquier lenguaje de programación. La elección de un lenguaje depende de la experiencia y las preferencias del creador del bot, y de la disponibilidad de bibliotecas relevantes para el desarrollo del bot. La siguiente lista incluye algunos lenguajes que se usan comúnmente para los bots:

Desconcertado

GNU Awk es un lenguaje sencillo para bots pequeños y grandes, incluido OAuth.

Perl

Si se encuentra en un servidor web, puede iniciar la ejecución de su programa e interactuar con él 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 que puede ejecutar sus programas de Perl.

Bibliotecas:

  • MediaWiki::API – Interfaz básica para la API, que permite que los scripts automaticen la edición y extracción de datos de sitios controlados por MediaWiki.
  • MediaWiki::Bot: un marco de trabajo de bot de MediaWiki bastante completo escrito en Perl. Proporciona un mayor nivel de abstracción que MediaWiki::API. Los complementos proporcionan funciones de administrador y administrador. Actualmente no es compatible.

PHP

PHP también se puede utilizar para programar bots. Los desarrolladores de MediaWiki ya están familiarizados con PHP, ya que es el lenguaje en el que se escriben MediaWiki y sus extensiones. PHP es una opción especialmente buena si desea proporcionar una interfaz basada en formularios web a su bot. Por ejemplo, supongamos que desea crear un bot para cambiar el nombre de las categorías. Puede crear un formulario HTML en el que escribirá los nombres actuales y deseados de una categoría. Cuando se envíe el formulario, su bot podría leer estas entradas, luego editar todos los artículos de la categoría actual y moverlos a la categoría deseada. (Obviamente, cualquier bot con una interfaz de formulario necesitaría estar protegido de algún modo de los navegantes web aleatorios).

La tabla de funciones de bot PHP puede brindar información sobre las capacidades de los principales marcos de bot.

Los marcos de trabajo de bots PHP actuales
Personas clave [php 1]NombreVersiones de PHP confirmadas que funcionanÚltimo lanzamientoÚltima actualización de la rama maestraUtiliza API [php 2]Cumple con la exclusiónFunciones de administraciónComplementosRepositorioNotas
Cyberpower678 , Addshore y Jarry1250Aterciopelado5.2.120132022GitHubMarco grande, actualmente en proceso de reescritura. Actualmente no existe documentación, por lo que se debe contactar al usuario Cyberpower678 para obtener ayuda.
Añadir costabase de la API de mediawiki7.420212022N / AN / Abibliotecas adicionalesGitHubBiblioteca base para la interacción con la API de MediaWiki, que le proporciona formas de gestionar el inicio y cierre de sesión y el manejo de tokens, así como también obtener y publicar solicitudes fácilmente.
Añadir costaAPI de MediaWiki7.420212022Noalgunobibliotecas adicionalesGitHubConstruido sobre lo mediawiki-api-basemencionado anteriormente, esto agrega servicios más avanzados para la API como RevisionGetter, UserGetter, PageDeleter, RevisionPatroller, RevisionSaver, etc. Admite carga fragmentada.
Nzhamstar , Xymph , WaldyriousWikimate5.3-5.6,
7.x, 8.x
20232024NoNoNoGitHubAdmite artículos principales y archivos. Autenticación, verificación de existencia de páginas, lectura y edición de páginas/secciones. Obtención de información de archivos, descarga y carga de archivos. Su objetivo es que sea fácil de usar.
Chris G ,
wbm1058
clasesbot.php8.2n / A2024Noen wikiBifurcación de la versión anterior de wikibot.classes (usada por ClueBot y SoxBot ). Actualizada para los cambios de API de 2010 y 2015. Admite la carga de archivos.
  1. ^ No incluye a aquellos que trabajaron en marcos bifurcados para crear el marco listado.
  2. ^ Siempre que sea posible. Se excluye la carga de imágenes y otras tareas similares que actualmente no son compatibles con la API.

Bibliotecas:

  • Pywikibot – Probablemente el framework de bots más utilizado.
  • ceterach – Una interfaz para interactuar con MediaWiki
  • wikitools – Un marco de trabajo de bot liviano basado únicamente en Python-2 que utiliza la API de MediaWiki exclusivamente para obtener datos y editarlos, utilizado y mantenido por Mr.Z-man (descargas)
  • mwclient: un marco basado en API mantenido por Bryan
  • mwparserfromhell: un analizador de wikitexto, 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 MATLAB R2016b(9.1.x) preliminar (a febrero de 2019) que admite solo inicios de sesión de bots y consultas semánticas #ask.

Microsoft .NET

Microsoft .NET es un conjunto de lenguajes que incluye C# , C++/CLI , Visual Basic .NET , J# , JScript .NET , IronPython y Windows PowerShell . Con Mono Project , los programas .NET también pueden ejecutarse 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 que funcionan con MediaWiki. Ahora está traducido a varios idiomas. La documentación compilada detallada está disponible en inglés.
  • Biblioteca WikiFunctions .NET: incluida con AWB , es una biblioteca de material útil para bots, como generar listas, cargar/editar artículos, conectarse al canal IRC de cambios recientes y más.
  • WikiClientLibrary: es una biblioteca cliente API de MediaWiki portátil y asincrónica en .NET Standard. (ver en nuget, documentos).

Bibliotecas:

  • Marco de trabajo para bots wiki de Java: un marco de trabajo para bots wiki de Java
  • wiki-java: un marco de bot wiki de Java que es solo un archivo
  • WPCleaner: la biblioteca utilizada por la herramienta WPCleaner
  • jwiki: un marco de trabajo de bot wiki de Java simple y fácil de usar

Node.js

Bibliotecas:

  • mwn – Una biblioteca mantenida y escrita activamente en ES6 moderno usando promesas (compatible con async–await). Es una biblioteca grande y tiene clases para trabajar cómodamente con títulos de páginas y wikitexto (incluidas capacidades limitadas de análisis de wikitexto). También es compatible con TypeScript . Ver mwn en GitHub .
  • mock-mediawiki: una implementación de la interfaz MediaWiki JS en Node.js. Consulte simulacro de mediawiki en GitHub .
  • wikiapi: una forma sencilla de acceder a la API de MediaWiki a través de JavaScript con un sencillo analizador de wikitexto, utilizando el módulo CeJS MediaWiki. Vea ejemplos de bots de Wikipedia en GitHub .

Bibliotecas:

  • MediaWiki::Butt – Cliente API. Mantenimiento activo. Ver evaluación
  • mediawiki/ruby/api: cliente API del equipo de ingeniería de versiones de Wikimedia. Última actualización: diciembre de 2017. Ya no se mantiene, pero sigue funcionando.
  • wikipedia-client – ​​Cliente API. Última actualización: marzo de 2018. Se desconoce si todavía funciona.
  • MediaWiki::Gateway – Cliente API. Última actualización: enero de 2016. Se probó hasta MediaWiki 1.22, en ese momento era compatible con los wikis de Wikimedia. Se desconoce si todavía funciona.

Ceceo común

  • CL-MediaWiki: implementa la API de MediaWiki como un paquete Common Lisp . Está previsto utilizar JSON como formato de datos de consulta. Admite 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 existen marcos de trabajo para bots publicados para VBScript, pero a continuación se pueden ver algunos ejemplos de bots que lo utilizan:

Lua

  • Durante el taller anual de Lua de 2016, Jim Carter y Dfavro comenzaron a desarrollar el marco de trabajo de bots de Lua para proyectos Wikimedia. Comuníquese con Jim Carter en su página de discusión para hablar sobre el tema.
  • mwtest es un ejemplo que utiliza Lua para escribir un wikibot, creado por el usuario:Alexander Misel , con una API simple.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Ayuda:Crear_un_bot&oldid=1252637158"