aboutsummaryrefslogtreecommitdiffstats
path: root/mumctl/src
diff options
context:
space:
mode:
Diffstat (limited to 'mumctl/src')
-rw-r--r--mumctl/src/main.rs28
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();