class Ruboty::Handlers::TwitterSearch
Constants
- NAMESPACE
- TWEETS_COUNT
Public Instance Methods
search(message)
click to toggle source
@return [true] to prevent running missing handlers.
# File lib/ruboty/handlers/twitter_search.rb, line 25 def search(message) query = Ruboty::TwitterSearch::Query.new(message[:query]) statuses = client.search( query.query_string, result_type: query.result_type, since_id: fetch_since_id_for(message[:query]), ).take(TWEETS_COUNT) since_id = statuses.first.id statuses.select! do |status| status.retweet_count >= query.minimum_retweet_count end statuses.select! do |status| status.favorite_count >= query.minimum_favorite_count end if statuses.any? message.reply(Ruboty::TwitterSearch::StatusesView.new(statuses).to_s) store_since_id(query: message[:query], since_id: since_id) end rescue ::Twitter::Error => exception message.reply("#{exception.class}: #{exception}") ensure return true end
Private Instance Methods
client()
click to toggle source
# File lib/ruboty/handlers/twitter_search.rb, line 56 def client @client ||= ::Twitter::REST::Client.new do |config| config.consumer_key = ENV["TWITTER_CONSUMER_KEY"] config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"] config.access_token = ENV["TWITTER_ACCESS_TOKEN"] config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"] end end
disabled_to_use_since_id?()
click to toggle source
# File lib/ruboty/handlers/twitter_search.rb, line 65 def disabled_to_use_since_id? ENV["TWITTER_DISABLE_SINCE_ID"] == "1" end
fetch_since_id_for(query)
click to toggle source
@param query [String] Query string to be passed to Twitter API @return [Integer, nil] since_id or nil
# File lib/ruboty/handlers/twitter_search.rb, line 71 def fetch_since_id_for(query) unless disabled_to_use_since_id? store[query] end end
store()
click to toggle source
@note To remember since_id for each query.
# File lib/ruboty/handlers/twitter_search.rb, line 78 def store robot.brain.data[NAMESPACE] ||= {} end
store_since_id(query: nil, since_id: nil)
click to toggle source
# File lib/ruboty/handlers/twitter_search.rb, line 82 def store_since_id(query: nil, since_id: nil) unless disabled_to_use_since_id? store[query] = since_id end end