class Twitter2Jabber::TwitterClient
Constants
- BATCH_SIZE
Attributes
client[R]
config[R]
spec[R]
Public Class Methods
new(gw, config)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 36 def initialize(gw, config) 37 @gw, @config, @client = gw, config, Twitter::REST::Client.new( 38 consumer_key: @spec = config[:consumer_token], 39 consumer_secret: config[:consumer_secret], 40 access_token: config[:access_token], 41 access_token_secret: config[:access_secret] 42 ) 43 end
Public Instance Methods
connect()
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 47 def connect 48 client.verify_credentials 49 log 'connected' 50 rescue Twitter::Error => err 51 raise "Can't connect to Twitter with ID '#{spec}': #{err}" 52 end
disconnect()
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 54 def disconnect 55 @client = nil 56 log 'disconnected' 57 end
process_html(text)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 76 def process_html(text) 77 text.gsub(/(?:\A|\P{Word})@(\p{Word}+)/, 78 '@<a href="https://twitter.com/\1">\1</a>') 79 .gsub(/(?:\A|\P{Word})#(\p{Word}+)/, 80 '<a href="https://search.twitter.com/search?q=%23\1">#\1</a>') 81 end
process_message(text)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 72 def process_message(text) 73 text.gsub(%r{https?://\S+}) { |match| LongURL.expand(match) rescue match } 74 end
process_text(text)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 83 def process_text(text) 84 text 85 end
tweets(since_id = nil) { |tweet| ... }
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 59 def tweets(since_id = nil) 60 get_tweets(since_id).reverse_each { |tweet| 61 log since_id = tweet.id 62 yield tweet 63 sleep 1 64 } 65 66 since_id 67 rescue Twitter::Error, Timeout::Error 68 rescue => err 69 warn "#{err} (#{err.class})" 70 end
Private Instance Methods
get_tweets(since_id = nil)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 89 def get_tweets(since_id = nil) 90 options, buffer = { count: BATCH_SIZE }, [] 91 options[:since_id] = since_id if since_id 92 93 loop { 94 buffer.concat(batch = client.home_timeline(options)) 95 96 break if batch.empty? || !since_id || 97 since_id >= options[:max_id] = batch.last.id - 1 98 } 99 100 buffer 101 end
log(msg)
click to toggle source
# File lib/twitter2jabber/twitter_client.rb 103 def log(msg) 104 @gw.log("TWITTER #{msg}") 105 end