diff options
Diffstat (limited to 'app/lib/activitypub/activity/announce.rb')
-rw-r--r-- | app/lib/activitypub/activity/announce.rb | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb index 349e8f77e..21fe556af 100644 --- a/app/lib/activitypub/activity/announce.rb +++ b/app/lib/activitypub/activity/announce.rb @@ -2,7 +2,7 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity def perform - return reject_payload! if delete_arrived_first?(@json['id']) || !related_to_local_activity? + return reject_payload! if delete_arrived_first?(@json['id']) RedisLock.acquire(lock_options) do |lock| if lock.acquired? @@ -44,13 +44,13 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity def visibility_from_audience if audience_to.include?(ActivityPub::TagManager::COLLECTIONS[:public]) - :public + @account.private? ? :private : :public elsif audience_cc.include?(ActivityPub::TagManager::COLLECTIONS[:public]) - :unlisted + @account.private? ? :private : :unlisted elsif audience_to.include?(@account.followers_url) :private else - :direct + :limited end end @@ -58,18 +58,6 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity status.account_id == @account.id || status.distributable? end - def related_to_local_activity? - followed_by_local_accounts? || requested_through_relay? || reblog_of_local_status? - end - - def requested_through_relay? - super || Relay.find_by(inbox_url: @account.inbox_url)&.enabled? - end - - def reblog_of_local_status? - status_from_uri(object_uri)&.account&.local? - end - def lock_options { redis: Redis.current, key: "announce:#{@object['id']}" } end |