diff options
Diffstat (limited to 'mumctl/src/main.rs')
| -rw-r--r-- | mumctl/src/main.rs | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs index 84517d5..1fb2a45 100644 --- a/mumctl/src/main.rs +++ b/mumctl/src/main.rs @@ -87,6 +87,11 @@ enum Command { }, /// Send a message to a channel or a user Message(Target), + /// Get events that have happened since we connected + Events { + #[structopt(short = "f", long = "follow")] + follow: bool, + }, } #[derive(Debug, StructOpt)] @@ -263,10 +268,10 @@ fn match_opt() -> Result<(), Error> { password: password.map(|x| x.to_string()), accept_invalid_cert: true, //TODO })??; - if let Some(CommandResponse::ServerConnect { welcome_message }) = response { - println!("Connected to {}", host); + if let Some(CommandResponse::ServerConnect { welcome_message, server_state }) = response { + parse_state(&server_state); if let Some(message) = welcome_message { - println!("Welcome: {}", message); + println!("\nWelcome: {}", message); } } } @@ -366,7 +371,7 @@ fn match_opt() -> Result<(), Error> { for response in send_command_multi(MumCommand::PastMessages { block: follow })? { match response { Ok(Some(CommandResponse::PastMessage { message })) => { - println!("{}: {}", message.1, message.0) + println!("[{}] {}: {}", message.0.format("%d %b %H:%M"), message.2, message.1) } Ok(_) => unreachable!("Response should only be a Some(PastMessages)"), Err(e) => error!("{}", e), @@ -381,7 +386,7 @@ fn match_opt() -> Result<(), Error> { } => { let msg = MumCommand::SendMessage { message, - target: if names.is_empty() { + targets: if names.is_empty() { MessageTarget::Channel(vec![(ChannelTarget::Current, recursive)]) } else { MessageTarget::Channel( @@ -397,11 +402,22 @@ fn match_opt() -> Result<(), Error> { Target::User { message, names } => { let msg = MumCommand::SendMessage { message, - target: MessageTarget::User(names), + targets: MessageTarget::User(names), }; send_command(msg)??; } }, + Command::Events { follow } => { + for response in send_command_multi(MumCommand::Events { block: follow })? { + match response { + Ok(Some(CommandResponse::Event { event })) => { + println!("{}", event) + } + Ok(_) => unreachable!("Response should only be a Some(Event)"), + Err(e) => error!("{}", e), + } + } + } } let config_path = config::default_cfg_path(); |
