Fetch listenbrainz and set discord rpc
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
||||
mod listenbrainz;
|
||||
|
||||
use core::time;
|
||||
use std::{env, error::Error, thread};
|
||||
|
||||
use dotenv::dotenv;
|
||||
use env_logger::Env;
|
||||
use listenbrainz::Client;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
dotenv().ok();
|
||||
if cfg!(debug_assertions) {
|
||||
env_logger::init_from_env(Env::new().default_filter_or("debug"));
|
||||
} else {
|
||||
env_logger::init_from_env(Env::new().default_filter_or("info"));
|
||||
}
|
||||
|
||||
let lb = Client::new();
|
||||
let mut drpc = discord_rpc_client::Client::new(env::var("DISCORD_CLIENT_ID")?.parse()?);
|
||||
drpc.start();
|
||||
|
||||
loop {
|
||||
// TODO: Error handling lol
|
||||
let np = lb.now_playing(&env::var("LB_USER")?)?;
|
||||
let listen = np.listens.first();
|
||||
|
||||
if listen.is_none() {
|
||||
drpc.clear_activity().unwrap();
|
||||
thread::sleep(time::Duration::from_secs(15));
|
||||
continue;
|
||||
}
|
||||
|
||||
let metadata = &listen.unwrap().track_metadata;
|
||||
|
||||
let track = metadata.track_name.clone();
|
||||
let artist = metadata.artist_name.clone();
|
||||
|
||||
// TODOOO: Fetch cover art and display it in the discord RPC
|
||||
|
||||
drpc.set_activity(|act|
|
||||
act.state(artist).details(track)
|
||||
).unwrap();
|
||||
|
||||
thread::sleep(time::Duration::from_secs(15));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user