問題なく独自のスクリプトを作成することは可能ですか?フォルダに配置するだけで、プラグインの更新で何も起こらないのでしょうか?それとも、このプラグインと連携するプラグインを作成する必要がありますか?たとえば、トピックを作成するためのスクリプトが必要です。投稿作成スクリプトはありますが、自動トピックを作成する必要があります。よろしくお願いします!
カスタムスクリプトを定義するにはプラグインが必要です。
plugin.rb に次のようなものを記述します。
after_initialize do
if defined?(DiscourseAutomation)
add_automation_scriptable("my_custom_script") do
# ...
end
end
end
試しましたが、次のようなメッセージが表示されます。
自動化 testing 用のスクリプト lb-script が見つかりませんでした。関連するプラグインがインストールされていることを確認してください。
私の勘違いかもしれませんが、別のファイルを作成する必要がありますか、それともすべてを plugin.rb ファイルに入れるのが適切ですか?
コードを見せてくれないと、お手伝いするのが難しいです ![]()
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
何をしているのか文脈が不足しています。外部プラグインの完全な例を以下に示します。discourse-assign/plugin.rb at main · discourse/discourse-assign · GitHub
何が違うのか理解できません。もちろん、動作するかどうかを確認するためにポストスクリプトを使用しました。しかし、自動化を作成しようとすると、トリガーが見つからず、スクリプトが見つからないと表示されます。しかし、コードでは、投稿を作成するために2つのトリガーのいずれかを選択できるはずですよね?絶対に間違っていますが、よくわかりません。
新しいプラグインが有効になっているか確認しましたか?
はい、もちろんです。完全に有効になっています。
ローカルに割り当てて、リストに表示できるか試していただけますか?もし表示されない場合は、他に何か問題があるはずです。
Random Assign が Assign プラグインが有効になっていなくても機能することを確認できます。おそらく何か見落としているのでしょう。お時間を無駄にしたくありません。
問題の原因がわかりました。
lb-script を lb_script に変更したところ、正常に動作するようになりました。ハイフン (-) は使用できないようです。