plex-api 0.0.12

Library for communication with Plex server. Work in progress, not ready for any use. See github for details.
Documentation
use plex_api::MyPlexBuilder;
use rpassword::prompt_password;
use std::io::{stdin, stdout, BufRead, Write};

#[tokio::main]
async fn main() {
    print!("Username: ");
    stdout().flush().unwrap();

    let username = stdin().lock().lines().next().unwrap().unwrap();
    let password = prompt_password("Password: ").unwrap();

    let mut myplex_result = MyPlexBuilder::default()
        .set_username_and_password(&username, password.clone())
        .build()
        .await;

    if let Err(plex_api::Error::OtpRequired) = myplex_result {
        let otp = prompt_password("OTP: ").unwrap();
        myplex_result = MyPlexBuilder::default()
            .set_username_and_password(&username, password)
            .set_otp(otp)
            .build()
            .await;
    }

    let myplex = myplex_result.unwrap();

    println!("Auth token: {}", myplex.client().x_plex_token());
}