# name: discourse-auto-remove-group
# version: 0.1
# authors: tknospdr
# url: https://github.com/tknospdr/discourse-auto-remove-group
enabled_site_setting :auto_remove_group_enabled
# Site setting to enable/disable the plugin
register_site_setting :auto_remove_group_enabled, type: :boolean, default: false
register_site_setting :auto_remove_group_category_id, type: :integer, default: 0
register_site_setting :auto_remove_group_name, type: :string, default: ""
after_initialize do
# Listen for post creation events
DiscourseEvent.on(:post_created) do |post|
next unless SiteSetting.auto_remove_group_enabled
next unless post&.user # Ensure post has a user
next unless post&.topic&.category_id # Ensure post is in a category
target_category_id = SiteSetting.auto_remove_group_category_id
group_name = SiteSetting.auto_remove_group_name
# Check if the post is in the configured category
if post.topic.category_id == target_category_id
begin
group = Group.find_by(name: group_name)
unless group
Rails.logger.error("AutoRemoveGroup: Group '#{group_name}' not found")
next
end
user = post.user
if group.users.include?(user)
group.remove(user)
Rails.logger.info("AutoRemoveGroup: Removed user #{user.username} from group #{group_name} after posting in category #{target_category_id}")
else
Rails.logger.info("AutoRemoveGroup: User #{user.username} is not in group #{group_name}, no action taken")
end
rescue StandardError => e
Rails.logger.error("AutoRemoveGroup: Error removing user from group: #{e.message}")
end
end
end
end
/var/www/discourse/plugins/discourse-auto-remove-group/plugin.rb:9:in `activate!': undefined method `register_site_setting' for an instance of Plugin::Instance (NoMethodError)
あなたはプラグインのエラーによりDiscourseを起動できません /var/www/discourse/plugins/discourse-auto-remove-groupで
このプラグインを削除して、再度ビルドしてください!
私、[2025-05-20T16:17:10.306025 #1] INFO -- :
私、[2025-05-20T16:17:10.347496 #1] INFO -- : 非同期処理を終了しています
私、[2025-05-20T16:17:10.350251 #1] INFO -- : HOME=/var/lib/postgresql USER=postgresでexec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/mainにSIGINTを送信
私、[2025-05-20T16:17:10.351238 #1] INFO -- : redisにTERMシグナルを送信 /usr/bin/redis-server /etc/redis/redis.conf pid: 109
2025-05-20 16:17:10.351 UTC [42] LOG: 高速シャットダウン要求を受信
109:signal-handler (1747757830) SIGTERMを受信しシャットダウンをスケジュール...
109:M 20 May 2025 16:17:10.368 # ユーザーがシャットダウンを要求...
109:M 20 May 2025 16:17:10.369 * 最終的なRDBスナップショットを保存中...
2025-05-20 16:17:10.412 UTC [42] LOG: トランザクションを中断
2025-05-20 16:17:10.438 UTC [42] LOG: バックグラウンドワーカー「論理レプリケーションローンチャー」(PID 56)が終了コード1で終了
2025-05-20 16:17:10.438 UTC [51] LOG: シャットダウン中
2025-05-20 16:17:10.447 UTC [51] LOG: チェックポイント開始: 直ちにシャットダウン
2025-05-20 16:17:10.526 UTC [51] LOG: チェックポイント完了: バッファを書き込み(0.0%)、WALファイルも追加・削除・再利用なし; 書き込み時間=0.001秒、同期=0.001秒、合計=0.088秒; ファイル同期=0、最長=0.000秒、平均=0.000秒; 距離=0 kB、推定=4 kB
2025-05-20 16:17:10.540 UTC [42] LOG: データベースシステムはシャットダウンされました
109:M 20 May 2025 16:17:10.947 * DBはディスクに保存されました
109:M 20 May 2025 16:17:10.947 # Redisは正常終了します、お疲れさまでした...
失敗
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'がエラーを返しました。戻り値:#Process::Status: pid 987 終了
失敗箇所: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
コマンドの実行に失敗しました {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrapに失敗しました。終了コード1
** ブートストラップに失敗しました ** 以前のエラーメッセージを確認してください。もっと多くのエラーがあるかもしれません。
./discourse-doctorが問題の診断に役立ちます。
9fed9596b10ffb4628947e678585b813813ae27a4de746feba16e89f2b9cdc51