parent
13e5eed811
commit
e53c6b13eb
4 changed files with 35 additions and 6 deletions
|
@ -186,6 +186,10 @@ module Account::Interactions
|
|||
active_relationships.exists?(target_account: other_account)
|
||||
end
|
||||
|
||||
def following_or_self?(other_account)
|
||||
id == other_account.id || following?(other_account)
|
||||
end
|
||||
|
||||
def following_anyone?
|
||||
active_relationships.exists?
|
||||
end
|
||||
|
|
|
@ -248,12 +248,12 @@ class PostStatusService < BaseService
|
|||
def mention_to_stranger?
|
||||
return @mention_to_stranger if defined?(@mention_to_stranger)
|
||||
|
||||
@mention_to_stranger = @status.mentions.map(&:account).to_a.any? { |mentioned_account| mentioned_account.id != @account.id && !mentioned_account.following?(@account) } ||
|
||||
(@in_reply_to && @in_reply_to.account.id != @account.id && !@in_reply_to.account.following?(@account))
|
||||
@mention_to_stranger = @status.mentions.map(&:account).to_a.any? { |mentioned_account| !mentioned_account.following_or_self?(@account) } ||
|
||||
(@in_reply_to && !@in_reply_to.account.following_or_self?(@account))
|
||||
end
|
||||
|
||||
def reference_to_stranger?
|
||||
referred_statuses.any? { |status| !status.account.following?(@account) }
|
||||
referred_statuses.any? { |status| !status.account.following_or_self?(@account) }
|
||||
end
|
||||
|
||||
def referred_statuses
|
||||
|
|
|
@ -123,12 +123,12 @@ class UpdateStatusService < BaseService
|
|||
end
|
||||
|
||||
def mention_to_stranger?
|
||||
@status.mentions.map(&:account).to_a.any? { |mentioned_account| mentioned_account.id != @status.account.id && !mentioned_account.following?(@status.account) } ||
|
||||
(@status.thread.present? && @status.thread.account.id != @status.account.id && !@status.thread.account.following?(@status.account))
|
||||
@status.mentions.map(&:account).to_a.any? { |mentioned_account| !mentioned_account.following_or_self?(@status.account) } ||
|
||||
(@status.thread.present? && !@status.thread.account.following_or_self?(@status.account))
|
||||
end
|
||||
|
||||
def reference_to_stranger?
|
||||
referred_statuses.any? { |status| !status.account.following?(@status.account) }
|
||||
referred_statuses.any? { |status| !status.account.following_or_self?(@status.account) }
|
||||
end
|
||||
|
||||
def referred_statuses
|
||||
|
|
|
@ -663,6 +663,18 @@ RSpec.describe PostStatusService, type: :service do
|
|||
expect(status.text).to eq text
|
||||
end
|
||||
|
||||
it 'does not hit ng words for mention to self' do
|
||||
account = Fabricate(:account, username: 'cool', domain: nil)
|
||||
text = 'ng word test @cool'
|
||||
Form::AdminSettings.new(stranger_mention_from_local_ng: '1').save
|
||||
Fabricate(:ng_word, keyword: 'test', stranger: true)
|
||||
|
||||
status = subject.call(account, text: text)
|
||||
|
||||
expect(status).to be_persisted
|
||||
expect(status.text).to eq text
|
||||
end
|
||||
|
||||
it 'hit ng words for reply' do
|
||||
account = Fabricate(:account)
|
||||
text = 'ng word test'
|
||||
|
@ -721,6 +733,19 @@ RSpec.describe PostStatusService, type: :service do
|
|||
expect(status.text).to eq text
|
||||
end
|
||||
|
||||
it 'does not hit ng words for reference to self' do
|
||||
target_status = Fabricate(:status)
|
||||
account = target_status.account
|
||||
text = "ng word test BT: #{ActivityPub::TagManager.instance.uri_for(target_status)}"
|
||||
Form::AdminSettings.new(stranger_mention_from_local_ng: '1').save
|
||||
Fabricate(:ng_word, keyword: 'test', stranger: true)
|
||||
|
||||
status = subject.call(account, text: text)
|
||||
|
||||
expect(status).to be_persisted
|
||||
expect(status.text).to eq text
|
||||
end
|
||||
|
||||
it 'using hashtag under limit' do
|
||||
account = Fabricate(:account)
|
||||
text = '#a #b'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue