Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 5.24 #843

Merged
merged 3 commits into from
Sep 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions app/lib/activitypub/activity/create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -507,15 +507,15 @@ def join_group!
end

def searchability_from_audience
if audience_searchable_by.nil?
nil
elsif audience_searchable_by.any? { |uri| ActivityPub::TagManager.instance.public_collection?(uri) }
return nil if audience_searchable_by.blank?

if audience_searchable_by.any? { |uri| ActivityPub::TagManager.instance.public_collection?(uri) }
:public
elsif audience_searchable_by.include?('kmyblue:Limited') || audience_searchable_by.include?('as:Limited')
:limited
elsif audience_searchable_by.include?(@account.followers_url)
:private
else
elsif audience_searchable_by.include?(@account.uri) || audience_searchable_by.include?(@account.url)
:direct
end
end
Expand Down
6 changes: 2 additions & 4 deletions app/lib/activitypub/tag_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -237,12 +237,10 @@ def searchable_by(status)
[COLLECTIONS[:public]]
when 'private'
[account_followers_url(status.account)]
when 'direct'
status.conversation_id.present? ? [uri_for(status.conversation)] : []
when 'limited'
['as:Limited', 'kmyblue:Limited']
else
[]
status.conversation_id.present? ? [uri_for(status.conversation), account_url(status.account)] : [account_url(status.account)]
end

searchable_by.concat(mentions_uris(status)).compact
Expand All @@ -257,7 +255,7 @@ def account_searchable_by(account)
when 'limited'
['as:Limited', 'kmyblue:Limited']
else
[]
[account_url(account)]
end
end

Expand Down
2 changes: 1 addition & 1 deletion app/services/activitypub/process_account_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ def audience_searchable_by
end

def searchability_from_audience
if audience_searchable_by.nil?
if audience_searchable_by.blank?
bio = searchability_from_bio
return bio unless bio.nil?

Expand Down
2 changes: 1 addition & 1 deletion lib/mastodon/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def kmyblue_major
end

def kmyblue_minor
23
24
end

def kmyblue_flag
Expand Down
13 changes: 12 additions & 1 deletion spec/lib/activitypub/activity/create_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ def activity_for_object(json)
end

context 'with direct' do
let(:searchable_by) { '' }
let(:searchable_by) { 'https://example.com/actor' }

it 'create status' do
status = sender.statuses.first
Expand All @@ -574,6 +574,17 @@ def activity_for_object(json)
end
end

context 'with empty array' do
let(:searchable_by) { '' }

it 'create status' do
status = sender.statuses.first

expect(status).to_not be_nil
expect(status.searchability).to be_nil
end
end

context 'with direct when not specify' do
let(:searchable_by) { nil }

Expand Down
13 changes: 11 additions & 2 deletions spec/serializers/activitypub/note_serializer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
describe ActivityPub::NoteSerializer do
subject { JSON.parse(@serialization.to_json) }

let!(:account) { Fabricate(:account) }
let!(:account) { Fabricate(:account, searchability: :public) }
let!(:other) { Fabricate(:account) }
let!(:parent) { Fabricate(:status, account: account, visibility: :public, language: 'zh-TW') }
let!(:parent) { Fabricate(:status, account: account, visibility: :public, searchability: searchability, language: 'zh-TW') }
let!(:reply_by_account_first) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
let!(:reply_by_account_next) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
let!(:reply_by_other_first) { Fabricate(:status, account: other, thread: parent, visibility: :public) }
Expand All @@ -16,6 +16,7 @@
let!(:referred) { nil }
let!(:referred2) { nil }
let(:convert_to_quote) { false }
let(:searchability) { :public }

before(:each) do
parent.references << referred if referred.present?
Expand Down Expand Up @@ -55,6 +56,14 @@
expect(subject['replies']['first']['items']).to_not include(reply_by_account_visibility_direct.uri)
end

context 'when direct searchability' do
let(:searchability) { :direct }

it 'send as direct searchability' do
expect(subject['searchableBy']).to include "https://cb6e6126.ngrok.io/users/#{account.username}"
end
end

context 'when has quote but no_convert setting' do
let(:referred) { Fabricate(:status) }

Expand Down
10 changes: 9 additions & 1 deletion spec/services/activitypub/process_account_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
end

context 'when direct' do
let(:searchable_by) { '' }
let(:searchable_by) { 'https://foo.test' }

it 'searchability is direct' do
expect(subject.searchability).to eq 'direct'
Expand All @@ -72,6 +72,14 @@
end
end

context 'when empty array' do
let(:searchable_by) { '' }

it 'searchability is direct' do
expect(subject.searchability).to eq 'direct'
end
end

context 'when default value' do
let(:searchable_by) { nil }

Expand Down
Loading