Exemple #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()
Exemple #2
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"
Exemple #3
0
def add(user):
    form = request.form
    w = Weibo(form)
    status, data, msg = w.save_weibo(user)
    return api_response(status, data, msg)
Exemple #4
0
def update(request):
    form = request.form()
    Weibo.update(form['id'], content=form['content'])
    return redirect('/weibo/index')
Exemple #5
0
def index(request):
    u = current_user(request)
    weibos = Weibo.all(user_id=u.id)
    log('weibos', weibos)
    return html_response('weibo_index.html', weibos=weibos, user=u)
Exemple #6
0
def edit(request):
    weibo_id = int(request.query['id'])
    w = Weibo.one(id=weibo_id)
    return html_response('weibo_edit.html', weibo=w)
Exemple #7
0
def index():
    all_weibo = Weibo.find_all(deleted=False)
    return render_template('weibo/weibo.html', weibo=all_weibo)
Exemple #8
0
def delete():
    id = int(request.args.get('id'))
    w = Weibo.find(id)
    if current_user().id == w.user_id:
        w.delete()
    return redirect(url_for('.index'))
Exemple #9
0
def delete(request):
    weibo_id = int(request.query['id'])
    Weibo.delete(weibo_id)
    return redirect('/weibo/index')
Exemple #10
0
def add_weibo(request):
    form = request.json()
    m = Weibo.new(form)
    return json_response(m.json())
Exemple #11
0
def index(request):
    u = current_user(request)
    weibos = Weibo.all(user_id=u.id)
    # 替换模板文件中的标记字符串
    return html_response('weibo_index.html', weibos=weibos, user=u)
def update(request):
    form: dict = request.json()
    Weibo_id = int(form.pop('weibo_id'))
    t = Weibo.update(Weibo_id, **form)
    return json_response(t.json())
Exemple #13
0
def all(request):
    weibos = Weibo.all_json()
    log('weibos', weibos)
    return json_response(weibos)
Exemple #14
0
def delete(request):
    weibo_id = int(request.query.get('id'))
    t = Weibo.delete(weibo_id)
    return json_response(t.json())
Exemple #15
0
def add(request):
    u = current_user()
    form = request.json()
    w = Weibo.new(form, u.id)
    return json_response(w.json())
Exemple #16
0
def delete(request):
    u = current_user(request)
    # 删除微博
    weibo_id = int(request.query.get('id', None))
    Weibo.delete(weibo_id)
    return redirect('/weibo/index')
Exemple #17
0
#-*- coding: utf-8 -*-
def edit():
    weibo_id = int(request.args['id'])
    log('request_args',request.args)
    w = Weibo.one(id=weibo_id)
    log('w:',w)
    return render_template('weibo_edit.html', weibo=w)
Exemple #19
0
def delete_weibo(request):
    weibo_id = int(request.query.get('id'))
    log('deleted_id', weibo_id)
    t = Weibo.delete(weibo_id)
    return json_response(t.json())
Exemple #20
0
def edit(request):
    weibo_id = int(request.query['id'])
    w = Weibo.find_by(id=weibo_id)
    body = XiaoTemplate.render('weibo_edit.html', weibo=w)
    return html_response(body)
Exemple #21
0
def add(request):
    form = request.json()
    u = current_user(request)
    t = Weibo.add(form, u.id)
    return json_response(t.json())
Exemple #22
0
def update_weibo(request):
    form = request.json()
    weibo_id = int(form.get('id'))
    w = Weibo.update(weibo_id, form)
    return json_response(w.json())
def edit():
    weibo_id = int(request.args['id'])
    w = Weibo.one_for_id(id=weibo_id)
    # body = GuaTemplate.render('weibo_edit.html', weibo=w)
    return render_template('weibo_edit.html', weibo=w)
Exemple #24
0
def add():
    u = current_user()
    form = request.form
    Weibo.new(form, user_id=u.id)
    return redirect(url_for('.index'))
def update():
    form = request.form
    id = form['id']
    Weibo.update(id, form)
    return redirect('/weibo/index')
Exemple #26
0
def comment_add(request):
    u = current_user(request)
    form = request.form()
    Weibo.comment_add(form, u.id)
    return redirect('/weibo/index')
def edit():
    weibo_id = int(request.query['id'])
    w = Weibo.one(id=weibo_id)
    return render_template('weibo_edit.html', weibo=w)
Exemple #28
0
def add(request):
    u = current_user(request)
    form = request.form()
    form['user_id'] = u.id
    Weibo.insert(form)
    return redirect('/weibo/index')
Exemple #29
0
def remove_weibo(request):
    weibo_id = int(request.query.get('id'))
    weibo = Weibo.remove(weibo_id)
    return json_response(weibo.json())
Exemple #30
0
def update(request):
    form = request.form()
    id = form.pop('id')
    Weibo.update(id, **form)
    return redirect('/weibo/index')
Exemple #31
0
def all_weibo(request):
    weibo_list = Weibo.all()
    weibos = [weibo.json() for weibo in weibo_list]
    return json_response(weibos)
Exemple #32
0
def citeShow():
    w_id = request.form.get('weibo_id', None)
    user = current_user()
    status, data, msg = Weibo.show_cites_weibo(w_id, user)
    return api_response(status, data, msg)
Exemple #33
0
def all():
    weibos = Weibo.all_json()
    return jsonify(weibos)