|
@@ -28,11 +28,12 @@ fn msg_router(msg: &TelegramMessage) -> MsgType{
|
|
|
let regex_message = Regex::new(
|
|
|
r"token:(?P<token>[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})"
|
|
|
).unwrap();
|
|
|
+ let delimiter = '.';
|
|
|
let msg_text = msg.text.as_str();
|
|
|
match msg_text {
|
|
|
msg_text if msg_text == "/start" => MsgType::Start,
|
|
|
msg_text if regex_message.is_match(msg_text) => MsgType::Register,
|
|
|
- msg_text if msg_text.split('!').count() > 1 => MsgType::ItemPrice,
|
|
|
+ msg_text if msg_text.split(delimiter).count() > 1 => MsgType::ItemPrice,
|
|
|
_ => MsgType::Undefined,
|
|
|
}
|
|
|
|
|
@@ -109,10 +110,10 @@ pub async fn handle_message(
|
|
|
Some(_user) => {
|
|
|
match handle_item_price(msg, tg_bot, db, gs_hub, sheet_id).await {
|
|
|
Ok(range) => match range {
|
|
|
- Some(range) => {
|
|
|
+ Some(_range) => {
|
|
|
match tg_bot.send_message(
|
|
|
msg.chat.id,
|
|
|
- format!("Добавлена строка {range}, {}", msg.text).as_str(),
|
|
|
+ format!("Данные внесены").as_str(),//format!("Добавлена строка {range}, {}", msg.text).as_str(),
|
|
|
None
|
|
|
).await { Ok(_) => (), Err(err) => error!("Error sending msg {err}")}
|
|
|
}, None => ()
|
|
@@ -123,7 +124,25 @@ pub async fn handle_message(
|
|
|
None => ()
|
|
|
}
|
|
|
}
|
|
|
- MsgType::Undefined => {},
|
|
|
+ MsgType::Undefined => {
|
|
|
+ match usr {
|
|
|
+ Some(_) => {
|
|
|
+ let text =match get_from_key_value(db, "guide_msg").await {
|
|
|
+ Ok(val) => val,
|
|
|
+ Err(err) => {
|
|
|
+ error!("Error getting from key_value {err}");
|
|
|
+ String::from("Произошла ошибка обратитесь к администратору MH_UD_GKV")
|
|
|
+ }
|
|
|
+ };
|
|
|
+ match tg_bot.send_message(
|
|
|
+ msg.chat.id,
|
|
|
+ text.as_str(),
|
|
|
+ None
|
|
|
+ ).await { Ok(_) => (), Err(err) => error!("Error sending msg {err}")}
|
|
|
+ },
|
|
|
+ None => ()
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -185,12 +204,19 @@ pub async fn handle_item_price(
|
|
|
gs_hub: &Sheets<hyper_rustls::HttpsConnector<hyper_util::client::legacy::connect::HttpConnector>>,
|
|
|
sheet_id: &str
|
|
|
) -> Result<Option<String>, DbErr> {
|
|
|
- let delimiter = '!';
|
|
|
+ let delimiter = '.';
|
|
|
let splitted_text: Vec<&str> = msg.text.split(delimiter).map(|txt| txt.trim()).collect();
|
|
|
- if splitted_text.len() != 2 {
|
|
|
+ if splitted_text.len() < 2 {
|
|
|
+ let text =match get_from_key_value(db, "guide_msg").await {
|
|
|
+ Ok(val) => val,
|
|
|
+ Err(err) => {
|
|
|
+ error!("Error getting from key_value {err}");
|
|
|
+ String::from("Произошла ошибка обратитесь к администратору HIP_GKV")
|
|
|
+ }
|
|
|
+ };
|
|
|
match tg_bot.send_message(
|
|
|
msg.chat.id,
|
|
|
- "Используйте формат ```предмет ! цена```",
|
|
|
+ text.as_str(),
|
|
|
None
|
|
|
).await {
|
|
|
Ok(_) => return Ok(None),
|
|
@@ -211,7 +237,7 @@ pub async fn handle_item_price(
|
|
|
}
|
|
|
};
|
|
|
create_new_item_price(
|
|
|
- db, splitted_text[0].to_string(), Some(splitted_text[1].to_string()),
|
|
|
+ db, splitted_text[0].to_string(), Some(splitted_text[1..].join(".").to_string()),
|
|
|
current_user.id
|
|
|
).await?;
|
|
|
let updated_range = add_item_price_to_google_sheet(
|