¿Cuál es el proceso correcto para la automatización personalizada?

Soy un principiante y tengo algunas preguntas sobre el tutorial de creación de automatizaciones personalizadas.

Intenté escribir el script de automatización directamente en el entorno de desarrollo de GitHub Codespace por primera vez (no entiendo la sintaxis, el código fue escrito por Claude).
Después de la modificación, la estructura de archivos debería ser la siguiente:

plugins/automation/
├── lib/
│   └── discourse_automation/
│       ├── scripts.rb                 # Modificado
│       └── scripts/
│           ├── ...                    # Otros scripts
│           └── remove_expired_group_members.rb  # Nuevo
└── config/
    └── locales/
        ├── server.en.yml              # Modificado
        ├── client.en.yml              # Modificado
        ├── server.zh_CN.yml           # Modificado
        └── client.zh_CN.yml           # Modificado

Pero no estoy seguro de si puedo hacer esto en un entorno de producción.
Además, no estoy seguro de si estas modificaciones se perderán con una reconstrucción (rebuild) o con la actualización del plugin de automatización, por lo que no me atrevo a probarlo en producción. ¿Quizás debería enviar una solicitud de función para que el personal de mantenimiento del plugin la añada?

Espero que amigos con experiencia puedan informarme sobre el flujo de trabajo correcto, desde la escritura de pruebas hasta la aplicación en el entorno de producción.
¡Muchas gracias!

1 me gusta

Creo que tendrá que ser en un nuevo complemento.
Puedes consultar:

3 Me gusta

He revisado el enlace que me proporcionaste.
Me pregunto, ¿podrías explicarme por qué debería usar complementos en lugar de crear scripts dentro de la automatización de complementos?

  1. No soy un profesional, y parece que crear un complemento es un poco más difícil.
  2. Tengo muchas funciones que implementar, ¿esto parece requerir la creación de muchos complementos? (Aunque también me gustan los complementos porque se pueden compartir).
1 me gusta

Si no me equivoco, si haces cambios en el complemento, se sobrescribirán la próxima vez que haya una actualización.

4 Me gusta

OK, eso es lo que me temía
Entonces, ¿la función de automatización personalizada no parece tener mucho sentido para el usuario? :joy:
Voy a revisar la documentación de nuevo, y si no funciona, intentaré crear un complemento.

2 Me gusta

Creo que al tutorial (que es un borrador) le falta esta información. Explica cómo crear nuevas automatizaciones, pero no dónde hacerlo. Las respuestas mencionan ejemplos de complementos, como el enlazado por @NateDhaliwal.

Simon también sugiere echar un vistazo al complemento de exploración de datos: Create custom Automations - #6 by simon.

¿Depende de lo que entiendas por “usuario”? :smile: Como desarrollador, seguramente puedes crear un nuevo complemento que añada automatizaciones. Esta es la forma correcta de hacerlo.

Ya que mencionas no entender código, pero ser capaz de usar IA para esto, quizás te interese esta discusión. Claude & Discourse-related development. How good is it?.

Actualmente estoy experimentando con esto (¡pero tengo nociones vagas de código, no suficientes para crear ni siquiera un complemento simple por mí mismo!) y pronto compartiré mi experiencia reciente al respecto.

Dado que Claude te indicó que editaras el complemento de automatización, quizás quieras refinar tus indicaciones y hacer que la IA siga buenas prácticas reales.

3 Me gusta

No. Lo que la convierte en una automatización personalizada es que no es una que esté integrada. Tendrás que añadir una nueva en un complemento. GitHub - scossar/automation-script-example: An example of how to add a custom script to the Discourse Automation plugin., enlazado en el tutorial. Puedes empezar con ese e intentar decirle a la IA que quieres añadir una nueva personalización.

¿Qué quieres que haga tu automatización personalizada?

1 me gusta

Necesito un script de automatización que elimine automáticamente a los miembros de un grupo cuando expire su membresía.
Establezca el grupo y la duración, y el usuario será eliminado automáticamente al expirar.

Por ejemplo:
Configuración: Grupo VIP, duración de 30 días.
Cuando un usuario se une al grupo VIP, se le elimina después de 30 días.

Estoy cada vez más confundido acerca de si el complemento de automatización puede guardar los scripts de automatización que escribo yo mismo (los comentarios anteriores indicaban que serían sobrescritos).

Si fuera usted, ¿cómo usaría normalmente el complemento de automatización?
¿Podría describir con precisión su método de uso (en caso de que los scripts y disparadores integrados del complemento de automatización no satisfagan sus necesidades)?
Creo que podría aprender cómo funcionan las funciones personalizadas a partir de la descripción de su escenario.

¿Cómo se añaden los usuarios al grupo vip? O probablemente tenga sentido que lo que los añade al grupo también los quite. Eso es lo que hace el complemento de suscripción, por ejemplo.

Las automatizaciones no se eliminan, pero editar el código en su contenedor sí.

Necesita un disparador para cuando se añade un usuario a un grupo y una acción para eliminarlo de un grupo después de un período de tiempo. No estoy seguro de lo fácil que es hacer eso.

1 me gusta