diff --git a/davtelepot/__init__.py b/davtelepot/__init__.py index 398057a..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.20" +__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/authorization.py b/davtelepot/authorization.py index 0ace3e2..4738e33 100644 --- a/davtelepot/authorization.py +++ b/davtelepot/authorization.py @@ -235,6 +235,16 @@ def get_authorization_function(bot): def is_authorized(update, user_record=None, authorization_level=2): """Return True if user role is at least at `authorization_level`.""" + if user_record is None: + if ( + isinstance(update, dict) + and 'from' in update + and isinstance(update['from'], dict) + and 'id' in update['from'] + ): + user_record = bot.db['users'].find_one( + telegram_id=update['from']['id'] + ) user_role = bot.Role.get_user_role(user_record=user_record) if user_role.code == 0: return False 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, diff --git a/davtelepot/messages.py b/davtelepot/messages.py index 651b5e4..5e2071e 100644 --- a/davtelepot/messages.py +++ b/davtelepot/messages.py @@ -249,8 +249,8 @@ default_admin_messages = { 'result': { 'en': "Last commit: {last_commit}\n" "davtelepot version: {davtelepot_version}", - 'it': "Ultimo commit: {last_commit}" - "Version di davtelepot: {davtelepot_version}", + 'it': "Ultimo commit: {last_commit}\n" + "Versione di davtelepot: {davtelepot_version}", }, } }