Beispiel #1
0
 def videos(self, max=None):
     """
     get videos of topic
     :return:
     """
     from douyin.utils.tranform import data_to_video
     if max and not isinstance(max, int):
         raise RuntimeError('`max` param must be int')
     query = {
         'device_id': '33333333',
         'ch_id': self.id,
         'count': '18',
         'aid': '1129'
     }
     offset, count = 0, 0
     while True:
         # define cursor
         query['cursor'] = str(offset)
         result = fetch(topic2video_url, params=query, headers=common_headers, verify=False)
         aweme_list = result.get('aweme_list', [])
         for item in aweme_list:
             video = data_to_video(item)
             count += 1
             yield video
             if max and count >= max:
                 break
         # next page
         if result.get('has_more'):
             offset += 18
         else:
             break
Beispiel #2
0
def energy():
    """
    get hot energy result
    :return: HotEnergy object
    """
    result = fetch(hot_energy_url)
    # process json data
    datetime = parse_datetime(result.get('active_time'))
    video_list = result.get('aweme_list', [])
    videos = []
    for item in video_list:
        video = data_to_video(item.get('aweme_info'))
        video.hot_count = item.get('hot_value')
        videos.append(video)
    # construct HotEnergy object and return
    return HotEnergy(datetime=datetime, data=videos)