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