# HG changeset patch # User nanaya # Date 1513107091 -32400 # Node ID 88d7a7714d4e6291996b017e4782670d29cf8bb0 # Parent bef9b0c1d2739ff33c7e3d376f63c03d7d9a3d30 Restrict to just the fetch process diff -r bef9b0c1d273 -r 88d7a7714d4e app/models/tweet.rb --- a/app/models/tweet.rb Wed Dec 13 04:22:11 2017 +0900 +++ b/app/models/tweet.rb Wed Dec 13 04:31:31 2017 +0900 @@ -21,13 +21,7 @@ @timeline ||= Rails.cache.fetch({ :timeline => @twitter_id }, :expires_in => cache_expires_time) do begin - client.user_timeline(@twitter_id, TIMELINE_OPTIONS).select do |tweet| - tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id - end.map do |tweet| - # Fails when there's Twitter::NullObject initiated somewhere in previous select - # Reference: https://github.com/sferik/twitter/issues/892 - tweet.to_h - end + timeline = client.user_timeline(@twitter_id, TIMELINE_OPTIONS) rescue Twitter::Error::TooManyRequests @client_config_id += 1 @@ -37,6 +31,14 @@ retry end end + + timeline.select do |tweet| + tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id + end.map do |tweet| + # Fails when there's Twitter::NullObject initiated somewhere in previous select + # Reference: https://github.com/sferik/twitter/issues/892 + tweet.to_h + end end.map do |tweet_hash| Twitter::Tweet.new(tweet_hash) end