extern crate mpdrs;

use mpdrs::{Client, Query};
use std::net::TcpStream;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut c = Client::new(TcpStream::connect("127.0.0.1:6600").unwrap()).unwrap();
    let now_playing = c.currentsong()?;
    if let Some(song) = now_playing {
        println!("Metadata:");
        for row in c.readcomments(&*song.file)? {
            if let Ok((k, v)) = row {
                println!("{}: {}", k, v);
            }
        }
    } else {
        println!("No song playing.");
    }

    let query = Query::Expression(r#"(artist == "Miles Davis")"#.to_string());
    for song in c.search(&query, None)? {
        println!("{}", song.file);
    }

    Ok(())
}