Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2026-01-25 17:33:45 +02:00
commit ce58a10657
7 changed files with 1062 additions and 0 deletions

70
src/main.rs Normal file
View File

@@ -0,0 +1,70 @@
use std::{path::PathBuf, thread::sleep, time::Duration};
use clap::Parser;
use discord_presence::{Client, models::ActivityType};
use mpd::{Idle, Subsystem};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Config {
address: String,
}
impl Default for Config {
fn default() -> Self {
Self {
address: "localhost:6600".to_string(),
}
}
}
#[derive(Debug, Parser)]
struct Args {
#[arg(short, long)]
config: Option<PathBuf>,
}
fn main() {
let args = Args::parse();
let config = args
.config
.and_then(|path| std::fs::read_to_string(path).ok())
.and_then(|t| toml::from_str::<Config>(&t).ok())
.unwrap_or_default();
let mut mpdc = mpd::Client::connect("localhost:6600").unwrap();
println!("Status: {:?}", mpdc.status());
mpdc.idle(&[Subsystem::Player]);
let mut client = Client::new(1464985070992363645);
client.start();
{
let ready = client.on_ready({
let client = client.clone();
move |_ctx| {
let mut client = client.clone();
println!("READY!");
client
.set_activity(|a| {
a.state("Rust")
.details("Programming")
.activity_type(ActivityType::Listening)
})
.unwrap();
}
});
std::mem::forget(ready);
}
let _error = client.on_error(|ctx| {
eprintln!("An error occured, {:?}", ctx.event);
});
loop {
sleep(Duration::from_secs(100));
}
}