From 5ed7bf781525d7ebde8c66979994b07c70b2dd2c Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 5 May 2019 19:57:09 +0200 Subject: [PATCH] Fix timeout error not being excepted on Button.click --- telethon/errors/rpcbaseerrors.py | 5 ++++- telethon/version.py | 2 +- telethon_generator/parsers/errors.py | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/telethon/errors/rpcbaseerrors.py b/telethon/errors/rpcbaseerrors.py index fcbbc8b3..8d8a0a66 100644 --- a/telethon/errors/rpcbaseerrors.py +++ b/telethon/errors/rpcbaseerrors.py @@ -108,7 +108,7 @@ class ServerError(RPCError): self.message = message -class BotTimeout(RPCError): +class TimedOutError(RPCError): """ Clicking the inline buttons of bots that never (or take to long to) call ``answerCallbackQuery`` will result in this "special" RPCError. @@ -121,6 +121,9 @@ class BotTimeout(RPCError): self.message = message +BotTimeout = TimedOutError + + class BadMessageError(Exception): """Occurs when handling a bad_message_notification.""" ErrorMessages = { diff --git a/telethon/version.py b/telethon/version.py index 831ee031..72bb8cb8 100644 --- a/telethon/version.py +++ b/telethon/version.py @@ -1,3 +1,3 @@ # Versions should comply with PEP440. # This line is parsed in setup.py: -__version__ = '1.7.4' +__version__ = '1.7.5' diff --git a/telethon_generator/parsers/errors.py b/telethon_generator/parsers/errors.py index d3d30c49..4fb9d43d 100644 --- a/telethon_generator/parsers/errors.py +++ b/telethon_generator/parsers/errors.py @@ -13,6 +13,7 @@ KNOWN_BASE_CLASSES = { 406: 'AuthKeyError', 420: 'FloodError', 500: 'ServerError', + 503: 'TimedOutError' } @@ -23,7 +24,7 @@ def _get_class_name(error_code): """ if isinstance(error_code, int): return KNOWN_BASE_CLASSES.get( - error_code, 'RPCError' + str(error_code).replace('-', 'Neg') + abs(error_code), 'RPCError' + str(error_code).replace('-', 'Neg') ) return snake_to_camel_case( @@ -38,7 +39,7 @@ class Error: self.int_code = codes[0] self.str_code = name self.subclass = _get_class_name(codes[0]) - self.subclass_exists = codes[0] in KNOWN_BASE_CLASSES + self.subclass_exists = abs(codes[0]) in KNOWN_BASE_CLASSES self.description = description self.has_captures = '_X' in name