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 camarilla

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

Tareas

Informes

Otras tareas continuas

Una vez/bajo demanda

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

¿Cómo se generan 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 un poco 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 API. Consulte el archivo README de GitHub para obtener instrucciones de uso.

Inicialmente consideré usar el código de las ventanas emergentes , pero era demasiado complicado y estaba tan integrado con muchos otros códigos de ventanas emergentes que no podía hacer que funcionara de forma independiente.

Todos los extractos son lo suficientemente breves para evitar 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 de forma predeterminada en Toolforge. El crontab en vivo utilizado 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 está en una función asíncrona con un elemento que detecta errores y lo formatea como un correo electrónico enviado a la cuenta de la herramienta, que llega a mi bandeja de entrada. Por si acaso, también hay un controlador de excepciones uncaughtException 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 que el archivo pierda accidentalmente su permiso ejecutable) o OOM , ambos se manejan --emails onfailureusando el marco de trabajo de Toolforge.

Además, para las páginas del informe, esta página de usuario las enumera arriba junto con sus últimas marcas de tiempo actualizadas. Junto con la frecuencia esperada de las actualizaciones, se introduce en un módulo Lua que imprime la marca de tiempo en rojo negrita si se retrasa.

También está WP:BAM que, aunque lo mantiene SDZeroBot, no se utiliza para monitorearse.

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 que usted dedique tiempo y energía a asegurarse de que todo esté funcionando.

Manejo de enlaces en la lista negra

Si SDZeroBot no puede guardar una edición porque está introduciendo un enlace en la lista negra de spam (lo cual, por supuesto, no es culpa del bot, ya que probablemente simplemente recogió el texto que se agregará desde otro lugar), identifica el enlace problemático del Respuesta de API, elimina el protocolo ("http:" o "https:") del enlace y luego intenta guardar la página nuevamente. Esto significa que un enlace que se suponía que debía verse como Etiqueta de enlace termina pareciéndose a [etiqueta de enlace de google.com], pero es el más cercano al original y permite que se realice la edición. Además, el enlace estaba en la lista negra de todos modos, por lo que probablemente no debería poder hacer clic.

Usar OAuth

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