diff --git a/app/controllers/explore/posts_controller.rb b/app/controllers/explore/posts_controller.rb index e40d6c5b3..a3a47423c 100644 --- a/app/controllers/explore/posts_controller.rb +++ b/app/controllers/explore/posts_controller.rb @@ -28,11 +28,11 @@ module Explore def searches @date, @scale, @min_date, @max_date = parse_date(params) - @search_service = ReportbooruService.new + @searches = ReportbooruService.new.popular_searches(@date) end def missed_searches - @search_service = ReportbooruService.new + @missed_searches = ReportbooruService.new.missed_search_rankings end private diff --git a/app/logical/reportbooru_service.rb b/app/logical/reportbooru_service.rb index 5ad3cd7f6..9ae703367 100644 --- a/app/logical/reportbooru_service.rb +++ b/app/logical/reportbooru_service.rb @@ -20,29 +20,30 @@ class ReportbooruService body.lines.map(&:split).map { [_1, _2.to_i] } end - def post_search_rankings(date = Date.today, expires_in: 1.minutes) - return [] unless enabled? - - response = http.cache(expires_in).get("#{reportbooru_server}/post_searches/rank?date=#{date}") - return [] if response.status != 200 - JSON.parse(response.to_s.force_encoding("utf-8")) + def post_search_rankings(date, expires_in: 1.minutes) + request("#{reportbooru_server}/post_searches/rank?date=#{date}", expires_in) end - def post_view_rankings(date = Date.today, expires_in: 1.minutes) - return [] unless enabled? - - response = http.cache(expires_in).get("#{reportbooru_server}/post_views/rank?date=#{date}") - return [] if response.status != 200 - JSON.parse(response.to_s.force_encoding("utf-8")) + def post_view_rankings(date, expires_in: 1.minutes) + request("#{reportbooru_server}/post_views/rank?date=#{date}", expires_in) end - def popular_searches(date = Date.today, limit: 100) + def popular_searches(date, limit: 100) ranking = post_search_rankings(date) ranking.take(limit).map(&:first) end - def popular_posts(date = Date.today, limit: 100) + def popular_posts(date, limit: 100) ranking = post_view_rankings(date) + ranking = post_view_rankings(date.yesterday) if ranking.blank? ranking.take(limit).map { |x| Post.find(x[0]) } end + + def request(url, expires_in) + return [] unless enabled? + + response = http.cache(expires_in).get(url) + return [] if response.status != 200 + JSON.parse(response.to_s.force_encoding("utf-8")) + end end diff --git a/app/views/explore/posts/missed_searches.html.erb b/app/views/explore/posts/missed_searches.html.erb index 171017b87..329b66c43 100644 --- a/app/views/explore/posts/missed_searches.html.erb +++ b/app/views/explore/posts/missed_searches.html.erb @@ -15,7 +15,7 @@
- <% @search_service.missed_search_rankings.each do |tags, count| %> + <% @missed_searches.each do |tags, count| %>