Few more commands

This commit is contained in:
Nox Sluijtman 2025-07-06 00:20:06 +02:00
parent 293da4f330
commit f0ba8bf593
Signed by: Egg
SSH key fingerprint: SHA256:2sG9X3C7Xvq2svGumz1/k7cm8l4G9+qAtAeugqB4J9M
3 changed files with 48 additions and 2 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
/target
result
.direnv
noise.zsh

View file

@ -94,5 +94,20 @@ pub enum Commands {
// position: Option<u32>,
// },
/// Shuffles the current queueue
#[command(visible_alias = "scramble")]
Shuffle,
/// Toggles repeat
Repeat,
/// Toggles random
Random,
/// Toggles consume
Consume,
/// Toggles single
Single,
/// Get or set volume
#[command(visible_alias = "vol")]
Volume {
#[arg(value_hint = ValueHint::Other)]
percentage: Option<i8>,
},
}

View file

@ -76,7 +76,7 @@ fn main() {
let thing = conn.update().unwrap();
println!("{thing}")
}
Commands::Current => (), // this is basically the same as having no command
Commands::Current => (),
Commands::Clear => conn.clear().unwrap(),
Commands::Search { query, max } => {
let query = query.join(" ");
@ -118,6 +118,30 @@ fn main() {
println!("Shuffling queueueu...");
conn.shuffle(..).unwrap();
}
Commands::Repeat => {
let repeat_state = conn.status().unwrap().repeat;
conn.repeat(!repeat_state).unwrap();
}
Commands::Random => {
let random_state = conn.status().unwrap().random;
// conn.repeat(!random_state).unwrap();
println!("{}", random_state)
}
Commands::Single => {
let single_state = conn.status().unwrap().single;
conn.single(!single_state).unwrap();
}
Commands::Consume => {
let consume_state = conn.status().unwrap().consume;
conn.consume(!consume_state).unwrap();
}
Commands::Volume { percentage } => {
if let Some(volume) = percentage {
conn.volume(*volume).unwrap()
}
let vol = conn.status().unwrap().volume;
println!("Volume at {vol}%")
}
}
if let Commands::Stop
@ -135,8 +159,14 @@ fn main() {
println!("{}", get_status(conn, cli.verbose, n));
}
// fn toggle_state(mut client: Client, state: ) -> () {}
fn format_song(song: Song) -> String {
format!("{} - {}", song.artist.unwrap(), song.title.unwrap())
format!(
"{} - {}",
song.artist.unwrap_or("Unknown".into()),
song.title.unwrap()
)
}
trait QuickFmt {