From 0a57d0ee613eb989ce5790d645c06c7817dd0ecc Mon Sep 17 00:00:00 2001 From: Jokler Date: Sat, 7 Dec 2019 18:51:08 +0100 Subject: Tell: List the receivers on successful send --- src/plugins/tell/database.rs | 18 ++++++++++++------ src/plugins/tell/mod.rs | 19 ++++++++++--------- 2 files changed, 22 insertions(+), 15 deletions(-) (limited to 'src/plugins/tell') diff --git a/src/plugins/tell/database.rs b/src/plugins/tell/database.rs index cbcb93d..cdce6c6 100644 --- a/src/plugins/tell/database.rs +++ b/src/plugins/tell/database.rs @@ -56,7 +56,8 @@ impl Database for HashMap Database for HashMap Result, TellError> { - Ok(self.iter() + Ok(self + .iter() .map(|(receiver, _)| receiver.to_owned()) .collect::>()) } @@ -117,21 +119,25 @@ impl Database for Arc>> { use self::tells::columns; let conn = &*self.get().context(ErrorKind::NoConnection)?; - Ok(tells::table + let result = tells::table .filter(columns::receiver.eq(receiver)) .order(columns::time.asc()) .load::(conn) - .context(ErrorKind::MysqlError)?) + .context(ErrorKind::MysqlError)?; + + Ok(result) } fn get_receivers(&self) -> Result, TellError> { use self::tells::columns; let conn = &*self.get().context(ErrorKind::NoConnection)?; - Ok(tells::table + let result = tells::table .select(columns::receiver) .load::(conn) - .context(ErrorKind::MysqlError)?) + .context(ErrorKind::MysqlError)?; + + Ok(result) } fn delete_tells(&mut self, receiver: &str) -> Result<(), TellError> { diff --git a/src/plugins/tell/mod.rs b/src/plugins/tell/mod.rs index 3c0dc3d..2e3829f 100644 --- a/src/plugins/tell/mod.rs +++ b/src/plugins/tell/mod.rs @@ -43,11 +43,14 @@ impl Tell { let mut online = Vec::new(); - let receivers = command.tokens[0].split(',').filter(|&s| !s.is_empty()); + let receivers = command.tokens[0] + .split(',') + .filter(|&s| !s.is_empty()) + .collect::>(); let sender = command.source; let mut no_receiver = true; - for receiver in receivers { + for receiver in &receivers { if receiver.eq_ignore_ascii_case(client.current_nickname()) || receiver.eq_ignore_ascii_case(&sender) { @@ -96,15 +99,13 @@ impl Tell { no_receiver = false; } - Ok(if no_receiver && online.is_empty() { + let resp = if no_receiver { String::from("Invalid receiver.") } else { - match online.len() { - 0 => format!("Got it!"), - 1 => format!("{} is currently online.", online[0]), - _ => format!("{} are currently online.", online.join(", ")), - } - }) + format!("Sending tell to {}.", receivers.join(", ")) + }; + + Ok(resp) } fn on_namelist(&self, client: &C, channel: &str) -> Result<(), FrippyError> { -- cgit v1.2.3-70-g09d2