diff options
Diffstat (limited to 'app/controllers/api/v1/timelines/list_controller.rb')
-rw-r--r-- | app/controllers/api/v1/timelines/list_controller.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/controllers/api/v1/timelines/list_controller.rb b/app/controllers/api/v1/timelines/list_controller.rb index a15eae468..59a1eb798 100644 --- a/app/controllers/api/v1/timelines/list_controller.rb +++ b/app/controllers/api/v1/timelines/list_controller.rb @@ -29,7 +29,9 @@ class Api::V1::Timelines::ListController < Api::BaseController end def list_statuses - list_feed.get( + feed = list_feed + preload_media(feed.get(DEFAULT_STATUSES_LIMIT * 2, params[:max_id], params[:since_id], params[:min_id])) + feed.get( limit_param(DEFAULT_STATUSES_LIMIT), params[:max_id], params[:since_id], @@ -64,4 +66,9 @@ class Api::V1::Timelines::ListController < Api::BaseController def pagination_since_id @statuses.first.id end + + def preload_media(statuses) + fetch_ids = statuses.flat_map { |s| s.media_attachments.select { |m| m.needs_redownload? }.pluck(:id) }.uniq + fetch_ids.each { |m| FetchMediaWorker.perform_async(m) } + end end |