Skip to content

Commit 44abed0

Browse files
Fix received and action gift parsing
Useless attributes...
1 parent 8757d89 commit 44abed0

1 file changed

Lines changed: 36 additions & 34 deletions

File tree

  • pyrogram/types/messages_and_media

pyrogram/types/messages_and_media/gift.py

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -570,26 +570,26 @@ async def _parse_received(
570570
elif saved_gift.saved_id:
571571
parsed_gift.received_gift_id = str(saved_gift.saved_id)
572572

573-
parsed_gift.date = utils.timestamp_to_datetime(saved_gift.date)
574-
parsed_gift.receiver = types.Chat._parse_chat(client, receiver)
575-
parsed_gift.is_name_hidden = saved_gift.name_hidden
576-
parsed_gift.is_saved = not saved_gift.unsaved
577-
parsed_gift.was_refunded = saved_gift.refunded
578-
parsed_gift.can_be_upgraded = saved_gift.can_upgrade
579-
parsed_gift.is_pinned = saved_gift.pinned_to_top
580-
parsed_gift.is_upgrade_separate = saved_gift.upgrade_separate
581-
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_from_id) or chats.get(raw_from_id))
582-
parsed_gift.text = types.FormattedText._parse(client, saved_gift.message)
573+
parsed_gift.date = utils.timestamp_to_datetime(saved_gift.date) or parsed_gift.date
574+
parsed_gift.receiver = types.Chat._parse_chat(client, receiver) or parsed_gift.receiver
575+
parsed_gift.is_name_hidden = saved_gift.name_hidden or parsed_gift.is_name_hidden
576+
parsed_gift.is_saved = not saved_gift.unsaved or parsed_gift.is_saved
577+
parsed_gift.was_refunded = saved_gift.refunded or parsed_gift.was_refunded
578+
parsed_gift.can_be_upgraded = saved_gift.can_upgrade or parsed_gift.can_be_upgraded
579+
parsed_gift.is_pinned = saved_gift.pinned_to_top or parsed_gift.is_pinned
580+
parsed_gift.is_upgrade_separate = saved_gift.upgrade_separate or parsed_gift.is_upgrade_separate
581+
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_from_id) or chats.get(raw_from_id)) or parsed_gift.sender
582+
parsed_gift.text = types.FormattedText._parse(client, saved_gift.message) or parsed_gift.text
583583
parsed_gift.convert_star_count = saved_gift.convert_stars or parsed_gift.convert_star_count
584584
parsed_gift.upgrade_star_count = saved_gift.upgrade_stars or parsed_gift.upgrade_star_count
585585
parsed_gift.export_date = utils.timestamp_to_datetime(saved_gift.can_export_at) or parsed_gift.export_date
586586
parsed_gift.transfer_star_count = saved_gift.transfer_stars or parsed_gift.transfer_star_count
587587
parsed_gift.next_transfer_date = utils.timestamp_to_datetime(saved_gift.can_transfer_at) or parsed_gift.next_transfer_date
588588
parsed_gift.next_resale_date = utils.timestamp_to_datetime(saved_gift.can_resell_at) or parsed_gift.next_resale_date
589-
parsed_gift.collection_ids = types.List(saved_gift.collection_id) or None
590-
parsed_gift.prepaid_upgrade_hash = saved_gift.prepaid_upgrade_hash
591-
parsed_gift.drop_original_details_star_count = saved_gift.drop_original_details_stars
592-
parsed_gift.unique_gift_number = saved_gift.gift_num
589+
parsed_gift.collection_ids = types.List(saved_gift.collection_id) or None or parsed_gift.collection_ids
590+
parsed_gift.prepaid_upgrade_hash = saved_gift.prepaid_upgrade_hash or parsed_gift.prepaid_upgrade_hash
591+
parsed_gift.drop_original_details_star_count = saved_gift.drop_original_details_stars or parsed_gift.drop_original_details_star_count
592+
parsed_gift.unique_gift_number = saved_gift.gift_num or parsed_gift.unique_gift_number
593593

594594
return parsed_gift
595595

@@ -620,20 +620,21 @@ async def _parse_action(
620620
if action_gift.saved_id:
621621
parsed_gift.received_gift_id = str(action_gift.saved_id)
622622

623-
parsed_gift.is_name_hidden = action_gift.name_hidden
624-
parsed_gift.is_saved = action_gift.saved
625-
parsed_gift.was_converted = action_gift.converted
626-
parsed_gift.was_upgraded = action_gift.upgraded
627-
parsed_gift.was_refunded = action_gift.refunded
628-
parsed_gift.can_be_upgraded = action_gift.can_upgrade
629-
parsed_gift.is_upgrade_separate = action_gift.upgrade_separate
630-
parsed_gift.text = types.FormattedText._parse(client, action_gift.message)
631-
parsed_gift.convert_star_count = action_gift.convert_stars
632-
parsed_gift.upgrade_star_count = action_gift.upgrade_stars
633-
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_sender_id) or chats.get(raw_sender_id))
634-
parsed_gift.receiver = types.Chat._parse_chat(client, users.get(raw_receiver_id) or chats.get(raw_receiver_id))
635-
parsed_gift.prepaid_upgrade_hash = action_gift.prepaid_upgrade_hash
636-
parsed_gift.unique_gift_number = action_gift.gift_num
623+
parsed_gift.is_name_hidden = action_gift.name_hidden or parsed_gift.is_name_hidden
624+
parsed_gift.is_saved = action_gift.saved or parsed_gift.is_saved
625+
parsed_gift.was_converted = action_gift.converted or parsed_gift.was_converted
626+
parsed_gift.was_upgraded = action_gift.upgraded or parsed_gift.was_upgraded
627+
parsed_gift.was_refunded = action_gift.refunded or parsed_gift.was_refunded
628+
parsed_gift.can_be_upgraded = action_gift.can_upgrade or parsed_gift.can_be_upgraded
629+
parsed_gift.is_upgrade_separate = action_gift.upgrade_separate or parsed_gift.is_upgrade_separate
630+
parsed_gift.text = types.FormattedText._parse(client, action_gift.message) or parsed_gift.text
631+
parsed_gift.convert_star_count = action_gift.convert_stars or parsed_gift.convert_star_count
632+
parsed_gift.upgrade_star_count = action_gift.upgrade_stars or parsed_gift.upgrade_star_count
633+
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_sender_id) or chats.get(raw_sender_id)) or parsed_gift.sender
634+
parsed_gift.receiver = types.Chat._parse_chat(client, users.get(raw_receiver_id) or chats.get(raw_receiver_id)) or parsed_gift.receiver
635+
parsed_gift.prepaid_upgrade_hash = action_gift.prepaid_upgrade_hash or parsed_gift.prepaid_upgrade_hash
636+
parsed_gift.unique_gift_number = action_gift.gift_num or parsed_gift.unique_gift_number
637+
parsed_gift.raw = action_gift
637638

638639
return parsed_gift
639640
elif isinstance(action_gift, raw.types.MessageActionStarGiftUnique):
@@ -652,16 +653,17 @@ async def _parse_action(
652653
if action_gift.saved_id:
653654
parsed_gift.received_gift_id = str(action_gift.saved_id)
654655

655-
parsed_gift.was_upgraded = action_gift.upgrade
656-
parsed_gift.is_saved = action_gift.saved
657-
parsed_gift.was_refunded = action_gift.refunded
656+
parsed_gift.was_upgraded = action_gift.upgrade or parsed_gift.was_upgraded
657+
parsed_gift.is_saved = action_gift.saved or parsed_gift.is_saved
658+
parsed_gift.was_refunded = action_gift.refunded or parsed_gift.was_refunded
658659
parsed_gift.export_date = utils.timestamp_to_datetime(action_gift.can_export_at) or parsed_gift.export_date
659660
parsed_gift.transfer_star_count = action_gift.transfer_stars or parsed_gift.transfer_star_count
660-
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_sender_id) or chats.get(raw_sender_id))
661-
parsed_gift.receiver = types.Chat._parse_chat(client, users.get(raw_receiver_id) or chats.get(raw_receiver_id))
661+
parsed_gift.sender = types.Chat._parse_chat(client, users.get(raw_sender_id) or chats.get(raw_sender_id)) or parsed_gift.sender
662+
parsed_gift.receiver = types.Chat._parse_chat(client, users.get(raw_receiver_id) or chats.get(raw_receiver_id)) or parsed_gift.receiver
662663
parsed_gift.next_transfer_date = utils.timestamp_to_datetime(action_gift.can_transfer_at) or parsed_gift.next_transfer_date
663664
parsed_gift.next_resale_date = utils.timestamp_to_datetime(action_gift.can_resell_at) or parsed_gift.next_resale_date
664-
parsed_gift.drop_original_details_star_count = action_gift.drop_original_details_stars
665+
parsed_gift.drop_original_details_star_count = action_gift.drop_original_details_stars or parsed_gift.drop_original_details_star_count
666+
parsed_gift.raw = action_gift
665667

666668
return parsed_gift
667669

0 commit comments

Comments
 (0)