Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
- app/controllers/api/v1/timelines/public_controller.rb
- app/lib/feed_manager.rb
- app/models/status.rb
- app/services/precompute_feed_service.rb
- app/workers/feed_insert_worker.rb
- spec/models/status_spec.rb

All conflicts are due to upstream refactoring feed management and us having
local-only toots on top of that. Rewrote local-only toots management for
upstream's changes.
This commit is contained in:
Thibaut Girka
2020-09-08 16:01:55 +02:00
28 changed files with 912 additions and 714 deletions

View File

@ -13,7 +13,7 @@ class AfterBlockService < BaseService
private
def clear_home_feed!
FeedManager.instance.clear_from_timeline(@account, @target_account)
FeedManager.instance.clear_from_home(@account, @target_account)
end
def clear_conversations!

View File

@ -1,22 +0,0 @@
# frozen_string_literal: true
class HashtagQueryService < BaseService
LIMIT_PER_MODE = 4
def call(tag, params, account = nil, local = false)
tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id)
all = tags_for(params[:all])
none = tags_for(params[:none])
Status.group(:id)
.as_tag_timeline(tags, account, local)
.tagged_with_all(all)
.tagged_with_none(none)
end
private
def tags_for(names)
Tag.matching_name(Array(names).take(LIMIT_PER_MODE)) if names.present?
end
end

View File

@ -13,15 +13,13 @@ class NotifyService < BaseService
push_to_conversation! if direct_message?
send_email! if email_enabled?
rescue ActiveRecord::RecordInvalid
# rubocop:disable Style/RedundantReturn
return
# rubocop:enable Style/RedundantReturn
nil
end
private
def blocked_mention?
FeedManager.instance.filter?(:mentions, @notification.mention.status, @recipient.id)
FeedManager.instance.filter?(:mentions, @notification.mention.status, @recipient)
end
def blocked_favourite?

View File

@ -2,7 +2,7 @@
class PrecomputeFeedService < BaseService
def call(account)
FeedManager.instance.populate_feed(account)
FeedManager.instance.populate_home(account)
FeedManager.instance.populate_direct_feed(account)
ensure
Redis.current.del("account:#{account.id}:regeneration")