Qual é o processo correto para automação personalizada?

Sou um novato e tenho algumas dúvidas sobre o tutorial de criação de automações personalizadas.

Na minha primeira tentativa, tentei escrever o script de automação diretamente no ambiente de desenvolvimento do GitHub Codespace (eu não entendo a sintaxe, o código foi escrito pelo Claude).
Após a modificação, a estrutura do arquivo deve ser assim:

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

Mas não tenho certeza se posso fazer isso em um ambiente de produção.
Além disso, não sei se essas modificações serão perdidas com um rebuild ou com a atualização do plugin automation, então não ouso tentar em produção. Talvez eu devesse enviar uma solicitação de recurso para que os mantenedores do plugin a adicionem?

Espero que amigos experientes possam me informar sobre o fluxo de trabalho correto, desde a escrita do teste até a aplicação em produção.
Muito obrigado!

1 curtida

Acredito que terá que ser em um novo plugin.

Você pode conferir:

3 curtidas

Eu verifiquei o link que você forneceu.
Você poderia me explicar por que devo usar plugins em vez de criar scripts dentro do plugin de automação?

  1. Eu não sou um profissional, e criar um plugin parece um pouco mais difícil.
  2. Eu tenho muitas funcionalidades para implementar, o que parece exigir a criação de muitos plugins? (Embora eu também goste de plugins, pois podem ser compartilhados)
1 curtida

Se não me engano, se você fizer alterações no plugin, elas serão sobrescritas na próxima vez que houver uma atualização.

4 curtidas

OK, era exatamente isso que eu estava temendo
Então o recurso de automação personalizada parece não ter muita utilidade para o usuário? :joy:
Vou dar mais uma olhada na documentação e, se não funcionar, tentarei criar um plugin

2 curtidas

Eu acho que o tutorial (que é um rascunho) está faltando essa informação. Ele explica como criar novas automações, mas não onde fazê-lo. As respostas mencionam exemplos de plugins, como o vinculado por @NateDhaliwal.

Simon também sugere dar uma olhada no plugin de exploração de dados: Create custom Automations - #6 by simon.

Depende do que você quer dizer com “usuário”? :smile: Como desenvolvedor, você certamente pode criar um novo plugin que adicione automações. Esta é a maneira correta de fazer isso.

Como você menciona não entender código, mas ser capaz de usar IA para isso, talvez você ache esta discussão interessante. Claude & Discourse-related development. How good is it?.

Estou atualmente experimentando isso (mas tenho noções vagas de código – não o suficiente para criar nem um plugin simples sozinho!), e compartilharei minha experiência recente com isso em breve.

Como o Claude o direcionou para editar o plugin de automação, você pode querer refinar seus prompts e fazer com que a IA siga boas práticas reais.

3 curtidas

Não. O que a torna uma automação personalizada é que ela não é uma que já vem incluída. Você precisará adicionar uma nova em um plugin. GitHub - scossar/automation-script-example: An example of how to add a custom script to the Discourse Automation plugin., linkado no tutorial. Você pode começar com ele e tentar dizer à IA que você deseja adicionar uma nova personalização.

O que você quer que sua automação personalizada faça?

1 curtida

Eu preciso de um script de automação que remova automaticamente membros de grupos que expiraram.
Defina o grupo e a duração, e o usuário será removido automaticamente após o vencimento.

Por exemplo:
Configuração: Grupo VIP, duração de 30 dias.
Quando um usuário entra no grupo VIP, ele é removido após 30 dias.

Estou cada vez mais confuso sobre se o plugin de automação pode realmente salvar scripts de automação que eu escrevi (comentários anteriores indicaram que eles seriam sobrescritos).

Se fosse você, como você normalmente usaria o plugin de automação?
Você poderia descrever exatamente como você o usaria (no caso de os scripts e gatilhos internos do plugin de automação não atenderem às suas necessidades)?
Acho que posso aprender sobre como as funcionalidades personalizadas funcionam com a descrição do seu cenário.

Como os usuários são adicionados ao grupo vip? Ou provavelmente faz sentido que o que os adiciona ao grupo também os remova. É o que o plugin de assinatura faz, por exemplo.

Automações não são removidas, mas editar código no seu contêiner é.

Você precisa de um gatilho para quando um usuário é adicionado a um grupo e uma ação para removê-lo de um grupo após um período de tempo. Não tenho certeza de quão fácil é fazer isso.

1 curtida