Exemplo n.º 1
0
def stat_user(search_time=None, force_update=False):
    """
    统计用户信息
    """
    if not search_time:
        search_time = datetime.datetime.now()
        search_time = "%s-%s-%s" % (now_time.year, now_time.month,
                                    now_time.day)
    content = Content.get(search_time)
    if not content:
        return
    #遍历所有用户
    for types, ids in content.weibo.iteritems():
        for id, context in ids.iteritems():
            user = Weibo.get(id)
            #如果还没有今天的统计就统计一下
            if not user.stat_info.get(search_time) or force_update:
                create_at = []
                for tmp_content in context:
                    if not tmp_content.get('created_at'): continue
                    print types, tmp_content['created_at']
                    create_at.append(
                        tmp_content['created_at'].split(' ')[3].split(':')[0])
                user.stat_info[search_time] = {}
                user.stat_info[search_time] = {
                    'send_count': len(context),
                    'create_at': create_at
                }
                #print ,create_atuser.stat_info[search_time]
                user.put()
Exemplo n.º 2
0
def stat_user(search_time=None,force_update=False):
    """
    统计用户信息
    """
    if not search_time:
        search_time = datetime.datetime.now()
        search_time = "%s-%s-%s"%(now_time.year,now_time.month,now_time.day)
    content = Content.get(search_time)
    if not content:
        return
    #遍历所有用户
    for types,ids in content.weibo.iteritems():
        for id,context in ids.iteritems():
            user = Weibo.get(id)
            #如果还没有今天的统计就统计一下
            if not user.stat_info.get(search_time) or force_update:
                create_at = []
                for tmp_content in context:
                    if not tmp_content.get('created_at'):continue
                    print types,tmp_content['created_at']
                    create_at.append(tmp_content['created_at'].split(' ')[3].split(':')[0])
                user.stat_info[search_time] = {}
                user.stat_info[search_time] = {'send_count':len(context),'create_at':create_at}
                #print ,create_atuser.stat_info[search_time]
                user.put()
Exemplo n.º 3
0
def search_user(keywords, debug=False, force_update=False):
    """
    根据类别更新微博用户的常用信息
    如果keywords没有会出错
    应该先执行search_users查询结果
    debug:调试模式只输出 不保存数据
    force_update:强制更新所有微博(以为新浪对开发者有请求次数限制 尽量少做没用的请求)
    """
    if keywords not in weibo_user.users:
        weibo_user.users[keywords] = []
        weibo_user.put()

    for item in weibo_user.users[keywords]:
        #如果已经存在这个用户了 就不在更新数据 除非强制刷新模式
        wb = Weibo.get(item)
        if wb and not force_update:
            continue

        #item:微博id
        try:
            result = client.users.show.get(uid=item)
        except Exception, e:
            print e
            continue
        user_info = dict(result)
        if not wb:
            wb = Weibo._install(item)

        wb.screen_name = user_info['screen_name']
        wb.statuses_count = user_info['statuses_count']
        wb.followers_count = user_info['followers_count']
        wb.profile_image_url = user_info['profile_image_url']
        wb.avatar_large = user_info['avatar_large']
        if debug:
            print item
            print "  ", "statuses_count", user_info['statuses_count']
            print "  ", "followers_count", user_info['followers_count']
            print "  ", "profile_image_url", user_info['profile_image_url']
            print "  ", "avatar_large", user_info['avatar_large']
            continue
        wb.put()
        print "ok"
Exemplo n.º 4
0
def search_user(keywords,debug=False,force_update=False):
    """
    根据类别更新微博用户的常用信息
    如果keywords没有会出错
    应该先执行search_users查询结果
    debug:调试模式只输出 不保存数据
    force_update:强制更新所有微博(以为新浪对开发者有请求次数限制 尽量少做没用的请求)
    """
    if keywords not in weibo_user.users:
        weibo_user.users[keywords] = []
        weibo_user.put()
        
    for item in weibo_user.users[keywords]:
        #如果已经存在这个用户了 就不在更新数据 除非强制刷新模式
        wb = Weibo.get(item)
        if wb and not force_update:
            continue
        
        #item:微博id
        try:
            result = client.users.show.get(uid=item)
        except Exception,e:
            print e
            continue
        user_info = dict(result)
        if not wb:
            wb = Weibo._install(item)
        
        wb.screen_name = user_info['screen_name']
        wb.statuses_count = user_info['statuses_count']
        wb.followers_count = user_info['followers_count']
        wb.profile_image_url = user_info['profile_image_url']
        wb.avatar_large = user_info['avatar_large']
        if debug:
            print item
            print "  ","statuses_count",user_info['statuses_count']
            print "  ","followers_count",user_info['followers_count']
            print "  ","profile_image_url",user_info['profile_image_url']
            print "  ","avatar_large",user_info['avatar_large']
            continue
        wb.put()
        print "ok"
Exemplo n.º 5
0
#-*- coding: utf-8 -*-
Exemplo n.º 6
0
#-*- coding: utf-8 -*-