From 2463b4b9c8aa00d9f83066aae8ed45f73d4a50d0 Mon Sep 17 00:00:00 2001 From: Noam Meltzer Date: Tue, 4 Oct 2016 01:27:45 +0300 Subject: [PATCH] New exception: RetryAfter Also, small fix to the description text of ChatMigrated --- telegram/error.py | 18 +++++++++++++++--- telegram/utils/request.py | 6 +++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/telegram/error.py b/telegram/error.py index a13afeb16..cdfc4fa9f 100644 --- a/telegram/error.py +++ b/telegram/error.py @@ -94,8 +94,20 @@ class ChatMigrated(TelegramError): Args: new_chat_id (int): - Returns: + """ + super(ChatMigrated, + self).__init__('Group migrated to supergroup. New chat id: {}'.format(new_chat_id)) + self.new_chat_id = new_chat_id + + +class RetryAfter(TelegramError): + + def __init__(self, retry_after): + """ + Args: + retry_after (int): """ - super(ChatMigrated, self).__init__('Chat migrated') - self.new_chat_id = new_chat_id + super(RetryAfter, + self).__init__('Flood control exceeded. Retry in {} seconds'.format(retry_after)) + self.retry_after = retry_after diff --git a/telegram/utils/request.py b/telegram/utils/request.py index 7bfcbb9e5..0aa071c84 100644 --- a/telegram/utils/request.py +++ b/telegram/utils/request.py @@ -31,7 +31,8 @@ import urllib3 from urllib3.connection import HTTPConnection from telegram import (InputFile, TelegramError) -from telegram.error import Unauthorized, NetworkError, TimedOut, BadRequest, ChatMigrated +from telegram.error import Unauthorized, NetworkError, TimedOut, BadRequest, ChatMigrated, \ + RetryAfter logging.getLogger('urllib3').setLevel(logging.WARNING) @@ -105,6 +106,9 @@ class Request(object): migrate_to_chat_id = parameters.get('migrate_to_chat_id') if migrate_to_chat_id: raise ChatMigrated(migrate_to_chat_id) + retry_after = parameters.get('retry_after') + if retry_after: + raise RetryAfter(retry_after) if description: return description