From e11196775fa4a960283ce21024a274bb4e5d26f6 Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Fri, 2 Aug 2019 03:01:08 -0500 Subject: [PATCH] make sure the thread filter option won't affect your own threads or those you're participating in --- app/helpers/filter_helper.rb | 1 + app/services/post_status_service.rb | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/helpers/filter_helper.rb b/app/helpers/filter_helper.rb index 861f37551..3120f5033 100644 --- a/app/helpers/filter_helper.rb +++ b/app/helpers/filter_helper.rb @@ -42,6 +42,7 @@ module FilterHelper end def filter_thread(account_id, conversation_id) + return if Status.where(account_id: account_id, conversation_id: conversation_id).exists? Redis.cache.sadd("filtered_threads:#{account_id}", conversation_id) end diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index cc42289d8..7106110a8 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -107,6 +107,11 @@ class PostStatusService < BaseService VISIBILITY_RANK[@visibility] < VISIBILITY_RANK[@in_reply_to.visibility] end + def unfilter_thread_on_reply + return if @in_reply_to.nil? + Redis.cache.srem("filtered_threads:#{@account.id}", @in_reply_to.conversation_id) + end + def set_local_only @local_only = true if @account.user_always_local_only? || @in_reply_to&.local_only end @@ -136,6 +141,7 @@ class PostStatusService < BaseService set_initial_visibility limit_visibility_if_silenced limit_visibility_to_reply + unfilter_thread_on_reply @sensitive = (@account.user_defaults_to_sensitive? || @options[:spoiler_text].present?) if @sensitive.nil?