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()
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"
def add(user): form = request.form w = Weibo(form) status, data, msg = w.save_weibo(user) return api_response(status, data, msg)
def update(request): form = request.form() Weibo.update(form['id'], content=form['content']) return redirect('/weibo/index')
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)
def edit(request): weibo_id = int(request.query['id']) w = Weibo.one(id=weibo_id) return html_response('weibo_edit.html', weibo=w)
def index(): all_weibo = Weibo.find_all(deleted=False) return render_template('weibo/weibo.html', weibo=all_weibo)
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'))
def delete(request): weibo_id = int(request.query['id']) Weibo.delete(weibo_id) return redirect('/weibo/index')
def add_weibo(request): form = request.json() m = Weibo.new(form) return json_response(m.json())
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())
def all(request): weibos = Weibo.all_json() log('weibos', weibos) return json_response(weibos)
def delete(request): weibo_id = int(request.query.get('id')) t = Weibo.delete(weibo_id) return json_response(t.json())
def add(request): u = current_user() form = request.json() w = Weibo.new(form, u.id) return json_response(w.json())
def delete(request): u = current_user(request) # 删除微博 weibo_id = int(request.query.get('id', None)) Weibo.delete(weibo_id) return redirect('/weibo/index')
#-*- 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)
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())
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)
def add(request): form = request.json() u = current_user(request) t = Weibo.add(form, u.id) return json_response(t.json())
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)
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')
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)
def add(request): u = current_user(request) form = request.form() form['user_id'] = u.id Weibo.insert(form) return redirect('/weibo/index')
def remove_weibo(request): weibo_id = int(request.query.get('id')) weibo = Weibo.remove(weibo_id) return json_response(weibo.json())
def update(request): form = request.form() id = form.pop('id') Weibo.update(id, **form) return redirect('/weibo/index')
def all_weibo(request): weibo_list = Weibo.all() weibos = [weibo.json() for weibo in weibo_list] return json_response(weibos)
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)
def all(): weibos = Weibo.all_json() return jsonify(weibos)