From 7e7acdeb23d26fd38a1ca7ea427bd1023833aaca Mon Sep 17 00:00:00 2001 From: Noam Meltzer Date: Sat, 28 May 2016 19:34:16 +0300 Subject: [PATCH] set default network_delay to 5 seconds fixes #309 --- telegram/bot.py | 36 ++++++++++++++++-------------------- telegram/ext/updater.py | 19 +++++++++++-------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/telegram/bot.py b/telegram/bot.py index d16d18926..b4e1de773 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -1182,31 +1182,27 @@ class Bot(TelegramObject): return url, data @log - def getUpdates(self, offset=None, limit=100, timeout=0, network_delay=.2, **kwargs): + def getUpdates(self, offset=None, limit=100, timeout=0, network_delay=5., **kwargs): """Use this method to receive incoming updates using long polling. Args: - offset: - Identifier of the first update to be returned. Must be greater by - one than the highest among the identifiers of previously received - updates. By default, updates starting with the earliest unconfirmed - update are returned. An update is considered confirmed as soon as - getUpdates is called with an offset higher than its update_id. - limit: - Limits the number of updates to be retrieved. Values between 1-100 - are accepted. Defaults to 100. - timeout: - Timeout in seconds for long polling. Defaults to 0, i.e. usual - short polling. - network_delay: - Additional timeout in seconds to allow the response from Telegram - to take some time when using long polling. Defaults to 2, which - should be enough for most connections. Increase it if it takes very - long for data to be transmitted from and to the Telegram servers. + offset (Optional[int]): + Identifier of the first update to be returned. Must be greater by one than the highest + among the identifiers of previously received updates. By default, updates starting with + the earliest unconfirmed update are returned. An update is considered confirmed as soon + as getUpdates is called with an offset higher than its update_id. + limit (Optional[int]): + Limits the number of updates to be retrieved. Values between 1-100 are accepted. + Defaults to 100. + timeout (Optional[int]): + Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. + network_delay (Optional[float]): + Additional timeout in seconds to allow the response from Telegram servers. This should + cover network latency around the globe, SSL handshake and slowness of the Telegram + servers (which unfortunately happens a lot recently - 2016-05-28). Defaults to 5. Returns: - list[:class:`telegram.Update`]: A list of :class:`telegram.Update` - objects are returned. + list[:class:`telegram.Update`] Raises: :class:`telegram.TelegramError` diff --git a/telegram/ext/updater.py b/telegram/ext/updater.py index e552c81e2..df70275e5 100644 --- a/telegram/ext/updater.py +++ b/telegram/ext/updater.py @@ -112,22 +112,25 @@ class Updater(object): def start_polling(self, poll_interval=0.0, timeout=10, - network_delay=2, + network_delay=5., clean=False, bootstrap_retries=0): """ Starts polling updates from Telegram. Args: - poll_interval (Optional[float]): Time to wait between polling - updates from Telegram in seconds. Default is 0.0 + poll_interval (Optional[float]): Time to wait between polling updates from Telegram in + seconds. Default is 0.0 + timeout (Optional[float]): Passed to Bot.getUpdates + network_delay (Optional[float]): Passed to Bot.getUpdates - clean (Optional[bool]): Whether to clean any pending updates on - Telegram servers before actually starting to poll. Default is - False. - bootstrap_retries (Optional[int[): Whether the bootstrapping phase - of the `Updater` will retry on failures on the Telegram server. + + clean (Optional[bool]): Whether to clean any pending updates on Telegram servers before + actually starting to poll. Default is False. + + bootstrap_retries (Optional[int]): Whether the bootstrapping phase of the `Updater` + will retry on failures on the Telegram server. | < 0 - retry indefinitely | 0 - no retries (default)