Esempio n. 1
0
 def feed(cls, u):
     fs: List[Follow] = Follow.all(follower_id=u.id)
     weibos = []
     for f in fs:
         follwed_weibos = Weibo.all(user_id=f.followed_id)
         weibos.extend(follwed_weibos)
     return weibos
Esempio n. 2
0
File: user.py Progetto: cxphoe/forum
def user_detail(id):
    u = User.one(id=id)
    if u is None:
        abort(404)
    else:
        topics = [t.json() for t in u.topics]
        follower_f = Follow.all(user_id=u.id)
        followed_f = Follow.all(follower_id=u.id)

        for t in topics:
            t['pulished'] = True
        data = {
            'id': u.id,
            'avatar': u.avatar,
            'username': u.username,
            'topics': topics,
            'followers': [get_user_data(f.follower_id) for f in follower_f],
            'followed': [get_user_data(f.user_id) for f in followed_f],
        }
        return jsonify(data)
Esempio n. 3
0
def current_user():
    # 从 session 中找到 user_id 字段, 找不到就 -1
    # 然后用 id 找用户
    # 找不到就返回 None
    uid = session.get('user_id', -1)
    u = User.one(id=uid)
    if u is not None:
        ts = u.topics
        involved_ts_count = u.involved_ts_count()
        fs = Follow.all(user_id=u.id)
        followeds = Follow.all(follower_id=u.id)
        data = {
            'id': u.id,
            'avatar': u.avatar,
            'username': u.username,
            'topic_count': len(ts),
            'involved_count': involved_ts_count,
            'follower_count': len(fs),
            'followed_ids': [f.user_id for f in followeds],
        }
    else:
        g = User.guest()
        data = {
            'id': g.id,
            'avatar': g.avatar,
            'username': g.username,
            'is_guest': True,
        }
    resp = make_response(jsonify(data), 200)

    # 设置 xsrf token
    token = uuid.uuid4()
    token = bytes(str(token), encoding='utf-8')
    resp.set_cookie('_xsrf', token, httponly=True)
    resp.headers['token'] = token
    return resp
Esempio n. 4
0
def followers(id):
    fs = Follow.all(user_id=id)
    us = [get_user_data(f.follower_id) for f in fs]
    return jsonify(us)
Esempio n. 5
0
def followed_users(id):
    """得到当前登陆用户的关注用户"""
    fs = Follow.all(follower_id=id)
    us = [get_user_data(f.user_id) for f in fs]
    return jsonify(us)