51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
}
pub async fn test (core: &Core, msg: &Message) -> Result<()> {
let sender: i64 = msg.sender.get_user_id()
.stack_err("Ignoring unreal users.")?.into();
let feeds = core.get_feeds(sender).await.stack()?;
let kb = get_kb(&Callback::list("", 0), feeds).await.stack()?;
core.tg.send(MyMessage::html_to_kb(format!("List of feeds owned by {:?}:", msg.sender), msg.chat.get_id(), kb)).await.stack()?;
Ok(())
}
/// Handle channel-management commands that operate on a single numeric source ID.
///
/// This validates that exactly one numeric argument is provided, performs the requested
/// operation (check, clean, enable, delete, disable) against the database or core,
|
|
|
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
}
pub async fn test (core: &Core, msg: &Message) -> Result<()> {
let sender: i64 = msg.sender.get_user_id()
.stack_err("Ignoring unreal users.")?.into();
let feeds = core.get_feeds(sender).await.stack()?;
let kb = get_kb(&Callback::list("", 0), feeds).await.stack()?;
core.tg.send(MyMessage::html_to_kb(format!("List of feeds owned by {:?}:", msg.sender.get_user_username()), msg.chat.get_id(), kb)).await.stack()?;
Ok(())
}
/// Handle channel-management commands that operate on a single numeric source ID.
///
/// This validates that exactly one numeric argument is provided, performs the requested
/// operation (check, clean, enable, delete, disable) against the database or core,
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
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" => {
core.rm_feed(sender.into(), &number).await.stack()?;
conn.delete(number, sender).await.stack()?
}
"/disable" => conn.disable(number, sender).await.stack()?.into(),
_ => bail!("Command {command} {words:?} not handled."),
},
}
} else {
"This command needs exactly one number.".into()
|
>
<
>
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
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()?;
core.rm_feed(sender.into(), &number).await.stack()?;
res
}
"/disable" => conn.disable(number, sender).await.stack()?.into(),
_ => bail!("Command {command} {words:?} not handled."),
},
}
} else {
"This command needs exactly one number.".into()
|