From 1a8fcf616590342e58b1b4a957e81906499c73a4 Mon Sep 17 00:00:00 2001 From: Markus Ressel Date: Sat, 28 Sep 2024 01:30:40 +0200 Subject: [PATCH] add fuzzy search fallback to set_approval_count method --- keel_telegram_bot/bot/__init__.py | 32 +++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/keel_telegram_bot/bot/__init__.py b/keel_telegram_bot/bot/__init__.py index 00309cb..0a6c31a 100644 --- a/keel_telegram_bot/bot/__init__.py +++ b/keel_telegram_bot/bot/__init__.py @@ -328,19 +328,31 @@ async def _set_approval_count_callback(self, update: Update, context: ContextTyp message = update.effective_message chat_id = update.effective_chat.id - self._api_client.get_resources() + async def execute(update: Update, context: ContextTypes.DEFAULT_TYPE, item: Resource, data: dict): + bot = context.bot + message = update.effective_message + chat_id = update.effective_chat.id - self._api_client.set_required_approvals_count( - identifier=identifier, - provider=Provider.Kubernetes, - votes_required=count - ) + self._api_client.set_required_approvals_count( + identifier=identifier, + provider=Provider.Kubernetes, + votes_required=count + ) - resource = self._api_client.get_resource(identifier=identifier) - resource_lines = resource_to_str(resource) - text = resource_lines + resource = self._api_client.get_resource(identifier=identifier) + resource_lines = resource_to_str(resource) + text = resource_lines - await send_message(bot, chat_id, text, reply_to=message.message_id) + await send_message(bot, chat_id, text, reply_to=message.message_id) + + items = self._api_client.get_resources() + items = list(filter(lambda x: not self._is_filtered_for(chat_id, x.identifier), items)) + + # then fuzzy match to "identifier" + await self._response_handler.await_user_selection( + update, context, identifier, choices=items, key=lambda x: x.identifier, + callback=execute, + ) @COMMAND_TIME_APPROVE.time() @command(name=COMMAND_APPROVE,