diff options
author | Santo Cariotti <santo@dcariotti.me> | 2021-08-05 20:32:45 +0200 |
---|---|---|
committer | Santo Cariotti <santo@dcariotti.me> | 2021-08-05 20:32:45 +0200 |
commit | 0ef059378e3b10c0eebcbb4e5abc0e033f06cd25 (patch) | |
tree | a9e5761039205bf132a61f46f35fdd0c260902ee /src | |
parent | eaafe83dae4c12d44c9c7672a3b02c04b110cf6b (diff) |
chore: get chat_id to create the button for callback
Diffstat (limited to 'src')
-rw-r--r-- | src/commands.rs | 4 | ||||
-rw-r--r-- | src/keyboard.rs | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/commands.rs b/src/commands.rs index 512e3c1..b03e1c6 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -3,7 +3,7 @@ use crate::config::Config; use crate::keyboard::make_inline_keyboard; use std::error::Error; use teloxide::payloads::SendMessageSetters; -use teloxide::prelude::{AutoSend, Bot, Message, UpdateWithCx}; +use teloxide::prelude::{AutoSend, Bot, GetChatId, Message, UpdateWithCx}; use teloxide::utils::command::BotCommand; #[derive(BotCommand)] @@ -54,7 +54,7 @@ pub async fn handler( faculties = browser::get_faculties().await.unwrap(); } - let keyboard = make_inline_keyboard(&faculties, "faculty").await; + let keyboard = make_inline_keyboard(&faculties, "faculty", cx.chat_id()).await; cx.answer("Where?").reply_markup(keyboard).await?; } } diff --git a/src/keyboard.rs b/src/keyboard.rs index ea57d66..8cee93d 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -5,6 +5,7 @@ use teloxide::types::{InlineKeyboardButton, InlineKeyboardMarkup}; pub async fn make_inline_keyboard( hashmap: &Option<HashMap<String, String>>, callback_type: &str, + chat_id: i64, ) -> InlineKeyboardMarkup { // This is an array of array because the `InlineKeyboardMarkup` // considers each array as a row. @@ -16,7 +17,7 @@ pub async fn make_inline_keyboard( for (key, value) in options { keyboard_array.push(vec![InlineKeyboardButton::callback( value.clone(), - format!("{}_{}", callback_type, key), + format!("{}_{}_{}", chat_id, callback_type, key), )]); } } else { |