18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
pub async fn list(core: &Core, sender: telegram_bot::UserId) -> Result<()> {
core.send(core.list(sender).await?, Some(sender), Some(telegram_bot::types::ParseMode::MarkdownV2)).await?;
Ok(())
}
pub async fn command(core: &Core, sender: telegram_bot::UserId, command: Vec<&str>) -> Result<()> {
if command.len() >= 2 {
let msg: Cow<str> = match &command[1].parse::<i32>() {
Err(err) => format!("I need a number.\n{}", &err).into(),
Ok(number) => match command[0] {
"/check" => core.check(number, sender, false).await
.context("Channel check failed.")?,
"/clean" => core.clean(number, sender).await?,
"/enable" => core.enable(number, sender).await?.into(),
"/delete" => core.delete(number, sender).await?,
"/disable" => core.disable(number, sender).await?.into(),
_ => bail!("Command {} not handled.", &command[0]),
},
};
core.send(msg, Some(sender), None).await?;
let msg: Cow<str> = match &command[1].parse::<i32>() {
Err(err) => format!("I need a number.\n{}", &err).into(),
Ok(number) => match command[0] {
"/check" => core.check(number, sender, false).await
.context("Channel check failed.")?,
"/clean" => core.clean(number, sender).await?,
"/enable" => core.enable(number, sender).await?.into(),
"/delete" => core.delete(number, sender).await?,
"/disable" => core.disable(number, sender).await?.into(),
_ => bail!("Command {} not handled.", &command[0]),
},
};
core.send(msg, Some(sender), None).await?;
} else {
core.send("This command needs a number.", Some(sender), None).await?;
}
Ok(())
}
pub async fn update(core: &Core, sender: telegram_bot::UserId, command: Vec<&str>) -> Result<()> {
let mut source_id: Option<i32> = None;
let at_least = "Requires at least 3 parameters.";
let mut i_command = command.iter();
|