hide mentions of muted accounts (in home col) (#190)
* hide mentions of muted accounts (in home col) also cleans up some old crap * add test
This commit is contained in:
parent
b15dd05514
commit
a7be86e875
|
@ -138,16 +138,11 @@ class FeedManager
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter_from_home?(status, receiver_id)
|
def filter_from_home?(status, receiver_id)
|
||||||
# extremely violent filtering code BEGIN
|
|
||||||
#filter_string = 'e'
|
|
||||||
#reggie = Regexp.new(filter_string)
|
|
||||||
#return true if reggie === status.content || reggie === status.spoiler_text
|
|
||||||
# extremely violent filtering code END
|
|
||||||
|
|
||||||
return false if receiver_id == status.account_id
|
return false if receiver_id == status.account_id
|
||||||
return true if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?)
|
return true if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?)
|
||||||
|
|
||||||
check_for_mutes = [status.account_id]
|
check_for_mutes = [status.account_id]
|
||||||
|
check_for_mutes.concat(status.mentions.pluck(:account_id))
|
||||||
check_for_mutes.concat([status.reblog.account_id]) if status.reblog?
|
check_for_mutes.concat([status.reblog.account_id]) if status.reblog?
|
||||||
|
|
||||||
return true if Mute.where(account_id: receiver_id, target_account_id: check_for_mutes).any?
|
return true if Mute.where(account_id: receiver_id, target_account_id: check_for_mutes).any?
|
||||||
|
|
|
@ -105,6 +105,13 @@ RSpec.describe FeedManager do
|
||||||
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be true
|
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns true for status by followee mentioning muted account' do
|
||||||
|
bob.mute!(jeff)
|
||||||
|
bob.follow!(alice)
|
||||||
|
status = PostStatusService.new.call(alice, 'Hey @jeff')
|
||||||
|
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be true
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns true for reblog of a personally blocked domain' do
|
it 'returns true for reblog of a personally blocked domain' do
|
||||||
alice.block_domain!('example.com')
|
alice.block_domain!('example.com')
|
||||||
alice.follow!(jeff)
|
alice.follow!(jeff)
|
||||||
|
|
Reference in New Issue