Est-il possible de créer ses propres scripts sans aucun problème ? Il suffit de le mettre dans le dossier et avec les mises à jour du plugin, rien ne se passe ? Ou dois-je créer un plugin qui s’interface avec ce plugin ? Par exemple, j’ai besoin d’un script pour créer un sujet. Il existe un script de création de messages, mais j’ai besoin de créer des sujets automatiques. Merci !
Oui, cela nécessite un plugin pour définir un script personnalisé.
Quelque chose comme ceci dans plugin.rb
after_initialize do
if defined?(DiscourseAutomation)
add_automation_scriptable("my_custom_script") do
# ...
end
end
end
J’ai essayé mais il dit :
Impossible de trouver le script lb-script pour l’automatisation testing, assurez-vous que le plugin associé est installé
Je me trompe peut-être, mais dois-je créer un fichier séparé ou est-il acceptable de tout mettre dans le fichier plugin.rb ?
Montrez-moi du code, sinon il me sera difficile de vous aider ![]()
J’ai juste essayé avec le post script copié du dossier des scripts du 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
Je manque de contexte sur ce que vous faites ici, voici un exemple complet dans un plugin externe : discourse-assign/plugin.rb at main · discourse/discourse-assign · GitHub
Je ne comprends pas la différence par rapport à ce que j’ai fait. Évidemment, j’ai utilisé le post script juste pour voir si ça marchait. Mais quand je vais créer une automatisation, il ne me trouve aucun déclencheur et il dit qu’il ne trouve pas le script. Mais le code devrait me permettre de choisir entre les 2 déclencheurs pour créer un post, n’est-ce pas ? Je me trompe certainement mais je ne comprends pas vraiment.
Êtes-vous sûr que votre nouveau plugin est activé ?
Oui, bien sûr. C’est absolument activé.
Pouvez-vous essayer d’assigner localement et voir si vous parvenez à l’afficher dans la liste ? Sinon, il y a autre chose qui se passe.
Je peux confirmer que l’attribution aléatoire fonctionne même si le plugin d’attribution n’est pas activé. Il y a probablement quelque chose qui m’échappe, je ne veux pas vous faire perdre votre temps.
J’ai compris quel était le problème.
J’ai changé lb-script en lb_script et cela fonctionne maintenant. Il semble qu’on ne puisse pas utiliser le symbole du trait d’union (-).