Mercurial > rsstweet
comparison app/models/tweet.rb @ 141:88d7a7714d4e
Restrict to just the fetch process
| author | nanaya <me@nanaya.pro> |
|---|---|
| date | Wed, 13 Dec 2017 04:31:31 +0900 |
| parents | 7907fe886675 |
| children | 2d873f57f424 |
comparison
equal
deleted
inserted
replaced
| 140:bef9b0c1d273 | 141:88d7a7714d4e |
|---|---|
| 19 initial_config_id = client_config_id | 19 initial_config_id = client_config_id |
| 20 | 20 |
| 21 @timeline ||= | 21 @timeline ||= |
| 22 Rails.cache.fetch({ :timeline => @twitter_id }, :expires_in => cache_expires_time) do | 22 Rails.cache.fetch({ :timeline => @twitter_id }, :expires_in => cache_expires_time) do |
| 23 begin | 23 begin |
| 24 client.user_timeline(@twitter_id, TIMELINE_OPTIONS).select do |tweet| | 24 timeline = client.user_timeline(@twitter_id, TIMELINE_OPTIONS) |
| 25 tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id | |
| 26 end.map do |tweet| | |
| 27 # Fails when there's Twitter::NullObject initiated somewhere in previous select | |
| 28 # Reference: https://github.com/sferik/twitter/issues/892 | |
| 29 tweet.to_h | |
| 30 end | |
| 31 rescue Twitter::Error::TooManyRequests | 25 rescue Twitter::Error::TooManyRequests |
| 32 @client_config_id += 1 | 26 @client_config_id += 1 |
| 33 | 27 |
| 34 if initial_config_id == client_config_id | 28 if initial_config_id == client_config_id |
| 35 raise | 29 raise |
| 36 else | 30 else |
| 37 retry | 31 retry |
| 38 end | 32 end |
| 33 end | |
| 34 | |
| 35 timeline.select do |tweet| | |
| 36 tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id | |
| 37 end.map do |tweet| | |
| 38 # Fails when there's Twitter::NullObject initiated somewhere in previous select | |
| 39 # Reference: https://github.com/sferik/twitter/issues/892 | |
| 40 tweet.to_h | |
| 39 end | 41 end |
| 40 end.map do |tweet_hash| | 42 end.map do |tweet_hash| |
| 41 Twitter::Tweet.new(tweet_hash) | 43 Twitter::Tweet.new(tweet_hash) |
| 42 end | 44 end |
| 43 end | 45 end |
