カスタムオートメーションの作成

問題なく独自のスクリプトを作成することは可能ですか?フォルダに配置するだけで、プラグインの更新で何も起こらないのでしょうか?それとも、このプラグインと連携するプラグインを作成する必要がありますか?たとえば、トピックを作成するためのスクリプトが必要です。投稿作成スクリプトはありますが、自動トピックを作成する必要があります。よろしくお願いします!

「いいね!」 2

カスタムスクリプトを定義するにはプラグインが必要です。

plugin.rb に次のようなものを記述します。

after_initialize do
  if defined?(DiscourseAutomation)
    add_automation_scriptable("my_custom_script") do
      # ...
    end
  end
end
「いいね!」 3

試しましたが、次のようなメッセージが表示されます。

自動化 testing 用のスクリプト lb-script が見つかりませんでした。関連するプラグインがインストールされていることを確認してください。

私の勘違いかもしれませんが、別のファイルを作成する必要がありますか、それともすべてを plugin.rb ファイルに入れるのが適切ですか?

「いいね!」 1

コードを見せてくれないと、お手伝いするのが難しいです :slight_smile:

「いいね!」 1

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

「いいね!」 1

何が違うのか理解できません。もちろん、動作するかどうかを確認するためにポストスクリプトを使用しました。しかし、自動化を作成しようとすると、トリガーが見つからず、スクリプトが見つからないと表示されます。しかし、コードでは、投稿を作成するために2つのトリガーのいずれかを選択できるはずですよね?絶対に間違っていますが、よくわかりません。

新しいプラグインが有効になっているか確認しましたか?

「いいね!」 1

はい、もちろんです。完全に有効になっています。

ローカルに割り当てて、リストに表示できるか試していただけますか?もし表示されない場合は、他に何か問題があるはずです。

Random Assign が Assign プラグインが有効になっていなくても機能することを確認できます。おそらく何か見落としているのでしょう。お時間を無駄にしたくありません。

「いいね!」 3

問題の原因がわかりました。

lb-scriptlb_script に変更したところ、正常に動作するようになりました。ハイフン (-) は使用できないようです。

「いいね!」 3