From 506fdcb26032e7c7f3fb9ef5b2e297fc8a15ac41 Mon Sep 17 00:00:00 2001 From: Akulij Date: Fri, 23 May 2025 16:19:37 +0500 Subject: [PATCH] create BotMessage.resolve_buttons --- src/botscript.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/botscript.rs b/src/botscript.rs index b1439ad..7428084 100644 --- a/src/botscript.rs +++ b/src/botscript.rs @@ -430,6 +430,33 @@ impl BotMessage { } } +impl BotMessage { + pub async fn resolve_buttons( + &self, + db: &mut DB, + ) -> ScriptResult>>> { + let raw_buttons = self.buttons.clone().map(|b| b.resolve()).transpose()?; + match raw_buttons { + Some(braws) => { + let kbd: Vec> = join_all(braws.into_iter().map(|rows| async { + join_all(rows.into_iter().map(|b| async { + let mut db = db.clone(); + ButtonLayout::resolve_raw(b, &mut db).await + })) + .await + .into_iter() + .collect() + })) + .await + .into_iter() + .collect::>()?; + Ok(Some(kbd)) + } + None => Ok(None), + } + } +} + pub enum ButtonLayout { Callback { name: String,