# -*- coding: utf-8 -*- from typing import Any, Dict, Optional, Text import ujson NORMAL_TWEET = """{ "created_at": "Sat Sep 10 22:23:38 +0000 2011", "id_str": "112652479837110273", "in_reply_to_user_id_str": "783214", "text": "@twitter meets @seepicturely at #tcdisrupt cc.@boscomonkey @episod http://t.co/6J2EgYM", "source": "Instagram", "lang": "en", "id": 112652479837110273, "in_reply_to_user_id": 783214, "favorite_count": 3, "hashtags": [ { "text": "tcdisrupt" } ], "user": { "profile_sidebar_fill_color": "efefef", "name": "Eoin McMillan ", "profile_image_url": "http://a1.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "created_at": "Mon May 16 20:07:59 +0000 2011", "location": "Twitter", "profile_link_color": "009999", "id_str": "299862462", "favourites_count": 0, "url": "http://www.eoin.me", "id": 299862462, "utc_offset": null, "profile_image_url_https": "https://si0.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "listed_count": 0, "followers_count": 9, "lang": "en", "profile_text_color": "333333", "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme14/bg.gif", "description": "Eoin's photography account. See @mceoin for tweets.", "geo_enabled": false, "profile_background_color": "131516", "time_zone": null, "statuses_count": 255, "friends_count": 0, "profile_background_image_url": "http://a1.twimg.com/images/themes/theme14/bg.gif", "screen_name": "imeoin", "statuses_count": 270 }, "user_mentions": [ { "screen_name": "twitter", "name": "Twitter", "id": 1 }, { "screen_name": "boscomonkey", "name": "Bosco So", "id": 2 }, { "screen_name": "episod", "name": "Taylor Singletary", "id": 3 } ], "urls": [ { "expanded_url": "http://instagram.com/p/MuW67/", "url": "http://t.co/6J2EgYM" } ] }""" MENTION_IN_LINK_TWEET = """{ "created_at": "Sat Sep 10 22:23:38 +0000 2011", "id_str": "112652479837110273", "in_reply_to_user_id_str": "783214", "text": "http://t.co/@foo", "source": "Twitter Web Client", "lang": "en", "id": 112652479837110273, "in_reply_to_user_id": 783214, "favorite_count": 3, "user": { "profile_sidebar_fill_color": "efefef", "name": "Eoin McMillan ", "profile_image_url": "http://a1.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "created_at": "Mon May 16 20:07:59 +0000 2011", "location": "Twitter", "profile_link_color": "009999", "id_str": "299862462", "favourites_count": 0, "url": "http://www.eoin.me", "id": 299862462, "utc_offset": null, "profile_image_url_https": "https://si0.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "listed_count": 0, "followers_count": 9, "lang": "en", "profile_text_color": "333333", "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme14/bg.gif", "description": "Eoin's photography account. See @mceoin for tweets.", "geo_enabled": false, "profile_background_color": "131516", "time_zone": null, "statuses_count": 255, "friends_count": 0, "profile_background_image_url": "http://a1.twimg.com/images/themes/theme14/bg.gif", "screen_name": "imeoin", "statuses_count": 270 }, "user_mentions": [ { "screen_name": "foo", "name": "Foo", "id": 1 } ], "urls": [ { "expanded_url": "http://foo.com", "url": "http://t.co/@foo" } ] }""" MEDIA_TWEET = """{ "created_at": "Sat Sep 10 22:23:38 +0000 2011", "id_str": "112652479837110273", "in_reply_to_user_id_str": "783214", "text": "http://t.co/xo7pAhK6n3", "source": "Twitter Web Client", "lang": "en", "id": 112652479837110273, "in_reply_to_user_id": 783214, "favorite_count": 3, "user": { "profile_sidebar_fill_color": "efefef", "name": "Eoin McMillan ", "profile_image_url": "http://a1.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "created_at": "Mon May 16 20:07:59 +0000 2011", "location": "Twitter", "profile_link_color": "009999", "id_str": "299862462", "favourites_count": 0, "url": "http://www.eoin.me", "id": 299862462, "utc_offset": null, "profile_image_url_https": "https://si0.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "listed_count": 0, "followers_count": 9, "lang": "en", "profile_text_color": "333333", "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme14/bg.gif", "description": "Eoin's photography account. See @mceoin for tweets.", "geo_enabled": false, "profile_background_color": "131516", "time_zone": null, "statuses_count": 255, "friends_count": 0, "profile_background_image_url": "http://a1.twimg.com/images/themes/theme14/bg.gif", "screen_name": "imeoin", "statuses_count": 270 }, "media": [ { "display_url": "pic.twitter.com/xo7pAhK6n3", "expanded_url": "http://twitter.com/NEVNBoston/status/421654515616849920/photo/1", "id": 421654515495211010, "media_url": "http://pbs.twimg.com/media/BdoEjD4IEAIq86Z.jpg", "media_url_https": "https://pbs.twimg.com/media/BdoEjD4IEAIq86Z.jpg", "sizes": {"large": {"h": 700, "resize": "fit", "w": 1024}, "medium": {"h": 410, "resize": "fit", "w": 599}, "small": {"h": 232, "resize": "fit", "w": 340}, "thumb": {"h": 150, "resize": "crop", "w": 150}}, "type": "photo", "url": "http://t.co/xo7pAhK6n3"} ] }""" EMOJI_TWEET = """{ "created_at": "Sat Sep 10 22:23:38 +0000 2011", "id_str": "287977969287315460", "in_reply_to_user_id_str": "783214", "text": "Zulip is 💯% open-source!", "lang": "en", "id": 287977969287315460, "in_reply_to_user_id": 783214, "favorite_count": 3, "user": { "profile_sidebar_fill_color": "efefef", "name": "Eoin McMillan ", "profile_image_url": "http://a1.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "created_at": "Mon May 16 20:07:59 +0000 2011", "location": "Twitter", "profile_link_color": "009999", "id_str": "299862462", "favourites_count": 0, "url": "http://www.eoin.me", "id": 299862462, "utc_offset": null, "profile_image_url_https": "https://si0.twimg.com/profile_images/1380912173/Screen_shot_2011-06-03_at_7.35.36_PM_normal.png", "listed_count": 0, "followers_count": 9, "lang": "en", "profile_text_color": "333333", "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme14/bg.gif", "description": "Eoin's photography account. See @mceoin for tweets.", "geo_enabled": false, "profile_background_color": "131516", "time_zone": null, "statuses_count": 255, "friends_count": 0, "profile_background_image_url": "http://a1.twimg.com/images/themes/theme14/bg.gif", "screen_name": "imeoin", "statuses_count": 270 } }""" def twitter(tweet_id): # type: (Text) -> Optional[Dict[Text, Any]] if tweet_id in ["112652479837110273", "287977969287315456", "287977969287315457"]: return ujson.loads(NORMAL_TWEET) elif tweet_id == "287977969287315458": return ujson.loads(MENTION_IN_LINK_TWEET) elif tweet_id == "287977969287315459": return ujson.loads(MEDIA_TWEET) elif tweet_id == "287977969287315460": return ujson.loads(EMOJI_TWEET) else: return None