Ciao a tutti,
Sto cercando di creare un’automazione personalizzata che, quando una query viene contrassegnata come soluzione/risolta, il creatore dell’argomento riceva un messaggio privato (o in alternativa, venga creata una nuova risposta nel thread con un messaggio predefinito - in entrambi i casi sarebbe un sondaggio).
Deve essere un’automazione personalizzata poiché lo script “invia messaggi privati” attualmente disponibile nel plugin di automazione invia i messaggi privati a chiunque abbia inviato la risposta contrassegnata come soluzione/risolta (e non alla persona che ha creato l’argomento, come previsto nel mio caso d’uso).
Di seguito è riportato lo script che ho creato per tentare di pubblicare una nuova risposta nell’argomento una volta che una risposta viene contrassegnata come soluzione (nell’esempio seguente, non invio il sondaggio come risposta, ma lascio la libertà all’amministratore di scegliere cosa verrà restituito o di lasciarlo come predefinito):
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# Pubblica una risposta nell'argomento in cui è stata contrassegnata una soluzione
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "È stata contrassegnata una soluzione per questo argomento!",
)
end
end
Ma non sono sicuro se dovrebbe essere PostCreator.create!, o PostCreator.reply, o forse qualcos’altro. Questo mi porta a una domanda:
- Ci sono parole chiave documentate da utilizzare durante la creazione di uno script di automazione personalizzato?
Sulla base dell’automazione di cui sopra, una volta che la attivo contrassegnando una risposta come soluzione, dopo 1 secondo ricevo un messaggio popup con un messaggio di errore “500 internal server error” sullo schermo.
- Mi manca qualcosa? Il mio deployment è stato eseguito utilizzando devcontainers, sulla mia macchina locale per scopi di test di sviluppo.
- Cosa è necessario fare, dopo aver creato lo script personalizzato? Forse mi manca qualcosa in questa fase? O forse è un problema nello script stesso?
- Ci sono documentati i passaggi da seguire dopo che lo script è stato completato? Ad esempio: quali file devono essere modificati affinché tutto funzioni senza intoppi? (Ho scoperto a mie spese che dovevo modificare il file
client.en.ymlper far apparire il nome e la descrizione corretti nell’elenco delle automazioni)
Ho intenzione di fare un tentativo, basandomi sullo script integrato “invia messaggi privati”, per modificare il mio script in modo che invece di creare una risposta, invii messaggi privati, ma non sono sicuro di quanto segue:
- come potrei taggare la persona che ha creato l’argomento e non quella che ha avuto la risposta contrassegnata come soluzione?
Grazie mille in anticipo per qualsiasi suggerimento e aiuto.