mirror of
https://github.com/mastodon/mastodon.git
synced 2024-08-20 21:08:15 -07:00
Merge 344f8544bc
into 549ab089ee
This commit is contained in:
commit
1f1406f72d
2 changed files with 3 additions and 9 deletions
|
@ -115,13 +115,7 @@ class Status < ApplicationRecord
|
|||
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
|
||||
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
|
||||
scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).merge(Account.not_domain_blocked_by_account(account)) }
|
||||
scope :tagged_with_all, lambda { |tag_ids|
|
||||
Array(tag_ids).map(&:to_i).reduce(self) do |result, id|
|
||||
result.where(<<~SQL.squish, tag_id: id)
|
||||
EXISTS(SELECT 1 FROM statuses_tags WHERE statuses_tags.status_id = statuses.id AND statuses_tags.tag_id = :tag_id)
|
||||
SQL
|
||||
end
|
||||
}
|
||||
scope :tagged_with_all, ->(tag_ids) { joins(:tags).where(tags: { id: tag_ids }).group(:id).having(Arel.star.count.eq tag_ids.size) }
|
||||
scope :tagged_with_none, lambda { |tag_ids|
|
||||
where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids)
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ class TagFeed < PublicFeed
|
|||
scope = public_scope
|
||||
|
||||
scope.merge!(tagged_with_any_scope)
|
||||
scope.merge!(tagged_with_all_scope)
|
||||
scope.merge!(tagged_with_none_scope)
|
||||
scope.merge!(tagged_with_all_scope) if options[:all].present?
|
||||
scope.merge!(tagged_with_none_scope) if options[:none].present?
|
||||
scope.merge!(local_only_scope) if local_only?
|
||||
scope.merge!(remote_only_scope) if remote_only?
|
||||
scope.merge!(account_filters_scope) if account?
|
||||
|
|
Loading…
Reference in a new issue