SDZeroBot
Ganador del premio Coolest Tool 2020
en la categoría
Recién llegado
SDZeroBot se ejecuta en Node.js y utiliza el marco 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 en TypeScript . El código fuente está disponible en GitHub .
Tareas
Informes
Informe | Descripción | Frecuencia | Última actualización | Registros |
---|---|---|---|---|
WP: Scripts de usuario / La mayoría de los scripts importados | Lista de scripts de usuario por número de usuarios y usuarios activos | Cada 2 semanas | 1 de julio de 2021 | cabo err |
WP: clasificación AfC + subpáginas | Clasificación de las presentaciones de AfC pendientes por temas previstos por ORES | Cada 8 horas | 11 de julio de 2021 | cabo err |
Usuario: clasificación SDZeroBot / NPP + subpáginas | Clasificación de artículos no revisados por temas ORES | Cada 12 horas | 11 de julio de 2021 | cabo err |
Usuario: clasificación SDZeroBot / PROD | Clasificación de artículos propuestos para eliminación PROD por temas ORES | Cada 4 horas | 11 de julio de 2021 | cabo err |
Usuario: clasificación SDZeroBot / AfD | Clasificación de artículos propuestos para su eliminación en AfD por temas ORES | Cada 4 horas | 11 de julio de 2021 | cabo err |
Usuario: SDZeroBot / Draftify Watch | Realiza un seguimiento de los artículos que se mueven al espacio de borrador | Semanal | 6 de julio de 2021 | cabo err |
Usuario: SDZeroBot / PROD Watch | Realiza un seguimiento del estado de los artículos propuestos para su eliminación por WP: PROD | Semanal | 7 de julio de 2021 | cabo err |
Usuario: SDZeroBot / Redirectify Watch | Realiza un seguimiento de las conversiones de artículos a redireccionamientos. | Diario | 11 de julio de 2021 | cabo err |
Usuario: Reloj SDZeroBot / G13 | Registra extractos de borradores nominados para su eliminación G13 | Diario | 11 de julio de 2021 | cabo err |
Usuario: SDZeroBot / Disminuciones recientes de AfC | Listas de borradores de AFC recientemente rechazados con extractos y otros datos | Diario | 11 de julio de 2021 | cabo err |
Usuario: SDZeroBot / G13 pronto | Enumera los borradores que serían elegibles para G13 en una semana | Diario | 11 de julio de 2021 | cabo err |
Usuario: SDZeroBot / G13 pronto ordenando | Clasifica los borradores que pronto serán elegibles para G13 por temas de ORES | Semanal | 5 de julio de 2021 | cabo err |
Usuario: SDZeroBot / G13 elegible | Enumera los borradores elegibles para G13 con descripciones y extractos | Diario | 11 de julio de 2021 | cabo err |
Usuario: clasificación SDZeroBot / GAN | Clasifica artículos en espera de revisión de GA utilizando temas ORES | Diario | 10 de julio de 2021 | cabo err |
Usuario: SDZeroBot / revisiones de pares | Lista anotada de artículos para los que se solicita revisión por pares | Semanal | 6 de julio de 2021 | cabo err |
Usuario: SDZeroBot / BLP sin referencia | Lista anotada de BLP sin referencia, para Mujeres de Rojo | Diario | 10 de julio de 2021 | cabo err |
WP: Lista de wikipedistas por buenas nominaciones de artículos | Lista de usuarios por mayoría de GA | Diario | 10 de julio de 2021 | cabo err |
Otras tareas continuas
Trabajo | Registros |
---|---|
Arroyo | cabo err |
enrutador | cabo err |
gans | cabo err |
g13-reloj | cabo err |
BRFA | Descripción | Frecuencia | Registros |
---|---|---|---|
BRFA | AfD notificador notificar a los usuarios de nominaciones AFD de artículos a los que han contribuido de manera significativa | Diario | cabo err |
BRFA | Monitor de actividad de bots: realiza un seguimiento de la actividad de bots completamente automáticos e informa sobre los que no funcionan. Opcionalmente también notifica a los respectivos operadores. | Continuo | cabo err |
BRFA | Actualice los informes de la base de datos en las páginas que incluyen Usuario: SDZeroBot / Informe de la base de datos | Continuo | cabo err |
Una vez / bajo demanda
BRFA | Descripción | Frecuencia |
---|---|---|
BRFA | Consolide las etiquetas stub en la página cuando sea posible (reemplace X-stub e Y-stub con XY-stub o YX-stub si existe alguno) | Una vez |
BRFA | Reordenar artículos de resguardo geográfico con etiquetas de resguardo más específicas | Bajo demanda |
- | Creó las listas en Usuario: SDZeroBot / Ciclos de categoría que identifican ciclos en el árbol de categorías | Una vez |
BRFA | Agregar {{ Borradores movidos desde el espacio principal }} a los borradores que se movieron desde el espacio principal | Una vez |
BRFA | Añadiendo {{ Establecer categoría }} para establecer categorías . | Bajo demanda |
Las tareas que se editan solo en el espacio de usuario no requieren un BRFA.
¿Cómo se generan extractos de artículos?
Buena pregunta. Los extractos de los 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 de wikitexto de mwn . Este extractor de texto 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 archivo README de GitHub para obtener instrucciones de uso.
Inicialmente consideré usar el código de las ventanas emergentes , pero era demasiado complicado e integrado con muchos otros códigos de ventanas emergentes que no podía hacer que funcionara de forma independiente.
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 predeterminado en Toolforge. El crontab en vivo que se usa para programar las tareas también se puede ver allí.
Que hacer
Si está interesado en ayudar con estas tareas, comuníquese conmigo.
- Divida determinadas listas de clasificación en subtemas.
- Para la lista de deportes (más de 1500 páginas), use el aprendizaje automático para dividir esta lista por deporte.
- Divida la lista de biografías por profesiones: esto se puede hacer simplemente mirando los otros temas con los que se han clasificado las biografías.
- Para las listas STEM, haga secciones para artículos centrales, biografías STEM, medios STEM, empresas STEM, ... ( discusión )
- Produzca automáticamente descripciones breves para artículos y borradores.
- La mayoría de los borradores no tienen descripciones breves. Serían muy útiles en la clasificación AfC . También es útil para las listas AfD, NPP y PROD.
- Explore el uso del aprendizaje automático para esto, a falta de otros métodos como el generador de bio shortdesc de Trialpears .
- Si eso tampoco brinda el nivel deseado de precisión (especialmente para artículos que no son biográficos), no agregue las descripciones breves al artículo, sino muéstrelo en las listas de clasificación.
- Considere la posibilidad de crear una interfaz de usuario web alojada en Toolforge para la lista de clasificación de AfD, de modo que se puedan agregar más columnas (cuya visibilidad se puede alternar usando javascript), según las ideas aquí .
- Automatice el etiquetado delsort de AfD mediante ORES. Funciona solo para listas de delsort seleccionadas que tienen un tema ORES correspondiente, o
- Automatice las etiquetas de delsort utilizando algún modelo de aprendizaje automático personalizado. El modelo se puede entrenar sobre la base del etiquetado delsort realizado hasta ahora por humanos. La dificultad aquí es que la capacitación imparcial del modelo también requiere acceso al contenido de los artículos eliminados. Simplemente entrenarlo en artículos que se mantuvieron en AfD no daría buenos resultados.
- Uno grande: identificar borradores de AFC prometedores usando ML.
- Probablemente usando TemplateStyles, mejore la apariencia de las tablas en pantallas muy pequeñas y muy anchas.
- Cree listas unificadas para PROD y AFD que incluyan tanto la justificación de la eliminación como el texto principal. PINCHAR
- No duplique el texto de la nominación en el informe de clasificación de la AFD para nominaciones de varios artículos.
- Usuario: SDZeroBot / AFC rechazados , G13 pronto descubrirá formas de identificar mejor los borradores malos y buenos?
- integre la detección de fuentes no confiables usando user: headbomb / unreliable.js
- Crear herramienta de búsqueda de artículos: muestra extractos de artículos de las consultas de CirrusSearch: use ReactJS
Consejos y trucos para operadores de bots
Manejo de enlaces incluidos en la lista negra
Si SDZeroBot no puede guardar una edición porque está introduciendo un enlace de spam en la lista negra (lo cual, por supuesto, no es culpa del bot, ya que probablemente solo tomó el texto para agregarlo desde otro lugar), identifica el enlace problemático del Respuesta de la API y 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 parecerse a una etiqueta de enlace acaba pareciéndose a [etiqueta de enlace de google.com], pero está más cerca del original y permite que se realice la edición. Además, el enlace se incluyó en la lista negra de todos modos, por lo que probablemente no debería ser posible hacer clic.
Utilice OAuth
Utilice siempre OAuth en lugar de BotPasswords. Existen todas estas ventajas:
- Más rápido: BotPasswords requiere al menos 3 llamadas a la API solo para sacar al bot del bloque: una para buscar un token de inicio de sesión, otra para iniciar sesión y, por lo general, otra para recuperar los tokens de edición. Dado que OAuth no requiere ninguna llamada a la API para comenzar la autenticación, solo necesita una llamada a la API para recuperar los tokens.
- Errores menores: la pérdida de sesión a menudo se produce al utilizar métodos de autenticación basados en cookies. Los buenos frameworks de bots deberían manejarlos automáticamente al iniciar sesión nuevamente para obtener la respuesta de API assertbotfailed o assertuserfailed, pero si el tuyo no lo hace, puedes evitar estos problemas simplemente usando OAuth. Los tokens de OAuth no caducan.
- No es necesario almacenar cookies en caché: si la tarea de su bot es demasiado frecuente (por ejemplo, cada 10 minutos), es probable que tenga una alta tasa de inicio de sesión a menos que almacene las cookies de inicio de sesión en caché y las use en las ejecuciones de bot. Los administradores de servidores desaprueban las altas tasas de inicio de sesión . Nuevamente, con OAuth, no tiene que preocuparse por esto.
- Más seguro: no sé exactamente por qué, pero he oído que OAuth es más seguro.