spotify 0.8.2

Easy to use Spotify Local API abstractions.
Documentation
extern crate spotify;
use spotify::{Spotify, SpotifyError};

fn main() {
    let spotify = match Spotify::connect() {
        Ok(result) => result,
        Err(error) => match error {
            SpotifyError::ClientNotRunning => {
                println!("The Spotify Client is not running!");
                std::process::exit(1);
            }
            SpotifyError::WebHelperNotRunning => {
                println!("The SpotifyWebHelper process is not running!");
                std::process::exit(2);
            }
            SpotifyError::InternalError(err) => {
                println!("Internal Error: {:?}", err);
                std::process::exit(3);
            }
        },
    };
    let reactor = spotify.poll(|_client, status, change| {
        if change.client_version {
            println!("Spotify Client (Version {})", status.version());
        }
        if change.track {
            println!("Now playing: {:#}", status.track());
            println!("{}", status.full_track().track.uri);
        }
        true
    });
    if reactor.join().ok().is_none() {
        println!("Unable to join into the live-update.");
        std::process::exit(4);
    }
}