move out message answer into function
This commit is contained in:
parent
cca87da403
commit
089ef3218c
48
src/main.rs
48
src/main.rs
@ -12,7 +12,7 @@ use envconfig::Envconfig;
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use teloxide::dispatching::dialogue::serializer::Json;
|
use teloxide::dispatching::dialogue::serializer::Json;
|
||||||
use teloxide::dispatching::dialogue::{InMemStorage, PostgresStorage};
|
use teloxide::dispatching::dialogue::{InMemStorage, PostgresStorage};
|
||||||
use teloxide::types::{InlineKeyboardButton, InlineKeyboardMarkup};
|
use teloxide::types::{InlineKeyboardButton, InlineKeyboardMarkup, ReplyMarkup};
|
||||||
use teloxide::{
|
use teloxide::{
|
||||||
payloads::SendMessageSetters,
|
payloads::SendMessageSetters,
|
||||||
prelude::*,
|
prelude::*,
|
||||||
@ -224,21 +224,15 @@ async fn user_command_handler(
|
|||||||
println!("MSG: {}", msg.html_text().unwrap());
|
println!("MSG: {}", msg.html_text().unwrap());
|
||||||
match cmd {
|
match cmd {
|
||||||
UserCommands::Start => {
|
UserCommands::Start => {
|
||||||
let literal = "start";
|
let mut db2 = db.clone();
|
||||||
let text = db
|
answer_message(
|
||||||
.get_literal_value(literal)
|
&bot,
|
||||||
|
&msg,
|
||||||
|
&mut db,
|
||||||
|
"start",
|
||||||
|
Some(make_start_buttons(&mut db2).await),
|
||||||
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
|
||||||
.unwrap_or("Please, set content of this message".into());
|
|
||||||
let msg = bot
|
|
||||||
.send_message(msg.chat.id, text)
|
|
||||||
.reply_markup(make_start_buttons(&mut db).await)
|
|
||||||
.parse_mode(teloxide::types::ParseMode::Html)
|
|
||||||
.await?;
|
|
||||||
db.set_message_literal(msg.chat.id.0, msg.id.0, literal)
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
UserCommands::Help => {
|
UserCommands::Help => {
|
||||||
bot.send_message(msg.chat.id, UserCommands::descriptions().to_string())
|
bot.send_message(msg.chat.id, UserCommands::descriptions().to_string())
|
||||||
@ -248,6 +242,30 @@ async fn user_command_handler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn answer_message<RM: Into<ReplyMarkup>>(
|
||||||
|
bot: &Bot,
|
||||||
|
msg: &Message,
|
||||||
|
db: &mut DB,
|
||||||
|
literal: &str,
|
||||||
|
keyboard: Option<RM>,
|
||||||
|
) -> Result<(), teloxide::RequestError> {
|
||||||
|
let text = db
|
||||||
|
.get_literal_value(literal)
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
.unwrap_or("Please, set content of this message".into());
|
||||||
|
let msg = bot.send_message(msg.chat.id, text);
|
||||||
|
let msg = match keyboard {
|
||||||
|
Some(kbd) => msg.reply_markup(kbd),
|
||||||
|
None => msg,
|
||||||
|
};
|
||||||
|
let msg = msg.parse_mode(teloxide::types::ParseMode::Html).await?;
|
||||||
|
db.set_message_literal(msg.chat.id.0, msg.id.0, literal)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
async fn make_start_buttons(db: &mut DB) -> InlineKeyboardMarkup {
|
async fn make_start_buttons(db: &mut DB) -> InlineKeyboardMarkup {
|
||||||
let mut buttons: Vec<Vec<InlineKeyboardButton>> = db
|
let mut buttons: Vec<Vec<InlineKeyboardButton>> = db
|
||||||
.get_all_events()
|
.get_all_events()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user