lastui 0.1.0

Command line tool to access Last.fm api and commands
use crate::config::Config;
use anyhow::Result;
use serde_json::Value;

pub fn run(cfg: &Config, limit: u32) -> Result<()> {
    let url = format!(
        "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user={}&api_key={}&format=json&limit={}",
        cfg.username, cfg.api_key, limit
    );

    let res: Value = reqwest::blocking::get(&url)?.json()?;
    let tracks = &res["recenttracks"]["track"];

    if let Some(arr) = tracks.as_array() {
        for track in arr {
            let name = track["name"].as_str().unwrap_or("?");
            let artist = track["artist"]["#text"].as_str().unwrap_or("?");
            let now_playing = track["@attr"]["nowplaying"].as_str() == Some("true");
            if now_playing {
                println!("> {} - {} (now playing)", name, artist);
            } else {
                println!("    {} - {}", name, artist);
            }
        }
    }

    Ok(())
}