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

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.

JsonError

This type represents all possible errors that can occur when serializing or deserializing a value into JSON.

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