aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/tell/database.rs18
-rw-r--r--src/plugins/tell/mod.rs19
2 files changed, 22 insertions, 15 deletions
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<S: ::std::hash::BuildHasher + Send + Sync> Database for HashMap<String, Vec
};
let receiver = tell.receiver.clone();
- let tell_messages = self.entry(receiver)
+ let tell_messages = self
+ .entry(receiver)
.or_insert_with(|| Vec::with_capacity(3));
(*tell_messages).push(tell);
@@ -68,7 +69,8 @@ impl<S: ::std::hash::BuildHasher + Send + Sync> Database for HashMap<String, Vec
}
fn get_receivers(&self) -> Result<Vec<String>, TellError> {
- Ok(self.iter()
+ Ok(self
+ .iter()
.map(|(receiver, _)| receiver.to_owned())
.collect::<Vec<_>>())
}
@@ -117,21 +119,25 @@ impl Database for Arc<Pool<ConnectionManager<MysqlConnection>>> {
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::<TellMessage>(conn)
- .context(ErrorKind::MysqlError)?)
+ .context(ErrorKind::MysqlError)?;
+
+ Ok(result)
}
fn get_receivers(&self) -> Result<Vec<String>, TellError> {
use self::tells::columns;
let conn = &*self.get().context(ErrorKind::NoConnection)?;
- Ok(tells::table
+ let result = tells::table
.select(columns::receiver)
.load::<String>(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<T: Database, C: FrippyClient> Tell<T, C> {
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::<Vec<_>>();
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<T: Database, C: FrippyClient> Tell<T, C> {
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> {