diff --git a/telethon/telegram_bare_client.py b/telethon/telegram_bare_client.py index d4338169..25e3de05 100644 --- a/telethon/telegram_bare_client.py +++ b/telethon/telegram_bare_client.py @@ -70,12 +70,14 @@ class TelegramBareClient: # region Connecting - def connect(self, exported_auth=None): + def connect(self, timeout=timedelta(seconds=5), exported_auth=None): """Connects to the Telegram servers, executing authentication if required. Note that authenticating to the Telegram servers is not the same as authenticating the desired user itself, which may require a call (or several) to 'sign_in' for the first time. + The specified timeout will be used on internal .invoke()'s. + If 'exported_auth' is not None, it will be used instead to determine the authorization key for the current session. """ @@ -115,13 +117,14 @@ class TelegramBareClient: query=query) result = self.invoke( - InvokeWithLayerRequest( - layer=layer, query=request)) + InvokeWithLayerRequest(layer=layer, query=request), + timeout=timeout + ) if exported_auth is not None: # TODO Don't actually need this for exported authorizations, # they're only valid on such data center. - result = self.invoke(GetConfigRequest()) + result = self.invoke(GetConfigRequest(), timeout=timeout) # We're only interested in the DC options, # although many other options are available! diff --git a/telethon/telegram_client.py b/telethon/telegram_client.py index f8e739bd..c8efbe7a 100644 --- a/telethon/telegram_client.py +++ b/telethon/telegram_client.py @@ -129,12 +129,14 @@ class TelegramClient(TelegramBareClient): # region Connecting - def connect(self, *args): + def connect(self, timeout=timedelta(seconds=5), *args): """Connects to the Telegram servers, executing authentication if required. Note that authenticating to the Telegram servers is not the same as authenticating the desired user itself, which may require a call (or several) to 'sign_in' for the first time. + The specified timeout will be used on internal .invoke()'s. + *args will be ignored. """ return super(TelegramClient, self).connect()