Class TweetStream::Client
In: lib/tweetstream/client.rb
Parent: Object

Provides simple access to the Twitter Streaming API (apiwiki.twitter.com/Streaming-API-Documentation) for Ruby scripts that need to create a long connection to Twitter for tracking and other purposes.

Basic usage of the library is to call one of the provided methods and provide a block that will perform actions on a yielded TweetStream::Status. For example:

    TweetStream::Client.new.track('fail') do |status|
      puts "[#{status.user.screen_name}] #{status.text}"
    end

For information about a daemonized TweetStream client, view the TweetStream::Daemon class.

Methods

Attributes

timer  [RW] 

Public Class methods

Creates a new API

Public Instance methods

Make a call to the statuses/filter method of the Streaming API, you may provide :follow, :track or both as options to follow the tweets of specified users or track keywords. This method is provided separately for cases when it would conserve the number of HTTP connections to combine track and follow.

Returns all public statuses. The Firehose is not a generally available resource. Few applications require this level of access. Creative use of a combination of other resources and various access levels can satisfy nearly every application use case.

Returns public statuses from or in reply to a set of users. Mentions ("Hello @user!") and implicit replies ("@user Hello!" created without pressing the reply "swoosh") are not matched. Requires integer user IDs, not screen names. Query parameters may be passed as the last argument.

Get the JSON parser class for this client.

Returns all statuses containing http: and https:. The links stream is not a generally available resource. Few applications require this level of access. Creative use of a combination of other resources and various access levels can satisfy nearly every application use case.

Specifies a set of bounding boxes to track. Only tweets that are both created using the Geotagging API and are placed from within a tracked bounding box will be included in the stream – the user’s location field is not used to filter tweets (e.g. if a user has their location set to “San Francisco”, but the tweet was not created using the Geotagging API and has no geo element, it will not be included in the stream). Bounding boxes are specified as a comma separate list of longitude/latitude pairs, with the first pair denoting the southwest corner of the box longitude/latitude pairs, separated by commas. The first pair specifies the southwest corner of the box.

Set a Proc to be run whenever anything is encountered in the processing of the stream.

    @client = TweetStream::Client.new
    @client.on_anything do |status|
      # do something with the status
    end

Block can take one or two arguments. |status (, client)| If no block is given, it will return the currently set timeline status proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Set a Proc to be run when a deletion notice is received from the Twitter stream. For example:

    @client = TweetStream::Client.new
    @client.on_delete do |status_id, user_id|
      Tweet.delete(status_id)
    end

Block must take two arguments: the status id and the user id. If no block is given, it will return the currently set deletion proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Set a Proc to be run when a direct message is encountered in the processing of the stream.

    @client = TweetStream::Client.new
    @client.on_direct_message do |direct_message|
      # do something with the direct message
    end

Block must take one argument: the direct message. If no block is given, it will return the currently set direct message proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Set a Proc to be run when an HTTP error is encountered in the processing of the stream. Note that TweetStream will automatically try to reconnect, this is for reference only. Don‘t panic!

    @client = TweetStream::Client.new
    @client.on_error do |message|
      # Make note of error message
    end

Block must take one argument: the error message. If no block is given, it will return the currently set error proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Set a Proc to be run when connection established. Called in EventMachine::Connection#post_init

    @client = TweetStream::Client.new
    @client.on_inited do
      puts 'Connected...'
    end

Set a Proc to be run on a regular interval independent of timeline status updates

    @client = TweetStream::Client.new
    @client.on_interval(20) do
      # do something every 20 seconds
    end

Set a Proc to be run when a rate limit notice is received from the Twitter stream. For example:

    @client = TweetStream::Client.new
    @client.on_limit do |discarded_count|
      # Make note of discarded count
    end

Block must take one argument: the number of discarded tweets. If no block is given, it will return the currently set limit proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Set a Proc to be run on reconnect.

    @client = TweetStream::Client.new
    @client.on_reconnect do |timeout, retries|
      # Make note of the reconnection
    end

Set a Proc to be run when a regular timeline message is encountered in the processing of the stream.

    @client = TweetStream::Client.new
    @client.on_timeline_message do |status|
      # do something with the status
    end

Block can take one or two arguments. |status (, client)| If no block is given, it will return the currently set timeline status proc. When a block is given, the TweetStream::Client object is returned to allow for chaining.

Returns all retweets. The retweet stream is not a generally available resource. Few applications require this level of access. Creative use of a combination of other resources and various access levels can satisfy nearly every application use case. As of 9/11/2009, the site-wide retweet feature has not yet launched, so there are currently few, if any, retweets on this stream.

Returns a random sample of all public statuses. The default access level provides a small proportion of the Firehose. The "Gardenhose" access level provides a proportion more suitable for data mining and research applications that desire a larger proportion to be statistically significant sample.

Terminate the currently running TweetStream.

Specify keywords to track. Queries are subject to Track Limitations, described in Track Limiting and subject to access roles, described in the statuses/filter method. Track keywords are case-insensitive logical ORs. Terms are exact-matched, and also exact-matched ignoring punctuation. Phrases, keywords with spaces, are not supported. Keywords containing punctuation will only exact match tokens. Query parameters may be passed as the last argument.

Make a call to the userstream api for currently authenticated user

Protected Instance methods

[Validate]