Shield self.disconnected and log RpcCallFail

This commit is contained in:
Lonami Exo
2018-06-18 14:27:40 +02:00
parent ee7a44d447
commit efc48ee3b0
2 changed files with 11 additions and 4 deletions

View File

@@ -1,12 +1,13 @@
import asyncio
import itertools
import logging
import time
from .telegrambaseclient import TelegramBaseClient
from .. import errors, utils
from ..tl import TLObject, TLRequest, types, functions
__log__ = logging.getLogger(__name__)
_NOT_A_REQUEST = TypeError('You can only invoke requests, not types!')
@@ -28,10 +29,12 @@ class UserMethods(TelegramBaseClient):
return results
else:
return await future
except (errors.ServerError, errors.RpcCallFailError):
pass
except (errors.ServerError, errors.RpcCallFailError) as e:
__log__.warning('Telegram is having internal issues %s: %s',
e.__class__.__name__, e)
except (errors.FloodWaitError, errors.FloodTestPhoneWaitError) as e:
if e.seconds <= self.session.flood_sleep_threshold:
__log__.info('Sleeping for %ds on flood wait', e.seconds)
await asyncio.sleep(e.seconds, loop=self._loop)
else:
raise