An EventMachine-based client for http://chirpstream.twitter.com.
Ruby
Pull request Compare This branch is 4 commits ahead, 14 commits behind joshbuddy:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
image
lib
Gemfile
Rakefile
Readme.rdoc
VERSION
chirpstream.gemspec

Readme.rdoc

Chirpstream

About

This is an experimental EventMachine-based client for chirpstream.twitter.com.

Fun Things You Can Do At Home

Fire up the growl client!

sudo gem install chirpstream
chirp_growl

Wow! It's growling my tweets! How meta.

Usage

require 'rubygems'
require 'chirpstream'
require 'rainbow'

chirp = Chirpstream.new
chirp.on_reconnect{ puts "reconnecting..." }
chirp.on_tweet {|t, u| puts "#{t.text} (from #{t.user.name.foreground(:red)} (#{('@' + t.user.screen_name).foreground(:green)}))" }
chirp.on_follow {|t, u| puts "#{t.source.screen_name.foreground(:green)} following #{t.target.screen_name.foreground(:green)}" }
chirp.on_favorite {|t, u| puts "#{t.source.screen_name.foreground(:green)} <3 -> #{t.target_object.text}" }
chirp.on_retweet {|t, u| puts "#{t.source.screen_name.foreground(:green)} RT -> #{t.target_object.text}" }
chirp.on_direct_message {|t, u| puts "DM : #{t.text} (from #{t.sender.name.foreground(:red)} (#{('@' + t.sender.screen_name).foreground(:green)}))" }
chirp.connect(Chirpstream::Connect::User.basic('joshbuddy', 'xxxxxxxx'))

Oauth Usage

chirp = Chirpstream.oauth(consumer_token, consumer_secret)
chirp.on_reconnect{ puts "reconnecting..." }
chirp.on_tweet {|t, u| puts "#{t.text} (from #{t.user.name.foreground(:red)} (#{('@' + t.user.screen_name).foreground(:green)}))" }
chirp.on_follow {|t, u| puts "#{t.source.screen_name.foreground(:green)} following #{t.target.screen_name.foreground(:green)}" }
chirp.on_favorite {|t, u| puts "#{t.source.screen_name.foreground(:green)} <3 -> #{t.target_object.text}" }
chirp.on_retweet {|t, u| puts "#{t.source.screen_name.foreground(:green)} RT -> #{t.target_object.text}" }
chirp.on_direct_message {|t, u| puts "DM : #{t.text} (from #{t.sender.name.foreground(:red)} (#{('@' + t.sender.screen_name).foreground(:green)}))" }
chirp.connect(Chirpstream::Connect::User.oauth(access_token, access_secret))

Multi User Usage

chirp = Chirpstream.new(consumer_token, consumer_secret)

chirp.on_reconnect{ puts "reconnecting..." }
chirp.on_tweet {|t, u| puts "#{t.text} (from #{t.user.name.foreground(:red)} (#{('@' + t.user.screen_name).foreground(:green)}))" }
chirp.on_follow {|t, u| puts "#{t.source.screen_name.foreground(:green)} following #{t.target.screen_name.foreground(:green)}" }
chirp.on_favorite {|t, u| puts "#{t.source.screen_name.foreground(:green)} <3 -> #{t.target_object.text}" }
chirp.on_retweet {|t, u| puts "#{t.source.screen_name.foreground(:green)} RT -> #{t.target_object.text}" }
chirp.on_direct_message {|t, u| puts "DM : #{t.text} (from #{t.sender.name.foreground(:red)} (#{('@' + t.sender.screen_name).foreground(:green)}))" }

chirp.connect(Chirpstream::Connect::User.oauth(access_token1, access_secret1), Chirpstream::Connect::User.oauth(access_token2, access_secret2))