1
0

Fetch listenbrainz and set discord rpc

This commit is contained in:
ixhbinphoenix
2024-02-12 19:39:01 +01:00
parent 75b038bb06
commit f369ffb220
9 changed files with 1055 additions and 0 deletions
+46
View File
@@ -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));
}
}