diff options
Diffstat (limited to 'app/services/hashtag_query_service.rb')
-rw-r--r-- | app/services/hashtag_query_service.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb index 5773d78c6..5a1464805 100644 --- a/app/services/hashtag_query_service.rb +++ b/app/services/hashtag_query_service.rb @@ -1,13 +1,19 @@ # frozen_string_literal: true class HashtagQueryService < BaseService - def call(tag, params, account = nil, local = false) - tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id) + def call(tag, params, account = nil, local = false, priv = false) + tags = tags_for(Array(tag.name) | Array(params[:any])) all = tags_for(params[:all]) none = tags_for(params[:none]) + all_tags = Array(tags) | Array(all) | Array(none) + local = all_tags.any? { |t| t.local } unless local + priv = all_tags.any? { |t| t.private } unless priv + + tags = tags.pluck(:id) + Status.distinct - .as_tag_timeline(tags, account, local) + .as_tag_timeline(tags, account, local, priv) .tagged_with_all(all) .tagged_with_none(none) end |