示例#1
0
    def _parse_user(loader, data):
        USER_ELEMENTS = [
            "biography",
            "external_url",
            "external_url_linkshimmed",
            "full_name",
            "has_channel",
            "highlight_reel_count",
            "id",
            "is_business_account",
            "is_joined_recently",
            "business_category_name",
            "is_private",
            "is_verified",
            "profile_pic_url",
            "profile_pic_url_hd",
            "username",
            "connected_fb_page",
            "edge_followed_by.count",
            "edge_follow.count",
        ]
        for entry in USER_ELEMENTS:
            loader.add_value(entry.replace(".", "_"),
                             deep_dict_get(data, entry))

        loader.add_value(
            "last_posts",
            [
                post["node"]["shortcode"]
                for post in data["edge_owner_to_timeline_media"]["edges"]
            ],
        )
        loader.add_value("user_json", data)
        loader.add_value("retrieved_at_time", int(time.time()))
        return loader
示例#2
0
    def _parse_post(loader, data):
        POST_ELEMENTS = [
            "id",
            "shortcode",
            "dimensions",
            "fact_check_overall_rating",
            "fact_check_information",
            "display_url",
            "display_resources",
            "accessibility_caption",
            "is_video",
            "tracking_token",
            "edge_media_to_tagged_user",
            "edge_media_to_caption",
            "caption_is_edited",
            "has_ranked_comments",
            "edge_media_to_parent_comment",
            "edge_media_to_hoisted_comment",
            "edge_media_preview_comment",
            "comments_disabled",
            "taken_at_timestamp",
            "edge_media_preview_like",
            "edge_media_sponsor_user",
            "location",
            "location.id",
            "owner.username",
            "owner.id",
            "is_ad",
            "edge_web_media_to_related_media",
        ]

        try:
            for entry in POST_ELEMENTS:
                loader.add_value(entry.replace(".", "_"),
                                 deep_dict_get(data, entry))
        except TypeError:
            pass

        loader.add_value("post_json", data)
        loader.add_value("retrieved_at_time", int(time.time()))
        loader.add_value("image_urls", data.get("display_url"))
        return loader
示例#3
0
def test_nested_dict_list(nested_dict_sample):
    result = deep_dict_get(nested_dict_sample, 'a.b.f')
    assert isinstance(result, list)
示例#4
0
def test_nested_dict_dictionary(nested_dict_sample):
    result = deep_dict_get(nested_dict_sample, 'a.b.e')
    assert isinstance(result, dict)
示例#5
0
def test_nested_dict_int(nested_dict_sample):
    result = deep_dict_get(nested_dict_sample, 'a.b.d')
    assert result == 6
示例#6
0
def test_nested_dict_str(nested_dict_sample):
    result = deep_dict_get(nested_dict_sample, 'a.b.c')
    assert result == 'string'
示例#7
0
def test_nested_dict_flat(nested_dict_sample):
    result = deep_dict_get(nested_dict_sample, 'a')
    assert isinstance(result, dict)