diff options
Diffstat (limited to 'app/controllers/api/v1/timelines/tag_controller.rb')
-rw-r--r-- | app/controllers/api/v1/timelines/tag_controller.rb | 10 |
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 |