class TwitterClient

Public Class Methods

new(consumer_key:, consumer_secret:, access_token:, access_token_secret:, search_query:) click to toggle source
# File lib/slack_twitter_egosa/twitter_client.rb, line 6
def initialize(consumer_key:, consumer_secret:, access_token:, access_token_secret:, search_query:)
  @client = Twitter::REST::Client.new do |config|
    config.consumer_key        = consumer_key
    config.consumer_secret     = consumer_secret
    config.access_token        = access_token
    config.access_token_secret = access_token_secret
  end
  @search_query = search_query
end

Public Instance Methods

home_timeline() click to toggle source
# File lib/slack_twitter_egosa/twitter_client.rb, line 16
def home_timeline
  is_first_fetch = @home_timeline_since_id.nil?

  params = { count: 200, tweet_mode: 'extended' }
  params[:since_id] = @home_timeline_since_id if @home_timeline_since_id
  statuses = @client.home_timeline(params).to_a
  @home_timeline_since_id = statuses.first.id unless statuses.empty?

  # Tweets acquired for the first time are not subject to notification
  return [] if is_first_fetch

  statuses
rescue Twitter::Error::TooManyRequests, HTTP::ConnectionError => e
  warn "home_timeline: #{e.inspect}"
  []
end