Queer European MD passionate about IT
Bladeren bron

Allow multilanguage support for inline query answers

Davte 4 jaren geleden
bovenliggende
commit
9c73337c53
3 gewijzigde bestanden met toevoegingen van 29 en 2 verwijderingen
  1. 1 1
      davtelepot/__init__.py
  2. 2 1
      davtelepot/api.py
  3. 26 0
      davtelepot/bot.py

+ 1 - 1
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"
 

+ 2 - 1
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:

+ 26 - 0
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,