Crate twitter_stream [] [src]

Twitter Stream

A library for listening on Twitter Stream API.

Usage

Add twitter-stream to your dependencies in your project's Cargo.toml:

[dependencies]
twitter-stream = "0.1"

and this to your crate root:

extern crate twitter_stream;

Overview

Here is a basic example that prints each Tweet's text from User Stream:

extern crate futures;
extern crate twitter_stream;
use futures::{Future, Stream};
use twitter_stream::{StreamMessage, TwitterStream};

let consumer_key = "...";
let consumer_secret = "...";
let token = "...";
let token_secret = "...";

let stream = TwitterStream::user(consumer_key, consumer_secret, token, token_secret).unwrap();

stream
    .filter_map(|msg| {
        if let StreamMessage::Tweet(tweet) = msg {
            Some(tweet.text)
        } else {
            None
        }
    })
    .for_each(|tweet| {
        println!("{}", tweet);
        Ok(())
    })
    .wait().unwrap();

In the example above, stream disconnects and returns error when a JSON message from Stream was failed to parse. If you don't want this behavior, you can opt to parse the messages manually:

extern crate serde_json;

use twitter_stream::{StreamMessage, TwitterJsonStream};

let stream = TwitterJsonStream::user(consumer_key, consumer_secret, token, token_secret).unwrap();

stream
    .filter_map(|json| {
        if let Ok(StreamMessage::Tweet(tweet)) = serde_json::from_str(&json) {
            Some(tweet.text)
        } else {
            None
        }
    })
    .for_each(|tweet| {
        println!("{}", tweet);
        Ok(())
    })
    .wait().unwrap();

Reexports

pub use messages::StreamMessage;

Modules

messages

Type-safe abstractions over JSON messages from Twitter Stream API.

Structs

JsonError

This type represents all possible errors that can occur when serializing or deserializing JSON data.

TwitterJsonStream

Same as TwitterStream except that it yields raw JSON string messages.

TwitterStream

A listener for Twitter Stream API.

TwitterStreamBuilder

A builder for TwitterStream.

Enums

Error

An error occurred while connecting to the Stream API.

Method

The Request Method (VERB)

StatusCode

An HTTP status code (status-code in RFC 7230 et al.).

With

A value for with parameter for User and Site Streams.

Type Definitions

Result