76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
-
+
|
/// - `words`: command arguments; expected to contain exactly one element that parses as a 32-bit integer.
pub async fn command (core: &Core, command: &str, msg: &Message, words: &[String]) -> Result<()> {
let mut conn = core.db.begin().await.stack()?;
let sender = msg.sender.get_user_id()
.stack_err("Ignoring unreal users.")?;
let reply = if words.len() == 1 {
match words[0].parse::<i32>() {
Err(err) => format!("I need a number.\n{}", &err).into(),
Err(err) => format!("I need a number.\n{}", err).into(),
Ok(number) => match command {
"/check" => core.check(number, false, None).await
.context("Channel check failed.")?.into(),
"/clean" => conn.clean(number, sender).await.stack()?,
"/enable" => conn.enable(number, sender).await.stack()?.into(),
"/delete" => {
let res = conn.delete(number, sender).await.stack()?;
|