stringtranslate.com

Usuario: SDZeroBot

SDZeroBot

Ganador del premio a la herramienta más genial de 2020

en la categoría
Recién llegado

No hay ninguna camarilla

SDZeroBot se ejecuta en Node.js y utiliza el framework de bots mwn, también desarrollado por SD0001 . La mayoría de las tareas están escritas en JavaScript , mientras que las más nuevas están escritas en TypeScript . El código fuente está disponible en GitHub.

Tareas

Informes

Otras tareas continuas

Una sola vez / bajo demanda

Las tareas que solo se editan en el espacio de usuario no requieren un BRFA.

¿Cómo generar extractos de artículos?

Buena pregunta. Los extractos de artículos utilizados en muchas de las páginas de clasificación de SDZeroBot se generan utilizando una combinación de expresiones regulares y algunos métodos de análisis ligeramente más formales. El código fuente de Node.js utilizado se puede ver aquí, que también se basa en la clase wikitext de mwn. Este generador de extractos también está disponible como un servicio web alojado en Toolforge en https://summary-generator.toolforge.org/ con una interfaz de usuario mínima horrible, pero un mejor punto final de API. Consulte el README de GitHub para obtener instrucciones de uso.

Inicialmente consideré usar el código de ventanas emergentes , pero era demasiado desordenado y estaba integrado con muchos otros códigos de ventanas emergentes, por lo que no pude lograr que funcionara de forma independiente.

Todos los extractos son lo suficientemente breves, de modo que se evitan problemas de atribución y derechos de autor.

Código fuente

Todo el código fuente que impulsa SDZeroBot está disponible públicamente a través del repositorio de GitHub, así como en el directorio /data/project/sdzerobot en Toolforge. Incluso los registros (archivos *.out y *.err) son visibles públicamente, lo que no es el caso por defecto en Toolforge. El archivo jobs.yml que se utiliza para programar las tareas también se puede ver allí.

Hacer

Si estás interesado en ayudar con estas tareas, por favor contáctame.

Consejos y trucos para operadores de bots

Monitoreo de fallas

Para cada tarea de SDZeroBot, la mayor parte del código se encuentra en una función asincrónica con una captura que captura los errores y los formatea como un correo electrónico enviado a la cuenta de la herramienta, que llega a mi bandeja de entrada. Por si fuera poco, también hay un controlador de excepciones no capturadas a nivel de proceso.

Los únicos tipos de errores que lo anterior no manejaría son los que ocurren incluso antes de que el código javascript comience a ejecutarse (como cuando el archivo pierde accidentalmente su permiso de ejecución) o los OOM , que se manejan ambos mediante --emails onfailureel uso del marco de trabajos de Toolforge.

Además, en el caso de las páginas de informes, esta página de usuario las enumera junto con las marcas de tiempo de su última actualización. Junto con la frecuencia esperada de las actualizaciones, se envía a un módulo Lua que imprime la marca de tiempo en negrita y rojo si se retrasa.

También está WP:BAM , que aunque lo mantiene SDZeroBot, no se utiliza para monitorizarse a sí mismo.

Una buena combinación de técnicas de monitoreo de fallas es esencial para operar bots que realicen de manera confiable una serie de tareas sin requerir que usted gaste tiempo y energía en asegurarse de que todo esté funcionando.

Cómo gestionar enlaces incluidos en listas negras

Si SDZeroBot no puede guardar una edición porque está introduciendo un enlace incluido en la lista negra de spam (lo que, por supuesto, no es culpa del bot, ya que probablemente haya recogido el texto que se añadirá de otro lugar), identifica el enlace problemático a partir de la respuesta de la API, elimina el protocolo ("http:" o "https:") del enlace y, a continuación, intenta guardar la página de nuevo. Esto significa que un enlace que se suponía que debía tener el aspecto de Etiqueta de enlace termina teniendo el aspecto de [etiqueta de enlace de google.com], pero es el más parecido al original y permite que se realice la edición. Además, el enlace estaba incluido en la lista negra de todos modos, por lo que probablemente no debería ser posible hacer clic en él.

Utilice OAuth

Utilice siempre OAuth en lugar de BotPasswords. Tiene todas estas ventajas: