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)
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)
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)
def test_graphql_to_attachment_audio(): data = { "__typename": "MessageAudio", "attribution_app": None, "attribution_metadata": None, "filename": "audio.mp3", "playable_url": "https://cdn.fbsbx.com/v/audio.mp3?dl=1", "playable_duration_in_ms": 27745, "is_voicemail": False, "audio_type": "FILE_ATTACHMENT", "url_shimhash": "AT0...", "url_skipshim": True, } assert AudioAttachment( uid=None, filename="audio.mp3", url="https://cdn.fbsbx.com/v/audio.mp3?dl=1", duration=datetime.timedelta(seconds=27, microseconds=745000), audio_type="FILE_ATTACHMENT", ) == graphql_to_attachment(data)
def test_graphql_to_attachment_file(): data = { "__typename": "MessageFile", "attribution_app": None, "attribution_metadata": None, "filename": "file.txt", "url": "https://l.facebook.com/l.php?u=https%3A%2F%2Fcdn.fbsbx.com%2Fv%2Ffile.txt&h=AT1...&s=1", "content_type": "attach:text", "is_malicious": False, "message_file_fbid": "1234", "url_shimhash": "AT0...", "url_skipshim": True, } assert FileAttachment( uid="1234", url="https://l.facebook.com/l.php?u=https%3A%2F%2Fcdn.fbsbx.com%2Fv%2Ffile.txt&h=AT1...&s=1", size=None, name="file.txt", is_malicious=False, ) == graphql_to_attachment(data)
def test_graphql_to_attachment_simple(): data = {"__typename": "Unknown", "legacy_attachment_id": "1234"} assert fbchat.Attachment(uid="1234") == graphql_to_attachment(data)
def test_graphql_to_attachment_empty(): assert fbchat.Attachment() == graphql_to_attachment({"__typename": "Unknown"})