commands: Adding "disconnect" command to force socket shutdown (#1057)

* commands: Adding "disconnect" command to force socket shutdown

* Rename to `reconnect`

* Add documentation to README

Related to: #628 #1033

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
This commit is contained in:
inemajo
2023-02-26 20:46:41 +01:00
committed by GitHub
parent e8d652cc78
commit 801e847c88
3 changed files with 9 additions and 0 deletions

View File

@@ -326,6 +326,7 @@ Note: \<FOO\> - mandatory arg; [BAR] - optional arg
| `exec` \<CMD\> | Execute a command in the system shell.<br/>\* Command output is printed to the terminal, so redirection (`2> /dev/null`) may be necessary. |
| `noop` | Do nothing. Useful for disabling default keybindings. See [custom keybindings](#custom-keybindings). |
| `reload` | Reload the configuration from disk. See [Configuration](#configuration). |
| `reconnect` | Reconnect to Spotify (useful when session has expired or connection was lost |
## Remote control (IPC)

View File

@@ -157,6 +157,7 @@ pub enum Command {
ShowRecommendations(TargetMode),
Redraw,
Execute(String),
Reconnect,
}
impl fmt::Display for Command {
@@ -216,6 +217,7 @@ impl fmt::Display for Command {
| Command::ReloadConfig
| Command::Noop
| Command::Logout
| Command::Reconnect
| Command::Redraw => vec![],
};
repr_tokens.append(&mut extras_args);
@@ -266,6 +268,7 @@ impl Command {
Command::ShowRecommendations(_) => "similar",
Command::Redraw => "redraw",
Command::Execute(_) => "exec",
Command::Reconnect => "reconnect",
}
}
}
@@ -721,6 +724,7 @@ pub fn parse(input: &str) -> Result<Vec<Command>, CommandParseError> {
}
"redraw" => Command::Redraw,
"exec" => Command::Execute(args.join(" ")),
"reconnect" => Command::Reconnect,
_ => {
return Err(NoSuchCommand {
cmd: command.into(),

View File

@@ -269,6 +269,10 @@ impl CommandManager {
log::info!("Exit code: {}", result);
Ok(None)
}
Command::Reconnect => {
self.spotify.shutdown();
Ok(None)
}
Command::Queue
| Command::PlayNext