Beispiel #1
0
def test_graphql_to_attachment_video():
    data = {
        "__typename": "MessageVideo",
        "attribution_app": None,
        "attribution_metadata": None,
        "filename": "video-4321.mp4",
        "playable_url": "https://video-arn2-1.xx.fbcdn.net/v/video-4321.mp4",
        "chat_image": {
            "height": 96,
            "width": 168,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/s168x128/1.jpg",
        },
        "legacy_attachment_id": "1234",
        "video_type": "FILE_ATTACHMENT",
        "original_dimensions": {
            "x": 640,
            "y": 368
        },
        "playable_duration_in_ms": 6000,
        "large_image": {
            "height": 368,
            "width": 640,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/2.jpg",
        },
        "inbox_image": {
            "height": 260,
            "width": 452,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/p261x260/3.jpg",
        },
    }
    assert VideoAttachment(
        id="1234",
        width=None,
        height=None,
        duration=datetime.timedelta(seconds=6),
        preview_url="https://video-arn2-1.xx.fbcdn.net/v/video-4321.mp4",
        previews={
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/s168x128/1.jpg",
                width=168,
                height=96,
            ),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/p261x260/3.jpg",
                width=452,
                height=260,
            ),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/2.jpg",
                width=640,
                height=368,
            ),
        },
    ) == graphql_to_attachment(data)
Beispiel #2
0
def test_graphql_to_attachment_image2():
    data = {
        "__typename": "MessageAnimatedImage",
        "attribution_app": None,
        "attribution_metadata": None,
        "filename": "gif-1234",
        "animated_image": {
            "uri": "https://cdn.fbsbx.com/v/1.gif",
            "height": 128,
            "width": 128,
        },
        "legacy_attachment_id": "1234",
        "preview_image": {
            "uri": "https://cdn.fbsbx.com/v/1.gif",
            "height": 128,
            "width": 128,
        },
        "original_dimensions": {"x": 128, "y": 128},
    }
    assert ImageAttachment(
        uid="1234",
        original_extension="gif",
        width=None,
        height=None,
        is_animated=True,
        previews={
            fbchat.Image(url="https://cdn.fbsbx.com/v/1.gif", width=128, height=128)
        },
    ) == graphql_to_attachment(data)
Beispiel #3
0
def test_user_from_all_fetch(session):
    data = {
        "id": "1234",
        "name": "Abc Def Ghi",
        "firstName": "Abc",
        "vanity": "",
        "thumbSrc": "https://scontent-arn2-1.xx.fbcdn.net/v/...",
        "uri": "https://www.facebook.com/profile.php?id=1234",
        "gender": 1,
        "i18nGender": 2,
        "type": "friend",
        "is_friend": True,
        "mThumbSrcSmall": None,
        "mThumbSrcLarge": None,
        "dir": None,
        "searchTokens": ["Abc", "Ghi"],
        "alternateName": "",
        "is_nonfriend_messenger_contact": False,
        "is_blocked": False,
    }
    assert UserData(
        session=session,
        id="1234",
        photo=fbchat.Image(url="https://scontent-arn2-1.xx.fbcdn.net/v/..."),
        name="Abc Def Ghi",
        url="https://www.facebook.com/profile.php?id=1234",
        first_name="Abc",
        is_friend=True,
        gender="female_singular",
    ) == UserData._from_all_fetch(session, data)
Beispiel #4
0
def test_from_graphql_normal():
    assert Sticker(
        uid="369239383222810",
        pack="227877430692340",
        is_animated=False,
        frames_per_row=1,
        frames_per_col=1,
        frame_rate=83,
        image=fbchat.Image(
            url="https://scontent-arn2-1.xx.fbcdn.net/v/redacted.png",
            width=274,
            height=274,
        ),
        label="Like, thumbs up",
    ) == Sticker._from_graphql(
        {
            "id": "369239383222810",
            "pack": {"id": "227877430692340"},
            "label": "Like, thumbs up",
            "frame_count": 1,
            "frame_rate": 83,
            "frames_per_row": 1,
            "frames_per_column": 1,
            "sprite_image_2x": None,
            "sprite_image": None,
            "padded_sprite_image": None,
            "padded_sprite_image_2x": None,
            "url": "https://scontent-arn2-1.xx.fbcdn.net/v/redacted.png",
            "height": 274,
            "width": 274,
        }
    )
Beispiel #5
0
def test_user_from_graphql(session):
    data = {
        "id": "1234",
        "name": "Abc Def Ghi",
        "first_name": "Abc",
        "last_name": "Ghi",
        "profile_picture": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/..."
        },
        "is_viewer_friend": True,
        "url": "https://www.facebook.com/profile.php?id=1234",
        "gender": "FEMALE",
        "viewer_affinity": 0.4560002,
    }
    assert UserData(
        session=session,
        id="1234",
        photo=fbchat.Image(url="https://scontent-arn2-1.xx.fbcdn.net/v/..."),
        name="Abc Def Ghi",
        url="https://www.facebook.com/profile.php?id=1234",
        first_name="Abc",
        last_name="Ghi",
        is_friend=True,
        gender="female_singular",
        affinity=0.4560002,
        color="#0084ff",
    ) == UserData._from_graphql(session, data)
Beispiel #6
0
def test_videoattachment_from_list():
    data = {
        "__typename": "MessageVideo",
        "id": "bWVzc2...",
        "legacy_attachment_id": "1234",
        "image": {
            "uri":
            "https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/p261x260/1.jpg"
        },
        "image1": {
            "height": 368,
            "width": 640,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/2.jpg",
        },
        "image2": {
            "height": 368,
            "width": 640,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/3.jpg",
        },
        "original_dimensions": {
            "x": 640,
            "y": 368
        },
    }
    assert VideoAttachment(
        id="1234",
        width=640,
        height=368,
        previews={
            fbchat.Image(
                url=
                "https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/p261x260/1.jpg"
            ),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/2.jpg",
                width=640,
                height=368,
            ),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/t15.3394-10/3.jpg",
                width=640,
                height=368,
            ),
        },
    ) == VideoAttachment._from_list({"node": data})
Beispiel #7
0
def test_graphql_to_attachment_image1():
    data = {
        "__typename": "MessageImage",
        "attribution_app": None,
        "attribution_metadata": None,
        "filename": "image-1234",
        "preview": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/1.png",
            "height": 128,
            "width": 128,
        },
        "large_preview": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/1.png",
            "height": 128,
            "width": 128,
        },
        "thumbnail": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/p50x50/2.png"
        },
        "photo_encodings": [],
        "legacy_attachment_id": "1234",
        "original_dimensions": {
            "x": 128,
            "y": 128
        },
        "original_extension": "png",
        "render_as_sticker": False,
        "blurred_image_uri": None,
    }
    assert ImageAttachment(
        id="1234",
        original_extension="png",
        width=None,
        height=None,
        is_animated=False,
        previews={
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/p50x50/2.png"),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/1.png",
                width=128,
                height=128,
            ),
        },
    ) == graphql_to_attachment(data)
Beispiel #8
0
def test_imageattachment_from_list():
    data = {
        "__typename": "MessageImage",
        "id": "bWVzc2...",
        "legacy_attachment_id": "1234",
        "image": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/s261x260/1.jpg"
        },
        "image1": {
            "height": 463,
            "width": 960,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/2.jpg",
        },
        "image2": {
            "height": 988,
            "width": 2048,
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/s2048x2048/3.jpg",
        },
        "original_dimensions": {
            "x": 2833,
            "y": 1367
        },
        "photo_encodings": [],
    }
    assert ImageAttachment(
        id="1234",
        width=2833,
        height=1367,
        previews={
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/s261x260/1.jpg"),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/2.jpg",
                width=960,
                height=463,
            ),
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/s2048x2048/3.jpg",
                width=2048,
                height=988,
            ),
        },
    ) == ImageAttachment._from_list({"node": data})
Beispiel #9
0
def test_share_from_graphql_link_with_image():
    data = {
        "description": {
            "text":
            ("Create an account or log in to Facebook."
             " Connect with friends, family and other people you know."
             " Share photos and videos, send messages and get updates.")
        },
        "media": {
            "animated_image": None,
            "image": {
                "uri": "https://www.facebook.com/rsrc.php/v3/x.png",
                "height": 325,
                "width": 325,
            },
            "playable_duration_in_ms": 0,
            "is_playable": False,
            "playable_url": None,
        },
        "source": None,
        "style_list": ["share", "fallback"],
        "title_with_entities": {
            "text": "Facebook – log in or sign up"
        },
        "properties": [],
        "url": "http://facebook.com/",
        "deduplication_key": "deadbeef123",
        "action_links": [],
        "messaging_attribution": None,
        "messenger_call_to_actions": [],
        "xma_layout_info": None,
        "target": {
            "__typename": "ExternalUrl"
        },
        "subattachments": [],
    }
    assert ShareAttachment(
        author=None,
        url="http://facebook.com/",
        original_url="http://facebook.com/",
        title="Facebook – log in or sign up",
        description=(
            "Create an account or log in to Facebook."
            " Connect with friends, family and other people you know."
            " Share photos and videos, send messages and get updates."),
        source=None,
        image=fbchat.Image(url="https://www.facebook.com/rsrc.php/v3/x.png",
                           width=325,
                           height=325),
        original_image_url="https://www.facebook.com/rsrc.php/v3/x.png",
        attachments=[],
        id="deadbeef123",
    ) == ShareAttachment._from_graphql(data)
Beispiel #10
0
def test_graphql_to_subattachment_video():
    data = {
        "description": None,
        "media": {
            "animated_image": None,
            "image": {
                "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                "height": 540,
                "width": 960,
            },
            "playable_duration_in_ms": 24469,
            "is_playable": True,
            "playable_url": "https://video-arn2-1.xx.fbcdn.net/v/t42.9040-2/vid.mp4",
        },
        "source": None,
        "style_list": [
            "video_autoplay",
            "video_inline",
            "video",
            "games_app",
            "fallback",
        ],
        "title_with_entities": {"text": ""},
        "properties": [
            {"key": "can_autoplay_result", "value": {"text": "ugc_default_allowed"}}
        ],
        "url": "https://www.facebook.com/some-username/videos/1234/",
        "deduplication_key": "ddb7...",
        "action_links": [],
        "messaging_attribution": None,
        "messenger_call_to_actions": [],
        "xma_layout_info": None,
        "target": {
            "__typename": "Video",
            "video_id": "1234",
            "video_messenger_cta_payload": None,
        },
    }
    assert VideoAttachment(
        uid="1234",
        duration=datetime.timedelta(seconds=24, microseconds=469000),
        preview_url="https://video-arn2-1.xx.fbcdn.net/v/t42.9040-2/vid.mp4",
        previews={
            fbchat.Image(
                url="https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                width=960,
                height=540,
            )
        },
    ) == graphql_to_subattachment(data)
Beispiel #11
0
def test_page_from_graphql():
    data = {
        "id": "123456",
        "name": "Some school",
        "profile_picture": {"uri": "https://scontent-arn2-1.xx.fbcdn.net/v/..."},
        "url": "https://www.facebook.com/some-school/",
        "category_type": "SCHOOL",
        "city": None,
    }
    assert Page(
        uid="123456",
        photo=fbchat.Image(url="https://scontent-arn2-1.xx.fbcdn.net/v/..."),
        name="Some school",
        url="https://www.facebook.com/some-school/",
        city=None,
        category="SCHOOL",
    ) == Page._from_graphql(data)
Beispiel #12
0
def test_from_graphql_animated():
    assert Sticker(
        id="144885035685763",
        pack="350357561732812",
        is_animated=True,
        medium_sprite_image=
        "https://scontent-arn2-1.xx.fbcdn.net/v/redacted2.png",
        large_sprite_image="https://scontent-arn2-1.fbcdn.net/v/redacted3.png",
        frames_per_row=2,
        frames_per_col=2,
        frame_count=4,
        frame_rate=142,
        image=fbchat.Image(
            url="https://scontent-arn2-1.fbcdn.net/v/redacted1.png",
            width=240,
            height=293,
        ),
        label="Love, cat with heart",
    ) == Sticker._from_graphql({
        "id": "144885035685763",
        "pack": {
            "id": "350357561732812"
        },
        "label": "Love, cat with heart",
        "frame_count": 4,
        "frame_rate": 142,
        "frames_per_row": 2,
        "frames_per_column": 2,
        "sprite_image_2x": {
            "uri": "https://scontent-arn2-1.fbcdn.net/v/redacted3.png"
        },
        "sprite_image": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/redacted2.png"
        },
        "padded_sprite_image": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/unused1.png"
        },
        "padded_sprite_image_2x": {
            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/unused2.png"
        },
        "url": "https://scontent-arn2-1.fbcdn.net/v/redacted1.png",
        "height": 293,
        "width": 240,
    })
Beispiel #13
0
def test_share_with_image_subattachment():
    data = {
        "description": {
            "text": "Abc"
        },
        "media": {
            "animated_image": None,
            "image": {
                "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/1.jpg",
                "height": 960,
                "width": 720,
            },
            "playable_duration_in_ms": 0,
            "is_playable": False,
            "playable_url": None,
        },
        "source": {
            "text": "Def"
        },
        "style_list": ["attached_story", "fallback"],
        "title_with_entities": {
            "text": ""
        },
        "properties": [],
        "url":
        "https://www.facebook.com/groups/11223344/permalink/1234/",
        "deduplication_key":
        "deadbeef123",
        "action_links": [
            {
                "title": None,
                "url": None
            },
            {
                "title": None,
                "url": "https://www.facebook.com/groups/11223344/"
            },
            {
                "title": "Report Post to Admin",
                "url": "https://www.facebook.com/groups/11223344/members/",
            },
        ],
        "messaging_attribution":
        None,
        "messenger_call_to_actions": [],
        "xma_layout_info":
        None,
        "target": {
            "__typename":
            "Story",
            "title":
            None,
            "description": {
                "text": "Abc"
            },
            "actors": [{
                "__typename": "User",
                "name": "Def",
                "id": "1111",
                "short_name": "Def",
                "url": "https://www.facebook.com/some-user",
                "profile_picture": {
                    "uri":
                    "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-1/c123.123.123.123a/s50x50/img.jpg",
                    "height": 50,
                    "width": 50,
                },
            }],
            "to": {
                "__typename": "Group",
                "name": "Some group",
                "url": "https://www.facebook.com/groups/11223344/",
            },
            "attachments": [{
                "url":
                "https://www.facebook.com/photo.php?fbid=4321&set=gm.1234&type=3",
                "media": {
                    "is_playable": False,
                    "image": {
                        "uri":
                        "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/1.jpg",
                        "height": 960,
                        "width": 720,
                    },
                },
            }],
            "attached_story":
            None,
        },
        "subattachments": [{
            "description": {
                "text": "Abc"
            },
            "media": {
                "animated_image": None,
                "image": {
                    "uri":
                    "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/1.jpg",
                    "height": 960,
                    "width": 720,
                },
                "playable_duration_in_ms": 0,
                "is_playable": False,
                "playable_url": None,
            },
            "source":
            None,
            "style_list": ["photo", "games_app", "fallback"],
            "title_with_entities": {
                "text": ""
            },
            "properties": [
                {
                    "key": "photoset_reference_token",
                    "value": {
                        "text": "gm.1234"
                    }
                },
                {
                    "key": "layout_x",
                    "value": {
                        "text": "0"
                    }
                },
                {
                    "key": "layout_y",
                    "value": {
                        "text": "0"
                    }
                },
                {
                    "key": "layout_w",
                    "value": {
                        "text": "0"
                    }
                },
                {
                    "key": "layout_h",
                    "value": {
                        "text": "0"
                    }
                },
            ],
            "url":
            "https://www.facebook.com/photo.php?fbid=4321&set=gm.1234&type=3",
            "deduplication_key":
            "deadbeef456",
            "action_links": [],
            "messaging_attribution":
            None,
            "messenger_call_to_actions": [],
            "xma_layout_info":
            None,
            "target": {
                "__typename": "Photo"
            },
        }],
    }
    assert ShareAttachment(
        author="1111",
        url="https://www.facebook.com/groups/11223344/permalink/1234/",
        original_url="https://www.facebook.com/groups/11223344/permalink/1234/",
        title="",
        description="Abc",
        source="Def",
        image=fbchat.Image(
            url="https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/1.jpg",
            width=720,
            height=960,
        ),
        original_image_url=
        "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/1.jpg",
        attachments=[None],
        id="deadbeef123",
    ) == ShareAttachment._from_graphql(data)
Beispiel #14
0
def test_user_from_thread_fetch(session):
    data = {
        "thread_key": {
            "thread_fbid": None,
            "other_user_id": "1234"
        },
        "name": None,
        "last_message": {
            "nodes": [{
                "snippet": "aaa",
                "message_sender": {
                    "messaging_actor": {
                        "id": "1234"
                    }
                },
                "timestamp_precise": "1500000000000",
                "commerce_message_type": None,
                "extensible_attachment": None,
                "sticker": None,
                "blob_attachments": [],
            }]
        },
        "unread_count": 0,
        "messages_count": 1111,
        "image": None,
        "updated_time_precise": "1500000000000",
        "mute_until": None,
        "is_pin_protected": False,
        "is_viewer_subscribed": True,
        "thread_queue_enabled": False,
        "folder": "INBOX",
        "has_viewer_archived": False,
        "is_page_follow_up": False,
        "cannot_reply_reason": None,
        "ephemeral_ttl_mode": 0,
        "customization_info": {
            "emoji":
            None,
            "participant_customizations": [
                {
                    "participant_id": "4321",
                    "nickname": "B"
                },
                {
                    "participant_id": "1234",
                    "nickname": "A"
                },
            ],
            "outgoing_bubble_color":
            None,
        },
        "thread_admins": [],
        "approval_mode": None,
        "joinable_mode": {
            "mode": "0",
            "link": ""
        },
        "thread_queue_metadata": None,
        "event_reminders": {
            "nodes": []
        },
        "montage_thread": None,
        "last_read_receipt": {
            "nodes": [{
                "timestamp_precise": "1500000050000"
            }]
        },
        "related_page_thread": None,
        "rtc_call_data": {
            "call_state": "NO_ONGOING_CALL",
            "server_info_data": "",
            "initiator": None,
        },
        "associated_object": None,
        "privacy_mode": 1,
        "reactions_mute_mode": "REACTIONS_NOT_MUTED",
        "mentions_mute_mode": "MENTIONS_NOT_MUTED",
        "customization_enabled": True,
        "thread_type": "ONE_TO_ONE",
        "participant_add_mode_as_string": None,
        "is_canonical_neo_user": False,
        "participants_event_status": [],
        "page_comm_item": None,
        "all_participants": {
            "nodes": [
                {
                    "messaging_actor": {
                        "id": "1234",
                        "__typename": "User",
                        "name": "Abc Def Ghi",
                        "gender": "FEMALE",
                        "url": "https://www.facebook.com/profile.php?id=1234",
                        "big_image_src": {
                            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/..."
                        },
                        "short_name": "Abc",
                        "username": "",
                        "is_viewer_friend": True,
                        "is_messenger_user": True,
                        "is_verified": False,
                        "is_message_blocked_by_viewer": False,
                        "is_viewer_coworker": False,
                        "is_employee": None,
                    }
                },
                {
                    "messaging_actor": {
                        "id": "4321",
                        "__typename": "User",
                        "name": "Aaa Bbb Ccc",
                        "gender": "NEUTER",
                        "url": "https://www.facebook.com/aaabbbccc",
                        "big_image_src": {
                            "uri": "https://scontent-arn2-1.xx.fbcdn.net/v/..."
                        },
                        "short_name": "Aaa",
                        "username": "******",
                        "is_viewer_friend": False,
                        "is_messenger_user": True,
                        "is_verified": False,
                        "is_message_blocked_by_viewer": False,
                        "is_viewer_coworker": False,
                        "is_employee": None,
                    }
                },
            ]
        },
        "read_receipts":...,
        "delivery_receipts":...,
    }
    assert UserData(
        session=session,
        id="1234",
        photo=fbchat.Image(url="https://scontent-arn2-1.xx.fbcdn.net/v/..."),
        name="Abc Def Ghi",
        last_active=datetime.datetime(2017,
                                      7,
                                      14,
                                      2,
                                      40,
                                      tzinfo=datetime.timezone.utc),
        message_count=1111,
        url="https://www.facebook.com/profile.php?id=1234",
        first_name="Abc",
        is_friend=True,
        gender="female_singular",
        nickname="A",
        own_nickname="B",
        color="#0084ff",
        emoji=None,
    ) == UserData._from_thread_fetch(session, data)
Beispiel #15
0
def test_share_from_graphql_video():
    data = {
        "description": {
            "text":
            ("Rick Astley's official music video for “Never Gonna Give You Up”"
             " Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD"
             " Subscribe to the official Rick As...")
        },
        "media": {
            "animated_image": None,
            "image": {
                "uri":
                ("https://external-arn2-1.xx.fbcdn.net/safe_image.php?d=xyz123"
                 "&w=960&h=540&url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FdQw4w9WgXcQ"
                 "%2Fmaxresdefault.jpg&sx=0&sy=0&sw=1280&sh=720&_nc_hash=abc123"
                 ),
                "height":
                540,
                "width":
                960,
            },
            "playable_duration_in_ms": 0,
            "is_playable": True,
            "playable_url":
            "https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1",
        },
        "source": {
            "text": "youtube.com"
        },
        "style_list": ["share", "fallback"],
        "title_with_entities": {
            "text": "Rick Astley - Never Gonna Give You Up (Video)"
        },
        "properties": [
            {
                "key": "width",
                "value": {
                    "text": "1280"
                }
            },
            {
                "key": "height",
                "value": {
                    "text": "720"
                }
            },
        ],
        "url":
        "https://l.facebook.com/l.php?u=https%3A%2F%2Fyoutu.be%2FdQw4w9WgXcQ",
        "deduplication_key":
        "ee.mid.$gAAT4Sw1WSGhzQ9uRWVtEpZHZ8ZPV",
        "action_links": [{
            "title": "About this website",
            "url": None
        }],
        "messaging_attribution":
        None,
        "messenger_call_to_actions": [],
        "xma_layout_info":
        None,
        "target": {
            "__typename": "ExternalUrl"
        },
        "subattachments": [],
    }
    assert ShareAttachment(
        author=None,
        url=
        "https://l.facebook.com/l.php?u=https%3A%2F%2Fyoutu.be%2FdQw4w9WgXcQ",
        original_url="https://youtu.be/dQw4w9WgXcQ",
        title="Rick Astley - Never Gonna Give You Up (Video)",
        description=(
            "Rick Astley's official music video for “Never Gonna Give You Up”"
            " Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD"
            " Subscribe to the official Rick As..."),
        source="youtube.com",
        image=fbchat.Image(
            url="https://external-arn2-1.xx.fbcdn.net/safe_image.php?d=xyz123"
            "&w=960&h=540&url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FdQw4w9WgXcQ"
            "%2Fmaxresdefault.jpg&sx=0&sy=0&sw=1280&sh=720&_nc_hash=abc123",
            width=960,
            height=540,
        ),
        original_image_url=
        "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
        attachments=[],
        id="ee.mid.$gAAT4Sw1WSGhzQ9uRWVtEpZHZ8ZPV",
    ) == ShareAttachment._from_graphql(data)
Beispiel #16
0
def test_share_with_video_subattachment():
    data = {
        "description": {
            "text": "Abc"
        },
        "media": {
            "animated_image":
            None,
            "image": {
                "uri":
                "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                "height": 540,
                "width": 960,
            },
            "playable_duration_in_ms":
            24469,
            "is_playable":
            True,
            "playable_url":
            "https://video-arn2-1.xx.fbcdn.net/v/t42.9040-2/vid.mp4",
        },
        "source": {
            "text": "Def"
        },
        "style_list": ["attached_story", "fallback"],
        "title_with_entities": {
            "text": ""
        },
        "properties": [],
        "url":
        "https://www.facebook.com/groups/11223344/permalink/1234/",
        "deduplication_key":
        "deadbeef123",
        "action_links": [
            {
                "title": None,
                "url": None
            },
            {
                "title": None,
                "url": "https://www.facebook.com/groups/11223344/"
            },
            {
                "title": None,
                "url": None
            },
            {
                "title": "A watch party is currently playing this video.",
                "url": None
            },
        ],
        "messaging_attribution":
        None,
        "messenger_call_to_actions": [],
        "xma_layout_info":
        None,
        "target": {
            "__typename":
            "Story",
            "title":
            None,
            "description": {
                "text": "Abc"
            },
            "actors": [{
                "__typename": "User",
                "name": "Def",
                "id": "1111",
                "short_name": "Def",
                "url": "https://www.facebook.com/some-user",
                "profile_picture": {
                    "uri":
                    "https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-1/c1.0.50.50a/p50x50/profile.jpg",
                    "height": 50,
                    "width": 50,
                },
            }],
            "to": {
                "__typename": "Group",
                "name": "Some group",
                "url": "https://www.facebook.com/groups/11223344/",
            },
            "attachments": [{
                "url": "https://www.facebook.com/some-user/videos/2222/",
                "media": {
                    "is_playable": True,
                    "image": {
                        "uri":
                        "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                        "height": 540,
                        "width": 960,
                    },
                },
            }],
            "attached_story":
            None,
        },
        "subattachments": [{
            "description":
            None,
            "media": {
                "animated_image":
                None,
                "image": {
                    "uri":
                    "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                    "height": 540,
                    "width": 960,
                },
                "playable_duration_in_ms":
                24469,
                "is_playable":
                True,
                "playable_url":
                "https://video-arn2-1.xx.fbcdn.net/v/t42.9040-2/vid.mp4",
            },
            "source":
            None,
            "style_list": [
                "video_autoplay",
                "video_inline",
                "video",
                "games_app",
                "fallback",
            ],
            "title_with_entities": {
                "text": ""
            },
            "properties": [{
                "key": "can_autoplay_result",
                "value": {
                    "text": "ugc_default_allowed"
                },
            }],
            "url":
            "https://www.facebook.com/some-user/videos/2222/",
            "deduplication_key":
            "deadbeef456",
            "action_links": [],
            "messaging_attribution":
            None,
            "messenger_call_to_actions": [],
            "xma_layout_info":
            None,
            "target": {
                "__typename": "Video",
                "video_id": "2222",
                "video_messenger_cta_payload": None,
            },
        }],
    }
    assert ShareAttachment(
        author="1111",
        url="https://www.facebook.com/groups/11223344/permalink/1234/",
        original_url="https://www.facebook.com/groups/11223344/permalink/1234/",
        title="",
        description="Abc",
        source="Def",
        image=fbchat.Image(
            url=
            "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
            width=960,
            height=540,
        ),
        original_image_url=
        "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
        attachments=[
            fbchat.VideoAttachment(
                id="2222",
                duration=datetime.timedelta(seconds=24, microseconds=469000),
                preview_url=
                "https://video-arn2-1.xx.fbcdn.net/v/t42.9040-2/vid.mp4",
                previews={
                    fbchat.Image(
                        url=
                        "https://scontent-arn2-1.xx.fbcdn.net/v/t15.5256-10/p180x540/1.jpg",
                        width=960,
                        height=540,
                    )
                },
            )
        ],
        id="deadbeef123",
    ) == ShareAttachment._from_graphql(data)
Beispiel #17
0
def test_location_attachment_from_graphql():
    data = {
        "description": {
            "text": ""
        },
        "media": {
            "animated_image": None,
            "image": {
                "uri":
                "https://external-arn2-1.xx.fbcdn.net/static_map.php?v=1020&osm_provider=2&size=545x280&zoom=15&markers=55.40000000%2C12.43220000&language=en",
                "height": 280,
                "width": 545,
            },
            "playable_duration_in_ms": 0,
            "is_playable": False,
            "playable_url": None,
        },
        "source":
        None,
        "style_list": ["message_location", "fallback"],
        "title_with_entities": {
            "text": "Your location"
        },
        "properties": [
            {
                "key": "width",
                "value": {
                    "text": "545"
                }
            },
            {
                "key": "height",
                "value": {
                    "text": "280"
                }
            },
        ],
        "url":
        "https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D55.4%252C%2B12.4322%26FORM%3DFBKPL1%26mkt%3Den-GB&h=a&s=1",
        "deduplication_key":
        "400828513928715",
        "action_links": [],
        "messaging_attribution":
        None,
        "messenger_call_to_actions": [],
        "xma_layout_info":
        None,
        "target": {
            "__typename": "MessageLocation"
        },
        "subattachments": [],
    }
    assert LocationAttachment(
        uid=400828513928715,
        latitude=55.4,
        longitude=12.4322,
        image=fbchat.Image(
            url=
            "https://external-arn2-1.xx.fbcdn.net/static_map.php?v=1020&osm_provider=2&size=545x280&zoom=15&markers=55.40000000%2C12.43220000&language=en",
            width=545,
            height=280,
        ),
        url=
        "https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D55.4%252C%2B12.4322%26FORM%3DFBKPL1%26mkt%3Den-GB&h=a&s=1",
    ) == LocationAttachment._from_graphql(data)