diff --git a/AUTHORS.rst b/AUTHORS.rst index 90267d60b..31b1c361e 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -15,6 +15,7 @@ The following wonderful people contributed directly or indirectly to this projec - `ErgoZ Riftbit Vaper `_ - `Eugene Lisitsky `_ - `franciscod `_ +- `Hugo Damer `_ - `Jacob Bom `_ - `JASON0916 `_ - `jh0ker `_ diff --git a/telegram/animation.py b/telegram/animation.py index 63b5b8d1e..a175d0b66 100644 --- a/telegram/animation.py +++ b/telegram/animation.py @@ -55,6 +55,8 @@ class Animation(TelegramObject): if not data: return None + data = super(Animation, Animation).de_json(data, bot) + data['thumb'] = PhotoSize.de_json(data.get('thumb'), bot) return Animation(**data) diff --git a/telegram/callbackquery.py b/telegram/callbackquery.py index a99f13484..2b96b8a64 100644 --- a/telegram/callbackquery.py +++ b/telegram/callbackquery.py @@ -60,6 +60,8 @@ class CallbackQuery(TelegramObject): if not data: return None + data = super(CallbackQuery, CallbackQuery).de_json(data, bot) + data['from_user'] = User.de_json(data.get('from'), bot) data['message'] = Message.de_json(data.get('message'), bot) diff --git a/telegram/chatmember.py b/telegram/chatmember.py index 511839c2d..7b228710b 100644 --- a/telegram/chatmember.py +++ b/telegram/chatmember.py @@ -59,6 +59,8 @@ class ChatMember(TelegramObject): if not data: return None + data = super(ChatMember, ChatMember).de_json(data, bot) + data['user'] = User.de_json(data.get('user'), bot) return ChatMember(**data) diff --git a/telegram/choseninlineresult.py b/telegram/choseninlineresult.py index 9b12a25d8..d779676d0 100644 --- a/telegram/choseninlineresult.py +++ b/telegram/choseninlineresult.py @@ -74,7 +74,8 @@ class ChosenInlineResult(TelegramObject): if not data: return None -# Required + data = super(ChosenInlineResult, ChosenInlineResult).de_json(data, bot) + # Required data['from_user'] = User.de_json(data.pop('from'), bot) # Optionals data['location'] = Location.de_json(data.get('location'), bot) diff --git a/telegram/document.py b/telegram/document.py index bad0c449b..27a5325f4 100644 --- a/telegram/document.py +++ b/telegram/document.py @@ -63,6 +63,8 @@ class Document(TelegramObject): if not data: return None + data = super(Document, Document).de_json(data, bot) + data['thumb'] = PhotoSize.de_json(data.get('thumb'), bot) return Document(**data) diff --git a/telegram/game.py b/telegram/game.py index 989eac74a..cd67de29a 100644 --- a/telegram/game.py +++ b/telegram/game.py @@ -73,6 +73,8 @@ class Game(TelegramObject): if not data: return None + data = super(Game, Game).de_json(data, bot) + data['photo'] = PhotoSize.de_list(data.get('photo'), bot) data['text_entities'] = MessageEntity.de_list(data.get('text_entities'), bot) data['animation'] = Animation.de_json(data.get('animation'), bot) diff --git a/telegram/gamehighscore.py b/telegram/gamehighscore.py index ea85ec8c1..bd560db69 100644 --- a/telegram/gamehighscore.py +++ b/telegram/gamehighscore.py @@ -49,6 +49,8 @@ class GameHighScore(TelegramObject): if not data: return None + data = super(GameHighScore, GameHighScore).de_json(data, bot) + data['user'] = User.de_json(data.get('user'), bot) return GameHighScore(**data) diff --git a/telegram/message.py b/telegram/message.py index 2654912c2..c4408c7e9 100644 --- a/telegram/message.py +++ b/telegram/message.py @@ -200,6 +200,8 @@ class Message(TelegramObject): if not data: return None + data = super(Message, Message).de_json(data, bot) + data['from_user'] = User.de_json(data.get('from'), bot) data['date'] = datetime.fromtimestamp(data['date']) data['chat'] = Chat.de_json(data.get('chat'), bot) diff --git a/telegram/replykeyboardmarkup.py b/telegram/replykeyboardmarkup.py index 001ce5911..1c0858028 100644 --- a/telegram/replykeyboardmarkup.py +++ b/telegram/replykeyboardmarkup.py @@ -67,6 +67,8 @@ class ReplyKeyboardMarkup(ReplyMarkup): if not data: return None + data = super(ReplyKeyboardMarkup, ReplyKeyboardMarkup).de_json(data, bot) + data['keyboard'] = [KeyboardButton.de_list(keyboard, bot) for keyboard in data['keyboard']] return ReplyKeyboardMarkup(**data) diff --git a/telegram/sticker.py b/telegram/sticker.py index b08a64fe7..41c604b2d 100644 --- a/telegram/sticker.py +++ b/telegram/sticker.py @@ -67,6 +67,8 @@ class Sticker(TelegramObject): if not data: return None + data = super(Sticker, Sticker).de_json(data, bot) + data['thumb'] = PhotoSize.de_json(data.get('thumb'), bot) return Sticker(**data) diff --git a/telegram/update.py b/telegram/update.py index 329d7dbf1..f044ff27c 100644 --- a/telegram/update.py +++ b/telegram/update.py @@ -86,6 +86,8 @@ class Update(TelegramObject): if not data: return None + data = super(Update, Update).de_json(data, bot) + data['message'] = Message.de_json(data.get('message'), bot) data['edited_message'] = Message.de_json(data.get('edited_message'), bot) data['inline_query'] = InlineQuery.de_json(data.get('inline_query'), bot) diff --git a/telegram/user.py b/telegram/user.py index 2f1186031..25872f5c3 100644 --- a/telegram/user.py +++ b/telegram/user.py @@ -77,6 +77,8 @@ class User(TelegramObject): if not data: return None + data = super(User, User).de_json(data, bot) + return User(bot=bot, **data) def get_profile_photos(self, *args, **kwargs): diff --git a/telegram/userprofilephotos.py b/telegram/userprofilephotos.py index 24d84e073..eb7c77ef0 100644 --- a/telegram/userprofilephotos.py +++ b/telegram/userprofilephotos.py @@ -52,6 +52,8 @@ class UserProfilePhotos(TelegramObject): if not data: return None + data = super(UserProfilePhotos, UserProfilePhotos).de_json(data, bot) + data['photos'] = [PhotoSize.de_list(photo, bot) for photo in data['photos']] return UserProfilePhotos(**data) diff --git a/telegram/utils/request.py b/telegram/utils/request.py index 5d7050711..594d35e4b 100644 --- a/telegram/utils/request.py +++ b/telegram/utils/request.py @@ -31,8 +31,8 @@ import urllib3 from urllib3.connection import HTTPConnection from telegram import (InputFile, TelegramError) -from telegram.error import Unauthorized, InvalidToken, NetworkError, TimedOut, BadRequest, \ - ChatMigrated, RetryAfter +from telegram.error import (Unauthorized, NetworkError, TimedOut, BadRequest, ChatMigrated, + RetryAfter, InvalidToken) logging.getLogger('urllib3').setLevel(logging.WARNING) diff --git a/telegram/video.py b/telegram/video.py index d50a5cef0..7fb13b00d 100644 --- a/telegram/video.py +++ b/telegram/video.py @@ -78,6 +78,8 @@ class Video(TelegramObject): if not data: return None + data = super(Video, Video).de_json(data, bot) + data['thumb'] = PhotoSize.de_json(data.get('thumb'), bot) return Video(**data) diff --git a/telegram/voice.py b/telegram/voice.py index 17ab5098a..d62d1381a 100644 --- a/telegram/voice.py +++ b/telegram/voice.py @@ -61,4 +61,6 @@ class Voice(TelegramObject): if not data: return None + data = super(Voice, Voice).de_json(data, bot) + return Voice(**data)