Skip to content
Snippets Groups Projects
Commit aabf884c authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Discard misattributed remote statuses, improve timelines filter

parent 17903c6d
No related branches found
No related tags found
No related merge requests found
......@@ -121,6 +121,7 @@ class Status < ApplicationRecord
def filter_timeline(query, account)
blocked = Block.where(account: account).pluck(:target_account_id)
return query if blocked.empty?
query
.joins('LEFT OUTER JOIN statuses AS parents ON statuses.in_reply_to_id = parents.id')
......
......@@ -48,6 +48,8 @@ class ProcessFeedService < BaseService
if original_status.nil?
status.destroy
return nil
elsif original_status.reblog?
status.reblog = original_status.reblog
end
end
......@@ -73,10 +75,17 @@ class ProcessFeedService < BaseService
status = find_status(id(entry))
return status unless status.nil?
begin
account = account?(entry) ? find_or_resolve_account(acct(entry)) : @account
rescue Goldfinger::Error
return nil
# If status embeds an author, find that author
# If that author cannot be found, don't record the status (do not misattribute)
if account?(entry)
begin
account = find_or_resolve_account(acct(entry))
return nil if account.nil?
rescue Goldfinger::Error
return nil
end
else
account = @account
end
status = Status.create!({
......
......@@ -15,6 +15,7 @@ Sidekiq::Testing.inline!
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.order = 'random'
config.infer_spec_type_from_file_location!
config.filter_rails_from_backtrace!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment