extern crate dotenv;
use dotenv::dotenv;
use futures_util::pin_mut;
use futures_util::stream::StreamExt;
use lastfm::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenv().ok();
let client = Client::<String, &str>::from_env("loige");
let now_playing = client.now_playing().await?;
if let Some(track) = now_playing {
println!("Now playing: {} - {}", track.artist.name, track.name);
}
let tracks = client.all_tracks().await?;
println!("Total tracks: {}", tracks.total_tracks);
let recent_tracks = tracks.into_stream();
pin_mut!(recent_tracks); while let Some(track) = recent_tracks.next().await {
match track {
Ok(track) => {
println!(
"{}: {} - {}",
track.date.to_rfc2822(),
track.artist.name,
track.name
);
}
Err(e) => {
println!("Error fetching data: {:?}", e);
}
}
}
Ok(())
}