Quel est le bon processus pour l'automatisation personnalisée ?

Je suis novice et j’ai quelques questions concernant le tutoriel sur la création d’automatisations personnalisées.

J’ai essayé d’écrire un script d’automatisation directement dans l’environnement de développement GitHub Codespace pour la première fois (je ne connais pas la syntaxe, le code a été écrit par Claude).
Après modification, la structure des fichiers devrait être la suivante :

plugins/automation/
├── lib/
│   └── discourse_automation/
│       ├── scripts.rb                 # Modifié
│       └── scripts/
│           ├── ...                    # Autres scripts
│           └── remove_expired_group_members.rb  # Ajouté
└── config/
    └── locales/
        ├── server.en.yml              # Modifié
        ├── client.en.yml              # Modifié
        ├── server.zh_CN.yml           # Modifié
        └── client.zh_CN.yml           # Modifié

Cependant, je ne sais pas si cette manipulation est autorisée en environnement de production.
De plus, je ne sais pas si ces modifications seront perdues lors d’un rebuild ou d’une mise à jour du plugin automation, donc je n’ose pas essayer en production. Peut-être devrais-je soumettre une demande de fonctionnalité pour que les mainteneurs du plugin l’ajoutent ?

J’espère que des amis expérimentés pourront m’indiquer le processus correct, de l’écriture des tests à l’application en environnement de production.
Merci beaucoup !

1 « J'aime »

Je crois que cela devra se faire dans une nouvelle extension (plugin).
Vous pouvez consulter :

3 « J'aime »

J’ai consulté le lien que vous avez fourni.
Pourriez-vous m’expliquer pourquoi il est préférable d’utiliser des plugins plutôt que de créer des scripts dans l’automatisation des plugins ?

  1. Je ne suis pas un professionnel, et il semble plus difficile de créer un plugin.
  2. J’ai de nombreuses fonctionnalités à implémenter, ce qui semble nécessiter la création de nombreux plugins ? (Bien que j’aime aussi les plugins pour le partage)
1 « J'aime »

Si je ne me trompe pas, si vous apportez des modifications au plugin, elles seront écrasées lors de la prochaine mise à jour.

4 « J'aime »

OK, c’est ce que je craignais
Alors, la fonctionnalité d’automatisation personnalisée n’est pas très utile pour l’utilisateur ? :joy:
Je vais relire la documentation, et si cela ne fonctionne pas, j’essaierai de créer un plugin.

2 « J'aime »

Je pense que le tutoriel (qui est une ébauche) manque de cette information. Il explique comment créer de nouvelles automatisations, mais pas le faire. Les réponses mentionnent des exemples de plugins cependant, comme celui lié par @NateDhaliwal.

Simon suggère également de jeter un œil au plugin d’exploration de données : Create custom Automations - #6 by simon.

Cela dépend de ce que vous entendez par « utilisateur » ? :smile: En tant que développeur, vous pouvez certainement créer un nouveau plugin qui ajoute des automatisations. C’est la manière de le faire correctement.

Puisque vous mentionnez ne pas comprendre le code, mais être capable d’utiliser l’IA pour cela, peut-être trouverez-vous cette discussion intéressante. Claude & Discourse-related development. How good is it?.

Je suis actuellement en train d’expérimenter avec cela (mais j’ai des notions vagues de code – pas assez pour créer même un plugin simple par moi-même !), et je partagerai bientôt mon expérience récente à ce sujet.

Puisque Claude vous a dirigé vers la modification du plugin d’automatisation, vous voudrez peut-être affiner vos invites et demander à l’IA de suivre de bonnes pratiques réelles.

3 « J'aime »

Non. Ce qui en fait une automatisation personnalisée, c’est qu’elle n’est pas intégrée. Vous devrez en ajouter une nouvelle dans un plugin. GitHub - scossar/automation-script-example: An example of how to add a custom script to the Discourse Automation plugin., lié dans le tutoriel. Vous pouvez commencer par celui-ci et essayer de dire à l’IA que vous souhaitez ajouter une nouvelle personnalisation.

Que voulez-vous que fasse votre automatisation personnalisée ?

1 « J'aime »

J’ai besoin d’un script d’automatisation qui supprime automatiquement les membres de groupe expirés.
Définissez le groupe et la durée, et l’utilisateur sera automatiquement supprimé à l’expiration.

Par exemple :
Définition : Groupe VIP, durée de 30 jours.
Lorsqu’un utilisateur rejoint le groupe VIP, il est supprimé après 30 jours.

Je suis de plus en plus confus quant à savoir si le plugin d’automatisation peut enregistrer les scripts d’automatisation que j’écris moi-même (les commentaires précédents indiquent qu’ils seront écrasés).

Si c’était vous, comment utiliseriez-vous généralement le plugin d’automatisation ?
Pourriez-vous décrire précisément votre méthode d’utilisation (dans le cas où les scripts et déclencheurs intégrés du plugin d’automatisation ne répondent pas aux besoins) ?
Je pense que je pourrais apprendre comment fonctionnent les fonctionnalités personnalisées à partir de la description de votre scénario.

Comment les utilisateurs sont-ils ajoutés au groupe VIP ? Ou il serait probablement logique que ce qui les ajoute au groupe les en retire également. C’est ce que fait le plugin d’abonnement, par exemple.

Les automatisations ne sont pas supprimées, mais l’édition du code dans votre conteneur l’est.

Vous avez besoin d’un déclencheur pour le moment où un utilisateur est ajouté à un groupe, et d’une action pour le retirer d’un groupe après une période donnée. Je ne sais pas à quel point c’est facile à faire.

1 « J'aime »