Fix HTML escaping

This commit is contained in:
UltraDesu
2020-11-29 00:26:00 +03:00
parent a04bca212b
commit 61474a07c5
2 changed files with 10 additions and 4 deletions

View File

@ -21,4 +21,5 @@ hyper-tls = { version = "0.4", optional = true }
futures = "0.3" futures = "0.3"
hyper-rustls = { version = "0.19", optional = true } hyper-rustls = { version = "0.19", optional = true }
rusqlite = "0.24.1" rusqlite = "0.24.1"
html-escape = "0.2"

View File

@ -2,19 +2,24 @@ use crate::db;
use telegram_bot::prelude::*; use telegram_bot::prelude::*;
use telegram_bot::{Api, Error, Message, MessageKind, ParseMode, UpdateKind}; use telegram_bot::{Api, Error, Message, MessageKind, ParseMode, UpdateKind};
use tokio::time::delay_for; use tokio::time::delay_for;
use html_escape::encode_text;
pub(crate) async fn here(api: Api, message: Message) -> Result<(), Error> { pub(crate) async fn here(api: Api, message: Message) -> Result<(), Error> {
let members: Vec<telegram_bot::User> = db::get_members(&message.chat.id()).unwrap(); let members: Vec<telegram_bot::User> = db::get_members(&message.chat.id()).unwrap();
let mut msg = "I summon you, ".to_string(); for u in &members {
println!("Found user {:?}", u);
}
let mut msg = "<b>I summon you</b>, ".to_string();
for user in members { for user in members {
let mention = match user.username { let mention = match user.username {
Some(username) => format!("@{}", username), Some(username) => format!("@{}", username),
_ => format!("[{}](tg://user?id={})", user.first_name, user.id), _ => format!("<a href=\"tg://user?id={}\">{}</a>", encode_text(&user.id.to_string()), encode_text(&user.first_name)),
}; };
msg = format!("{} {}", msg, mention); msg = format!("{} {}", msg, mention);
} }
println!("Message: {:?}", msg);
api.send(message.text_reply(msg).parse_mode(ParseMode::MarkdownV2)) api.send(message.text_reply(msg).parse_mode(ParseMode::Html))
.await?; .await?;
//api.send(message.chat.text("Text to message chat")).await?; //api.send(message.chat.text("Text to message chat")).await?;
//api.send(message.from.text("Private text")).await?; //api.send(message.from.text("Private text")).await?;