コード例 #1
0
ファイル: views.py プロジェクト: steve-fan/clover
def closet(uid):
    user_timeline_count = current_app.redis.zcard('user:%s:timeline'%uid)
    since_id = int(request.args.get('since_id', user_timeline_count))
    page = int(request.args.get('page', 1))
    rev_since_id = user_timeline_count - since_id + (page-1)*PAGE_SIZE

    recent_postids = current_app.redis.zrevrange('user:%s:timeline'%uid, rev_since_id, rev_since_id+PAGE_SIZE)
    page += 1
    user_timeline = get_timeline(recent_postids)

    fields = ['id', 'username', 'photo', 'about']
    user = current_app.redis.hmget('user:%s'%uid, fields)
    user = dict(zip(fields, user))

    if current_app.redis.zscore('user:%s:following'%g.user['id'], uid):
        user['followed'] = True

    user['listing_count'] = current_app.redis.zcard('user:%s:timeline'%uid) or 0
    user['following_count'] = current_app.redis.zcard('user:%s:following'%uid) or 0
    user['followed_count'] = current_app.redis.zcard('user:%s:follower'%uid) or 0

    if request.is_xhr:
        return jsonify(user=user, timeline=user_timeline, since_id=since_id, page=page)

    return render_template('timeline/closet.html', user=user, timeline=user_timeline, since_id=since_id, page=page)
コード例 #2
0
ファイル: views.py プロジェクト: steve-fan/clover
def likes():
    likes_count = current_app.redis.zcard('user:%s:like'%g.user['id'])
    since_id = int(request.args.get('since_id', likes_count))
    page = int(request.args.get('page', 1))
    rev_since_id = likes_count - since_id + (page-1)*PAGE_SIZE

    user_like_id_list = current_app.redis.zrevrange('user:%s:like'%g.user['id'], rev_since_id, rev_since_id+PAGE_SIZE)
    page += 1
    user_likes = get_timeline(user_like_id_list)

    if request.is_xhr:
        return jsonify(timeline=user_likes, since_id=since_id, page=page)

    return render_template('timeline/likes.html', timeline=user_likes, since_id=since_id, page=page)
コード例 #3
0
ファイル: views.py プロジェクト: steve-fan/clover
def feed():
    user_feed_count = current_app.redis.zcard('user:%s:feed'%g.user['id'])
    since_id = int(request.args.get('since_id', user_feed_count))
    page = int(request.args.get('page', 1))
    rev_since_id = user_feed_count - since_id + (page-1)*PAGE_SIZE

    recent_postids = current_app.redis.zrevrange('user:%s:feed'%g.user['id'], rev_since_id, rev_since_id+PAGE_SIZE)
    page += 1
    feed_timeline = get_timeline(recent_postids, g.user)

    if request.is_xhr:
        return jsonify(timeline=feed_timeline, since_id=since_id, page=page)

    return render_template('timeline/feed.html', timeline=feed_timeline, since_id=since_id, page=page)
コード例 #4
0
ファイル: views.py プロジェクト: steve-fan/clover
def public():
    global_timeline_count = current_app.redis.zcard('global_timeline')
    since_id = int(request.args.get('since_id', global_timeline_count))
    page = int(request.args.get('page', 1))
    rev_since_id = global_timeline_count - since_id + (page-1)*PAGE_SIZE

    recent_postids = current_app.redis.zrevrange('global_timeline', rev_since_id, rev_since_id+PAGE_SIZE)
    page += 1
    public_timeline = get_timeline(recent_postids, g.user)

    if request.is_xhr:
        return jsonify(timeline=public_timeline, since_id=since_id, page=page)

    return render_template('timeline/public.html', timeline=public_timeline, since_id=since_id, page=page)
コード例 #5
0
ファイル: views.py プロジェクト: steve-fan/clover
def explore_brand(filter):
    page = int(request.args.get('page', 1))
    category = request.args.get('category', None)
    since_id = 0
    postid_list = []

    if category:
        brand_count = current_app.redis.zcard('brand:%s:category:%s'%(filter, category))
        since_id = request.args.get('since_id', brand_count)
        rev_since_id = brand_count - since_id + (page-1)*PAGE_SIZE
        postid_list = current_app.redis.zrevrange('brand:%s:category:%s'%(filter, category), rev_since_id, rev_since_id+PAGE_SIZE)
    else:
        brand_count = current_app.redis.zcard('brand:%s'%filter)
        since_id = request.args.get('since_id', brand_count)
        rev_since_id = brand_count - since_id + (page-1)*PAGE_SIZE
        postid_list = current_app.redis.zrevrange('brand:%s'%filter, rev_since_id, rev_since_id+PAGE_SIZE)

    page += 1
    filtered_timeline = get_timeline(postid_list, g.user)

    if request.is_xhr:
        return jsonify(timeline=filtered_timeline, since_id=since_id, page=page)

    return render_template('timeline/explore.html', timeline=filtered_timeline, since_id=since_id, page=page)