def de_json(data): """ Args: data (dict): Returns: telegram.Message: """ if not data: return None data['from_user'] = User.de_json(data.get('from')) data['date'] = datetime.fromtimestamp(data['date']) data['chat'] = Chat.de_json(data.get('chat')) data['entities'] = MessageEntity.de_list(data.get('entities')) data['forward_from'] = User.de_json(data.get('forward_from')) data['forward_from_chat'] = Chat.de_json(data.get('forward_from_chat')) data['forward_date'] = Message._fromtimestamp(data.get('forward_date')) data['reply_to_message'] = Message.de_json( data.get('reply_to_message')) data['audio'] = Audio.de_json(data.get('audio')) data['document'] = Document.de_json(data.get('document')) data['photo'] = PhotoSize.de_list(data.get('photo')) data['sticker'] = Sticker.de_json(data.get('sticker')) data['video'] = Video.de_json(data.get('video')) data['voice'] = Voice.de_json(data.get('voice')) data['contact'] = Contact.de_json(data.get('contact')) data['location'] = Location.de_json(data.get('location')) data['venue'] = Venue.de_json(data.get('venue')) data['new_chat_member'] = User.de_json(data.get('new_chat_member')) data['left_chat_member'] = User.de_json(data.get('left_chat_member')) data['new_chat_photo'] = PhotoSize.de_list(data.get('new_chat_photo')) data['pinned_message'] = Message.de_json(data.get('pinned_message')) return Message(**data)
def de_json(data): """ Args: data (dict): Returns: telegram.Message: """ if not data: return None data['from_user'] = User.de_json(data.get('from')) data['date'] = datetime.fromtimestamp(data['date']) data['chat'] = Chat.de_json(data.get('chat')) data['entities'] = MessageEntity.de_list(data.get('entities')) data['forward_from'] = User.de_json(data.get('forward_from')) data['forward_date'] = Message._fromtimestamp(data.get('forward_date')) data['reply_to_message'] = \ Message.de_json(data.get('reply_to_message')) data['audio'] = Audio.de_json(data.get('audio')) data['document'] = Document.de_json(data.get('document')) data['photo'] = PhotoSize.de_list(data.get('photo')) data['sticker'] = Sticker.de_json(data.get('sticker')) data['video'] = Video.de_json(data.get('video')) data['voice'] = Voice.de_json(data.get('voice')) data['contact'] = Contact.de_json(data.get('contact')) data['location'] = Location.de_json(data.get('location')) data['venue'] = Venue.de_json(data.get('venue')) data['new_chat_member'] = User.de_json(data.get('new_chat_member')) data['left_chat_member'] = User.de_json(data.get('left_chat_member')) data['new_chat_photo'] = PhotoSize.de_list(data.get('new_chat_photo')) data['pinned_message'] = Message.de_json(data.get('pinned_message')) return Message(**data)
def de_json(cls, data, bot): if not data: return None data = super(Message, cls).de_json(data, bot) data['from_user'] = User.de_json(data.get('from'), bot) data['date'] = from_timestamp(data['date']) data['chat'] = Chat.de_json(data.get('chat'), bot) data['entities'] = MessageEntity.de_list(data.get('entities'), bot) data['forward_from'] = User.de_json(data.get('forward_from'), bot) data['forward_from_chat'] = Chat.de_json(data.get('forward_from_chat'), bot) data['forward_date'] = from_timestamp(data.get('forward_date')) data['reply_to_message'] = Message.de_json(data.get('reply_to_message'), bot) data['edit_date'] = from_timestamp(data.get('edit_date')) data['audio'] = Audio.de_json(data.get('audio'), bot) data['document'] = Document.de_json(data.get('document'), bot) data['game'] = Game.de_json(data.get('game'), bot) data['photo'] = PhotoSize.de_list(data.get('photo'), bot) data['sticker'] = Sticker.de_json(data.get('sticker'), bot) data['video'] = Video.de_json(data.get('video'), bot) data['voice'] = Voice.de_json(data.get('voice'), bot) data['video_note'] = VideoNote.de_json(data.get('video_note'), bot) data['contact'] = Contact.de_json(data.get('contact'), bot) data['location'] = Location.de_json(data.get('location'), bot) data['venue'] = Venue.de_json(data.get('venue'), bot) data['new_chat_member'] = User.de_json(data.get('new_chat_member'), bot) data['new_chat_members'] = User.de_list(data.get('new_chat_members'), bot) data['left_chat_member'] = User.de_json(data.get('left_chat_member'), bot) data['new_chat_photo'] = PhotoSize.de_list(data.get('new_chat_photo'), bot) data['pinned_message'] = Message.de_json(data.get('pinned_message'), bot) data['invoice'] = Invoice.de_json(data.get('invoice'), bot) data['successful_payment'] = SuccessfulPayment.de_json(data.get('successful_payment'), bot) return cls(bot=bot, **data)
def venue(): return Venue( TestVenue.location, TestVenue.title, TestVenue.address, foursquare_id=TestVenue.foursquare_id, foursquare_type=TestVenue.foursquare_type, )
def test_equality(self): a = Venue(Location(0, 0), self.title, self.address) b = Venue(Location(0, 0), self.title, self.address) c = Venue(Location(0, 0), self.title, '') d = Venue(Location(0, 1), self.title, self.address) d2 = Venue(Location(0, 0), '', self.address) assert a == b assert hash(a) == hash(b) assert a is not b assert a == c assert hash(a) == hash(c) assert a != d assert hash(a) != hash(d) assert a != d2 assert hash(a) != hash(d2)
def test_venue(self): ven = Venue(Location(1.0, 1.0), "some place", "somewhere") u = self.mg.get_message(venue=ven) self.assertEqual(u.message.venue.title, ven.title) u = self.mg.get_message(venue=True) self.assertIsInstance(u.message.venue, Venue) with self.assertRaisesRegexp(BadMessageException, r"telegram\.Venue"): self.mg.get_message(venue="Venue")
def test_de_json(self, bot): json_dict = { 'location': TestVenue.location.to_dict(), 'title': TestVenue.title, 'address': TestVenue.address, 'foursquare_id': TestVenue.foursquare_id } venue = Venue.de_json(json_dict, bot) assert venue.location == self.location assert venue.title == self.title assert venue.address == self.address assert venue.foursquare_id == self.foursquare_id
def test_de_json(self, bot): json_dict = { "location": TestVenue.location.to_dict(), "title": TestVenue.title, "address": TestVenue.address, "foursquare_id": TestVenue.foursquare_id, "foursquare_type": TestVenue.foursquare_type, "google_place_id": TestVenue.google_place_id, "google_place_type": TestVenue.google_place_type, } venue = Venue.de_json(json_dict, bot) assert venue.location == self.location assert venue.title == self.title assert venue.address == self.address assert venue.foursquare_id == self.foursquare_id assert venue.foursquare_type == self.foursquare_type assert venue.google_place_id == self.google_place_id assert venue.google_place_type == self.google_place_type
}, { 'video_note': VideoNote('video_note_id', 'unique_id', 20, 12) }, { 'new_chat_members': [User(55, 'new_user', False)] }, { 'contact': Contact('phone_numner', 'contact_name') }, { 'location': Location(-23.691288, 46.788279) }, { 'venue': Venue(Location(-23.691288, 46.788279), 'some place', 'right here') }, { 'left_chat_member': User(33, 'kicked', False) }, { 'new_chat_title': 'new title' }, { 'new_chat_photo': [PhotoSize('photo_id', 'unique_id', 50, 50)] }, { 'delete_chat_photo': True }, { 'group_chat_created': True
def _get_venue(self): loc = self._get_location() address = "somewherestreet 23" name = "Awesome place" return Venue(loc, name, address)
def _handle_attachments( self, audio, contact, document, location, photo, sticker, user, venue, video, voice, caption, ): attachments = [ x for x in [ photo, venue, location, contact, voice, video, sticker, document, audio, ] if x ] if caption and not attachments: raise BadMessageException("Can't have a caption without attachment") if len(attachments) > 1: raise BadMessageException("can't add more than one attachment") if photo: if isinstance(photo, list): if all([isinstance(x, PhotoSize) for x in photo]): pass else: raise BadMessageException( "photo must either be True or list(telegram.PhotoSize)" ) elif isinstance(photo, bool): photo = self._get_photosize() else: raise BadMessageException( "photo must either be True or list(telegram.PhotoSize)" ) if location: if isinstance(location, Location): pass elif isinstance(location, dict): location = Location(**location) elif isinstance(location, bool): location = self._get_location() else: raise BadMessageException( "location must either be True or telegram.Location" ) if venue: if isinstance(venue, Venue): pass elif isinstance(venue, bool): venue = self._get_venue() elif isinstance(venue, dict): venue["location"] = Location(**venue) venue = Venue(**venue) else: raise BadMessageException("venue must either be True or telegram.Venue") if contact: if isinstance(contact, Contact): pass elif isinstance(contact, dict): contact = Contact(**contact) elif isinstance(contact, bool): contact = self._get_contact(user) else: raise BadMessageException( "contact must either be True or telegram.Contact" ) if voice: if isinstance(voice, Voice): pass elif isinstance(voice, bool): voice = self._get_voice() elif isinstance(voice, dict): voice = Voice(**voice) else: raise BadMessageException("voice must either be True or telegram.Voice") if video: if isinstance(video, Video): pass elif isinstance(video, bool): video = self._get_video() elif isinstance(video, dict): video = self._get_video(data=video) else: raise BadMessageException("video must either be True or telegram.Video") if sticker: if isinstance(sticker, Sticker): pass elif isinstance(sticker, bool): sticker = self._get_sticker() elif isinstance(sticker, dict): sticker = self._get_sticker(sticker) else: raise BadMessageException( "sticker must either be True or telegram.Sticker" ) if document: if isinstance(document, Document): pass elif isinstance(document, dict): document = Document(**document) elif isinstance(document, bool): document = self._get_document() else: raise BadMessageException( "document must either be True or telegram.Document" ) if audio: if isinstance(audio, Audio): pass elif isinstance(audio, bool): audio = self._get_audio() elif isinstance(audio, dict): audio = Audio(**audio) else: raise BadMessageException("audio must either be True or telegram.Audio") return audio, contact, document, location, photo, sticker, venue, video, voice