これを実現する最も簡単な方法はどのようなものでしょうか?
Discourse の API を使用して毎日実行される外部スクリプトでしょうか?
それとも、すでに存在するプラグインがあるのでしょうか?
ありがとうございます。
これを実現する最も簡単な方法はどのようなものでしょうか?
Discourse の API を使用して毎日実行される外部スクリプトでしょうか?
それとも、すでに存在するプラグインがあるのでしょうか?
ありがとうございます。
おそらく、あなたの問題に対する最悪の解決策を説明されています。一度立ち止まって、問題の定義を明確にできますか?
リストの維持管理はどのように行われていますか?DiscourseConnect - Discourse の公式シングルサインオン (SSO) が有望な解決策ですが、他の選択肢も考えられます。
コンピュータ業界の人々の率直さが大好きです ![]()
プライベートなメーリングリストと、それに対応するプライベートなDiscourseカテゴリを使って、Mirroring a read-only mailing list in Discourse を試してみようかと考えています。
では、最善の方法は何でしょうか?あるいは、少しマシな方法でも構いません。リスト上の人々がフォーラムの非公開カテゴリを好むのであれば、それは Discourse の勝利です。
外部アプリケーションでこれらのユーザーを管理していない場合は、以下のような方法を実行できます。
def load_csv(path)
CSV.parse(File.read(path), headers: true)
end
def update_group
g=Group.find(43) #好きなグループID
GroupUser.where(group_id: g.id).destroy_all
user_emails=load_csv('/path/to/file')
user_emails.each do |u|
user = User.find_by_email(u['Email'])
next unless user
puts "found user #{uid}"
GroupUser.find_or_create_by(group_id: g.id, user_id: user.id)
end
end
それがどう実装されるかは全く別の問題です。プラグインを使うかもしれません。
カテゴリに投稿したユーザーを自動的にグループに追加するプラグインなどはどうでしょうか?
ありがとうございます。
そのカテゴリはグループのメンバーにしか表示されないため、ここで鶏と卵の問題が生じてしまいます!
私は PHP にかなり慣れているので、Mailman 2 からメールアドレスを取得するスクリプト(Python スクリプトが用意されています)を書いて、Discourse のユーザーリストと照合し、必要に応じて Discourse ユーザーを該当するグループに追加または削除するスクリプトを作成できると思います。あなたが「おそらく最悪の解決策」とおっしゃっていたことは承知しています…
まだメーリングリストのミラーリングをセットアップしていないので、現時点ではアイデアの段階です。
はい、でも私はデータを別の方法でリストにインポートすることを想定していました。
グループでリクエストを許可し、Discourse がそれを処理するように設定することもできます。
私はPHPが嫌いなので、あなたの案はますます悪く聞こえてきます!![]()
でも、DiscourseのAPIは比較的簡単に理解できるので、あなたにとってはそれが正しい解決策のように思えます!
Mailmanにフック機能があれば、購読者リストが更新された際にAPIを呼び出すように設定できるかもしれません。
「~のリストをミラーリングする」のような名前のカテゴリ設定も、役立つかもしれません。