mirror of
https://github.com/lunaisnotaboy/mastodon.git
synced 2024-09-07 10:47:24 +00:00
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
|
||||
|
||||
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 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.concat(status.mentions.pluck(:account_id))
|
||||
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?
|
||||
|
|
|
@ -105,6 +105,13 @@ RSpec.describe FeedManager do
|
|||
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be true
|
||||
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
|
||||
alice.block_domain!('example.com')
|
||||
alice.follow!(jeff)
|
||||
|
|
Loading…
Reference in a new issue