diff options
author | Thibaut Girka <thib@sitedethib.com> | 2019-01-19 18:28:37 +0100 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-01-19 18:28:37 +0100 |
commit | 5e0cf92fd145b27053389e5ffcce48da77439713 (patch) | |
tree | 27e1567b240f1a3117de595413ccceb9222d8465 /app/lib/activitypub/activity/announce.rb | |
parent | 530d29148ca0c5bf29f6fa516b1ef4f91d95894b (diff) | |
parent | 7c3fddeab4c4ddebca7d5441ac67870aa1cecfe4 (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
No conflicts.
Diffstat (limited to 'app/lib/activitypub/activity/announce.rb')
-rw-r--r-- | app/lib/activitypub/activity/announce.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb index 1147a4481..34d1b7cbd 100644 --- a/app/lib/activitypub/activity/announce.rb +++ b/app/lib/activitypub/activity/announce.rb @@ -17,7 +17,7 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity uri: @json['id'], created_at: @json['published'], override_timestamps: @options[:override_timestamps], - visibility: original_status.visibility + visibility: visibility_from_audience ) distribute(status) @@ -26,6 +26,18 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity private + def visibility_from_audience + if equals_or_includes?(@json['to'], ActivityPub::TagManager::COLLECTIONS[:public]) + :public + elsif equals_or_includes?(@json['cc'], ActivityPub::TagManager::COLLECTIONS[:public]) + :unlisted + elsif equals_or_includes?(@json['to'], @account.followers_url) + :private + else + :direct + end + end + def announceable?(status) status.account_id == @account.id || status.public_visibility? || status.unlisted_visibility? end |