about summary refs log tree commit diff
path: root/app/controllers/api/v1/timelines/tag_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/api/v1/timelines/tag_controller.rb')
-rw-r--r--app/controllers/api/v1/timelines/tag_controller.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/controllers/api/v1/timelines/tag_controller.rb b/app/controllers/api/v1/timelines/tag_controller.rb
index a0a10d349..4641d6941 100644
--- a/app/controllers/api/v1/timelines/tag_controller.rb
+++ b/app/controllers/api/v1/timelines/tag_controller.rb
@@ -51,7 +51,9 @@ class Api::V1::Timelines::TagController < Api::BaseController
   end
 
   def bookmark_results
-    @_results ||= account_bookmarks.paginate_by_max_id(
+    bookmarks = account_bookmarks
+    preload_media(bookmarks)
+    @_results ||= bookmarks.paginate_by_max_id(
       limit_param(DEFAULT_STATUSES_LIMIT),
       params[:max_id],
       params[:since_id]
@@ -85,4 +87,10 @@ class Api::V1::Timelines::TagController < Api::BaseController
   def pagination_since_id
     @statuses.first.id
   end
+
+  def preload_media(statuses)
+    status_ids = statuses.joins(:media_attachments).distinct(:id).select(:id).reorder(nil)
+    fetch_ids = MediaAttachment.where(status_id: status_ids, file_updated_at: nil).pluck(:id)
+    fetch_ids.each { |m| FetchMediaWorker.perform_async(m) }
+  end
 end