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 test_from_timestamp_aware(self, timezone): # we're parametrizing this with two different UTC offsets to exclude the possibility # of an xpass when the test is run in a timezone with the same UTC offset test_datetime = dtm.datetime(2019, 11, 11, 0, 26, 16, 10 ** 5) datetime = timezone.localize(test_datetime) assert (helpers.from_timestamp( 1573431976.1 - timezone.utcoffset(test_datetime).total_seconds()) == datetime)
def chat_member_updated(): return ChatMemberUpdated( Chat(1, 'chat'), User(1, '', False), from_timestamp(int(time.time())), ChatMember(User(1, '', False), ChatMember.CREATOR), ChatMember(User(1, '', False), ChatMember.CREATOR), )
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['VoiceChatScheduled']: data = cls.parse_data(data) if not data: return None data['start_date'] = from_timestamp(data['start_date']) return cls(**data, bot=bot)
def de_json(cls, data, bot): if not data: return None data = super(ChatMember, cls).de_json(data, bot) data['user'] = User.de_json(data.get('user'), bot) data['until_date'] = from_timestamp(data.get('until_date', None)) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['VoiceChatScheduled']: """See :meth:`telegram.TelegramObject.de_json`.""" data = cls._parse_data(data) if not data: return None data['start_date'] = from_timestamp(data['start_date']) return cls(**data, bot=bot)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatMember']: data = cls.parse_data(data) if not data: return None data['user'] = User.de_json(data.get('user'), bot) data['until_date'] = from_timestamp(data.get('until_date', None)) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['Poll']: data = cls.parse_data(data) if not data: return None data['options'] = [PollOption.de_json(option, bot) for option in data['options']] data['explanation_entities'] = MessageEntity.de_list(data.get('explanation_entities'), bot) data['close_date'] = from_timestamp(data.get('close_date')) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatInviteLink']: """See :meth:`telegram.TelegramObject.de_json`.""" data = cls._parse_data(data) if not data: return None data['creator'] = User.de_json(data.get('creator'), bot) data['expire_date'] = from_timestamp(data.get('expire_date', None)) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatInviteLink']: data = cls.parse_data(data) if not data: return None data['creator'] = User.de_json(data.get('creator'), bot) data['expire_date'] = from_timestamp(data.get('expire_date', None)) return cls(**data)
def test_kick_chat_member(self, monkeypatch, bot): def test(_, url, data, *args, **kwargs): chat_id = data['chat_id'] == 2 user_id = data['user_id'] == 32 until_date = data.get('until_date', 1577887200) == 1577887200 return chat_id and user_id and until_date monkeypatch.setattr('telegram.utils.request.Request.post', test) until = from_timestamp(1577887200) assert bot.kick_chat_member(2, 32) assert bot.kick_chat_member(2, 32, until_date=until) assert bot.kick_chat_member(2, 32, until_date=1577887200)
def de_json(cls, data, bot): if not data: return None data = super().de_json(data, bot) data['options'] = [ PollOption.de_json(option, bot) for option in data['options'] ] data['explanation_entities'] = MessageEntity.de_list( data.get('explanation_entities'), bot) data['close_date'] = from_timestamp(data.get('close_date')) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatJoinRequest']: """See :meth:`telegram.TelegramObject.de_json`.""" data = cls._parse_data(data) if not data: return None data['chat'] = Chat.de_json(data.get('chat'), bot) data['from_user'] = User.de_json(data.get('from'), bot) data['date'] = from_timestamp(data.get('date', None)) data['invite_link'] = ChatInviteLink.de_json(data.get('invite_link'), bot) return cls(bot=bot, **data)
def de_json(data, bot): """ Args: data (dict): bot (telegram.Bot): Returns: telegram.ChatMember: """ if not data: return None data = super(ChatMember, ChatMember).de_json(data, bot) data['user'] = User.de_json(data.get('user'), bot) data['until_date'] = from_timestamp(data.get('until_date', None)) return ChatMember(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatMemberUpdated']: data = cls.parse_data(data) if not data: return None data['chat'] = Chat.de_json(data.get('chat'), bot) data['from_user'] = User.de_json(data.get('from'), bot) data['date'] = from_timestamp(data.get('date')) data['old_chat_member'] = ChatMember.de_json( data.get('old_chat_member'), bot) data['new_chat_member'] = ChatMember.de_json( data.get('new_chat_member'), bot) data['invite_link'] = ChatInviteLink.de_json(data.get('invite_link'), bot) return cls(**data)
def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['ChatMember']: """See :meth:`telegram.TelegramObject.de_json`.""" data = cls._parse_data(data) if not data: return None data['user'] = User.de_json(data.get('user'), bot) data['until_date'] = from_timestamp(data.get('until_date', None)) _class_mapping: Dict[str, Type['ChatMember']] = { cls.CREATOR: ChatMemberOwner, cls.ADMINISTRATOR: ChatMemberAdministrator, cls.MEMBER: ChatMemberMember, cls.RESTRICTED: ChatMemberRestricted, cls.LEFT: ChatMemberLeft, cls.KICKED: ChatMemberBanned, } if cls is ChatMember: return _class_mapping.get(data['status'], cls)(**data, bot=bot) return cls(**data)
ChatMemberUpdated, ChatMember, ChatJoinRequest, ) from telegram.poll import PollAnswer from telegram.utils.helpers import from_timestamp message = Message(1, None, Chat(1, ''), from_user=User(1, '', False), text='Text') chat_member_updated = ChatMemberUpdated( Chat(1, 'chat'), User(1, '', False), from_timestamp(int(time.time())), ChatMember(User(1, '', False), ChatMember.CREATOR), ChatMember(User(1, '', False), ChatMember.CREATOR), ) chat_join_request = ChatJoinRequest( chat=Chat(1, Chat.SUPERGROUP), from_user=User(1, 'first_name', False), date=from_timestamp(int(time.time())), bio='bio', ) params = [ { 'message': message },
def test_from_timestamp_naive(self): datetime = dtm.datetime(2019, 11, 11, 0, 26, 16, tzinfo=None) assert helpers.from_timestamp(1573431976, tzinfo=None) == datetime
def test_from_timestamp_none(self): assert helpers.from_timestamp(None) is None
def get_actual_time(): time_zone = pytz.timezone('Brazil/East') unix_time = int(time.time()) actual_time = from_timestamp(unix_time, time_zone) return actual_time.hour
def test_from_timestamp(self): assert helpers.from_timestamp(1573431976) == dtm.datetime(2019, 11, 11, 0, 26, 16)
ChosenInlineResult, ShippingQuery, PreCheckoutQuery, Poll, PollOption, ChatMemberUpdated, ChatMember, ) from telegram.poll import PollAnswer from telegram.utils.helpers import from_timestamp message = Message(1, None, Chat(1, ''), from_user=User(1, '', False), text='Text') chat_member_updated = ChatMemberUpdated( Chat(1, 'chat'), User(1, '', False), from_timestamp(int(time.time())), ChatMember(User(1, '', False), ChatMember.CREATOR), ChatMember(User(1, '', False), ChatMember.CREATOR), ) params = [ {'message': message}, {'edited_message': message}, {'callback_query': CallbackQuery(1, User(1, '', False), 'chat', message=message)}, {'channel_post': message}, {'edited_channel_post': message}, {'inline_query': InlineQuery(1, User(1, '', False), '', '')}, {'chosen_inline_result': ChosenInlineResult('id', User(1, '', False), '')}, {'shipping_query': ShippingQuery('id', User(1, '', False), '', None)}, {'pre_checkout_query': PreCheckoutQuery('id', User(1, '', False), '', 0, '')}, {'callback_query': CallbackQuery(1, User(1, '', False), 'chat')},