È possibile creare script personalizzati senza problemi? Basta metterli nella cartella e con gli aggiornamenti dei plugin, non succede nulla? O devo creare un plugin che si interfaccia con questo plugin? Ad esempio, ho bisogno di uno script per creare un argomento. Esiste uno script per la creazione di post, ma ho bisogno di creare argomenti automatici. Grazie!
Sì, necessita di un plugin per definire uno script personalizzato.
Qualcosa del genere in plugin.rb
after_initialize do
if defined?(DiscourseAutomation)
add_automation_scriptable("my_custom_script") do
# ...
end
end
end
Ho provato ma dice:
Impossibile trovare lo script lb-script per l’automazione testing, assicurati che il plugin associato sia installato
Forse sbaglio, ma dovrei creare un file separato o va bene mettere tutto nel file plugin.rb?
Mostrami del codice, altrimenti sarà difficile aiutarti ![]()
Ho appena provato con lo script post copiato dalla cartella degli script del plugin Automation:
after_initialize do
if defined?(DiscourseAutomation)
add_automation_scriptable("lb-script") do
version 1
placeholder :creator_username
field :creator, component: :user
field :topic, component: :text, required: true
field :post, component: :post, required: true
triggerables %i[recurring point_in_time]
script do |context, fields, automation|
creator_username = fields.dig("creator", "value") || Discourse.system_user.username
placeholders = { creator_username: creator_username }.merge(context["placeholders"] || {})
creator = User.find_by!(username: creator_username)
PostCreator.new(
creator,
topic_id: fields.dig("topic", "value"),
raw: fields.dig("post", "value"),
).create!
end
end
end
end
Mi manca il contesto su cosa stai facendo qui, ecco un esempio completo in un plugin esterno: discourse-assign/plugin.rb at main · discourse/discourse-assign · GitHub
Non capisco quale sia la differenza rispetto a quello che ho fatto. Ovviamente ho usato lo script post solo per vedere se funzionava. Ma quando vado a creare un’automazione, non mi trova alcun trigger e dice che non riesce a trovare lo script. Ma il codice dovrebbe permettermi di scegliere tra i 2 trigger per creare un post, giusto? Mi sbaglio sicuramente ma non capisco bene.
sei sicuro che il tuo nuovo plugin sia abilitato?
Sì, certo. È assolutamente abilitato.
Puoi provare a usare assign localmente e vedere se riesci a farlo apparire nell’elenco? Altrimenti c’è qualcos’altro che non va.
Posso confermare che Assegnazione Casuale funziona anche se il plugin Assegnazione non è abilitato. Probabilmente mi sfugge qualcosa, non voglio farti perdere tempo.
Ho capito qual era il problema.
Ho cambiato lb-script in lb_script e ora funziona. Evidentemente non si può usare il simbolo del trattino (-).