From 8386d9ec1001f8a938224190e518db054751b5a9 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 7 Oct 2019 03:56:21 +0200
Subject: [PATCH] Fix hashtag timeline REST API accepting too many hashtags
 (#12091)

---
 app/services/hashtag_query_service.rb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb
index 282821710..196de0639 100644
--- a/app/services/hashtag_query_service.rb
+++ b/app/services/hashtag_query_service.rb
@@ -1,6 +1,8 @@
 # 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])
@@ -15,6 +17,6 @@ class HashtagQueryService < BaseService
   private
 
   def tags_for(names)
-    Tag.matching_name(names) if names.presence
+    Tag.matching_name(Array(names).take(LIMIT_PER_MODE)) if names.present?
   end
 end