Beispiel #1
0
def parse_to_user(author_json):
    """
    parse json to User
    :param author_json:
    :return: User
    """
    id = author_json.get('mid')
    avatar_url = get_array_first(
        author_json.get('avatar_larger', {}).get('url_list'))
    is_verified = author_json.get('is_verified')
    verify_info = author_json.get('custom_verify')
    is_hide_search = author_json.get('hide_search')
    nickname = author_json.get('nickname')
    region = author_json.get('CN')
    signature = author_json.get('signature')
    gender = parse_gender(author_json.get('gender'))
    birthday = parse_datetime(author_json.get('birthday'))
    alias = author_json.get('unique_id') or author_json.get('short_id')

    if id:
        return User(id=id,
                    avatar_url=avatar_url,
                    is_verified=is_verified,
                    verify_info=verify_info,
                    is_hide_search=is_hide_search,
                    nickname=nickname,
                    region=region,
                    signature=signature,
                    gender=gender,
                    birthday=birthday,
                    alias=alias)
    else:
        return None
Beispiel #2
0
def hot_search():
    """
    get 20 of the most popular searching videos in billboard
    :return:HotSearch
    """
    result = get(hot_search_url, headers=headers)
    data = result.get('data', {})
    date_time = parse_datetime(data.get('active_time'))
    word_list = data.get('word_list', [])
    data_lists = [{'hot_value': item.get('hot_value'), 'word': item.get('word')} for item in word_list]
    return HotSearch(data=data_lists, datetime=date_time)
Beispiel #3
0
def parse_to_video(data):
    """
    parse json to Video
    :param data:
    :return: Video
    """
    id = data.get('aweme_id')

    statistics = data.get('statistics', {})
    like_count = statistics.get('digg_count')
    comment_count = statistics.get('comment_count')
    share_count = statistics.get('share_count')

    share_url = data.get('share_url')
    desc = data.get('desc')
    group_id = data.get('group_id')
    author_user_id = data.get('author_user_id')
    create_time = parse_datetime(data.get('create_time'))
    is_ads = data.get('is_ads')
    region = data.get('region')

    video = data.get('video', {})
    ratio = video.get('ratio')
    cover_url = get_array_first(get_cover_url(video).get('url_list', []))
    play_url = get_video_url(video.get('play_addr', {}).get('url_list', []))
    duration = data.get('duration')

    music = parse_to_music(data.get('music', {}))
    author = parse_to_user(data.get('author', {}))
    address = parse_to_address(data.get('poi_info', {}))

    if id:
        return Video(id=id,
                     like_count=like_count,
                     comment_count=comment_count,
                     share_count=share_count,
                     share_url=share_url,
                     desc=desc,
                     group_id=group_id,
                     author_user_id=author_user_id,
                     create_time=create_time,
                     is_ads=is_ads,
                     region=region,
                     ratio=ratio,
                     cover_url=cover_url,
                     play_url=play_url,
                     duration=duration,
                     music=music,
                     author=author,
                     address=address)
    else:
        return None
Beispiel #4
0
def hot_stars():
    """
    get 20 of the most popular starts in billboard
    :return:HotStar
    """
    result = get(url=hot_star_url, headers=headers)
    date_time = parse_datetime(result.get('active_time'))
    star_list = result.get('user_list', [])
    stars = []
    for item in star_list:
        star = parse_to_star(item)
        stars.append(star)

    return HotStar(data=stars, datetime=date_time)
Beispiel #5
0
def hot_pe_top20():
    """
    get 20 of the most popular positive energy videos in billboard
    :return:HotPETopVideo
    """
    result = get(hot_positive_energy_url, headers=headers)
    active_time = parse_datetime(result.get('active_time'))
    video_lists = result.get('aweme_list', [])
    videos = []
    for item in video_lists:
        video = parse_to_video(item.get('aweme_info'))
        video.hot_value_count = item.get('hot_value')
        videos.append(video)

    return HotPETopVideo(data=videos, datetime=active_time)
Beispiel #6
0
def hot_music():
    """
    get 20 of the most popular musics in billboard
    :return:HotTopMusic
    """
    result = get(url=hot_music_url, headers=headers)
    date_time = parse_datetime(result.get('active_time'))
    music_list = result.get('music_list', [])
    musics = []
    for item in music_list:
        music = parse_to_music(item.get('music_info'))
        music.hot_value = item.get('hot_value')
        musics.append(music)

    return HotTopMusic(data=musics, datetime=date_time)