From 1e17ede0d646ea044cb623207930438a6dc8601d Mon Sep 17 00:00:00 2001 From: Sokhibjon Orzikulov Date: Fri, 17 Nov 2023 03:33:50 +0500 Subject: [PATCH] complete inline --- src/functions/inline.rs | 3 ++- src/utils/inmgr.rs | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/functions/inline.rs b/src/functions/inline.rs index d2d6517..b99fc76 100644 --- a/src/functions/inline.rs +++ b/src/functions/inline.rs @@ -79,8 +79,9 @@ pub async fn inline( ) .description(c.description.clone().unwrap()) .url(url::Url::parse(&format!("https://crates.io/crates/{}", c.id)).unwrap()) + .reply_markup(kb_generate(c) .into(), - )); + ))); } bot.answer_inline_query(q.id, result).send().await?; diff --git a/src/utils/inmgr.rs b/src/utils/inmgr.rs index e1963d9..6ba2d8f 100644 --- a/src/utils/inmgr.rs +++ b/src/utils/inmgr.rs @@ -56,6 +56,29 @@ pub fn view_generate(c: &Crate) -> String { result } +pub fn kb_generate(c: &Crate) -> InlineKeyboardMarkup { + let mut keyboard = Keyboard::new(); + + keyboard.url("Crate", format!("https://crates.io/crates/{}", c.name).as_str()); + + if c.homepage.is_some() { + keyboard.url("Asosiy", &c.homepage.clone().unwrap()); + keyboard.row(); + } + + if c.documentation.is_some() { + keyboard.url("Dokumentatsiya", &c.documentation.clone().unwrap()); + keyboard.row(); + } + + if c.repository.is_some() { + keyboard.url("Repozitoriya", &c.repository.clone().unwrap()); + keyboard.row(); + } + + keyboard.get() +} + pub fn err_keyboard() -> InlineKeyboardMarkup { let mut keyboard = Keyboard::new(); keyboard.switch_inline_current("Qayta urinib ko'ramizmi?", "rand")