¿Es posible crear mis propios scripts sin ningún problema? ¿Simplemente poniéndolos en la carpeta y con las actualizaciones del plugin, no pasa nada? ¿O tengo que crear un plugin que interactúe con este plugin? Por ejemplo, necesito un script para crear un tema. Hay un script de creación de publicaciones, pero necesito crear temas automáticos. ¡Gracias!
Sí, necesita un plugin para definir un script personalizado.
Algo como esto en plugin.rb
after_initialize do
if defined?(DiscourseAutomation)
add_automation_scriptable("my_custom_script") do
# ...
end
end
end
Lo intenté pero dice:
No se encontró el script lb-script para la automatización testing, asegúrate de que el plugin asociado esté instalado
Quizás me equivoque, pero ¿debería crear un archivo separado o está bien poner todo en el archivo plugin.rb?
Muéstrame algo de código o me será difícil ayudarte ![]()
Acabo de intentarlo con el script posterior copiado de la carpeta de scripts 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
Me falta contexto sobre lo que estás haciendo aquí, aquí tienes un ejemplo completo en un plugin externo: discourse-assign/plugin.rb at main · discourse/discourse-assign · GitHub
No entiendo cuál es la diferencia con lo que hice. Obviamente, usé el script posterior solo para ver si funcionaba. Pero cuando voy a crear una automatización, no me encuentra ningún disparador y dice que no puede encontrar el script. Pero el código debería permitirme elegir entre los 2 disparadores para crear una publicación, ¿verdad? Definitivamente me equivoco, pero no lo entiendo realmente.
¿estás seguro de que tu nuevo plugin está habilitado?
Sí, por supuesto. Está absolutamente habilitado.
¿Puedes intentar usar assign localmente y ver si logras que aparezca en la lista? Si no, algo más está sucediendo.
Confirmo que Asignación Aleatoria funciona incluso si el plugin Asignar no está habilitado. Probablemente me falte algo, no quiero hacerle perder el tiempo.
Descubrí cuál era el problema.
Cambié lb-script a lb_script y ahora funciona. Evidentemente no se puede usar el símbolo del guion (-).