Mercurial > rsstweet
comparison app/models/tweet.rb @ 160:4e4195e60c2b
Add check at user level as well
| author | nanaya <me@nanaya.pro> |
|---|---|
| date | Fri, 03 Aug 2018 01:45:16 +0900 |
| parents | 74422bae017d |
| children | c2e9d3a36bde |
comparison
equal
deleted
inserted
replaced
| 159:59ff3dabf070 | 160:4e4195e60c2b |
|---|---|
| 25 raw = Rails.cache.fetch(cache_key, :expires_in => self.class.cache_expires_time) do | 25 raw = Rails.cache.fetch(cache_key, :expires_in => self.class.cache_expires_time) do |
| 26 client_try(:user_timeline, id, TIMELINE_OPTIONS).tap do |data| | 26 client_try(:user_timeline, id, TIMELINE_OPTIONS).tap do |data| |
| 27 if data[:result] == :ok | 27 if data[:result] == :ok |
| 28 if data[:data].any? && data[:data].first.user.id != id | 28 if data[:data].any? && data[:data].first.user.id != id |
| 29 wrong_user = data[:data].first.user | 29 wrong_user = data[:data].first.user |
| 30 throw "Wrong timeline data. Requested: #{id}, got: #{wrong_user.id} (#{wrong_user.name.printable})" | 30 throw "Wrong timeline data. Requested: #{id}, got: #{wrong_user.id} (#{wrong_user.screen_name.printable})" |
| 31 end | 31 end |
| 32 | 32 |
| 33 data[:data] = data[:data].select do |tweet| | 33 data[:data] = data[:data].select do |tweet| |
| 34 tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id | 34 tweet.retweeted_status.nil? || tweet.user.id != tweet.retweeted_status.user.id |
| 35 end.map { |tweet| tweet.to_h } | 35 end.map { |tweet| tweet.to_h } |
| 46 end | 46 end |
| 47 | 47 |
| 48 def user | 48 def user |
| 49 if @user.nil? | 49 if @user.nil? |
| 50 raw = Rails.cache.fetch("user:v1:#{@twitter_id}", :expires_in => self.class.cache_expires_time) do | 50 raw = Rails.cache.fetch("user:v1:#{@twitter_id}", :expires_in => self.class.cache_expires_time) do |
| 51 client_try :user, @twitter_id | 51 client_try(:user, @twitter_id).tap do |data| |
| 52 if data[:result] == :ok | |
| 53 user = data[:data] | |
| 54 | |
| 55 if user.id != @twitter_id || user.screen_name != @twitter_id | |
| 56 throw "Wrong user data. Requested: #{@twitter_id}, got: #{user.id} (#{user.screen_name.printable})" | |
| 57 end | |
| 58 end | |
| 59 end | |
| 52 end | 60 end |
| 53 | 61 |
| 54 raise Twitter::Error::NotFound if raw[:result] == :not_found | 62 raise Twitter::Error::NotFound if raw[:result] == :not_found |
| 55 | 63 |
| 56 @user = raw[:data] | 64 @user = raw[:data] |
