From 9c73337c53a8cc527ca17ea22764480071ad8c35 Mon Sep 17 00:00:00 2001 From: Davte Date: Mon, 20 Apr 2020 19:01:58 +0200 Subject: [PATCH] Allow multilanguage support for inline query answers --- davtelepot/__init__.py | 2 +- davtelepot/api.py | 3 ++- davtelepot/bot.py | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/davtelepot/__init__.py b/davtelepot/__init__.py index 0d27f84..e504cd2 100644 --- a/davtelepot/__init__.py +++ b/davtelepot/__init__.py @@ -14,7 +14,7 @@ __author__ = "Davide Testa" __email__ = "davide@davte.it" __credits__ = ["Marco Origlia", "Nick Lee @Nickoala"] __license__ = "GNU General Public License v3.0" -__version__ = "2.4.22" +__version__ = "2.4.23" __maintainer__ = "Davide Testa" __contact__ = "t.me/davte" diff --git a/davtelepot/api.py b/davtelepot/api.py index a8de1e7..91f9b91 100644 --- a/davtelepot/api.py +++ b/davtelepot/api.py @@ -18,7 +18,8 @@ from aiohttp import web class TelegramError(Exception): """Telegram API exceptions class.""" - def __init__(self, error_code=0, description=None): + def __init__(self, error_code=0, description=None, ok=False, + *args, **kwargs): """Get an error response and return corresponding Exception.""" self._code = error_code if description is None: diff --git a/davtelepot/bot.py b/davtelepot/bot.py index fba6d3c..8df64a3 100644 --- a/davtelepot/bot.py +++ b/davtelepot/bot.py @@ -607,6 +607,32 @@ class Bot(TelegramBot, ObjectWithDatabase, MultiLanguageObject): if 'switch_pm_parameter' in results: switch_pm_parameter = results['switch_pm_parameter'] results = results['answer'] + for result in results: + if ( + isinstance(result, dict) + and isinstance(result['title'], dict) + ): + result['title'] = self.get_message( + update=update, + user_record=user_record, + messages=result['title'] + ) + if ( + isinstance(result, dict) + and 'input_message_content' in result + and isinstance(result['input_message_content'], dict) + and 'message_text' in result['input_message_content'] + and isinstance( + result['input_message_content']['message_text'], + dict + ) + ): + result['input_message_content'][ + 'message_text'] = self.get_message( + update=update, + user_record=user_record, + messages=result['input_message_content']['message_text'] + ) try: await self.answer_inline_query( update=update,