Exemplo n.º 1
0
def listUsers(request):
    forum = request.GET.get('forum')
    since = request.GET.get('since_id')
    limit = request.GET.get('limit')
    order = request.GET.get('order')
    sql = "SELECT DISTINCT user,name from Post where Post.forum = '%s'" % forum
    if since is not None:
        sql += "and Post.user_id>=%s " % since
    if order is not None:
        if order == "asc":
            sql += "order by Post.name ASC "
        else:
            sql += "order by Post.name DESC "
    if limit is not None:
        sql += "limit %s" % limit
    sql = "SELECT User.email, User.id, User.username, User.name, User.is_anonymous, User.about" \
          " from User join (%s) as t2 on User.email=t2.user " % sql
    if order is not None:
        if order == "asc":
            sql += "order by t2.name ASC "
        else:
            sql += "order by t2.name DESC "
    result = sql_select(sql)
    if result == ():
        resp = {"code": 0, "response": []}
        resp = json.dumps(resp)
        return HttpResponse(resp, content_type="application/json")
    users = []
    for data in result:
        params = {
            'email': data[0],
            'username': data[2],
            'name': data[3],
            'isAnonymous': bool(data[4]),
            'about': data[5],
        }
        user = User(params)
        user.id = data[1]
        sql = "SELECT follower FROM Follow where followee=" + "'" + user.email + "'" + 'and is_deleted=0'
        followers = sql_select(sql)
        followers = list(itertools.chain.from_iterable(followers))
        sql = "SELECT followee FROM Follow where follower=" + "'" + user.email + "'" + 'and is_deleted=0'
        following = sql_select(sql)
        following = list(itertools.chain.from_iterable(following))
        user.followers = followers
        user.following = following
        sql = "SELECT thread FROM Subscription where user='******' and is_deleted=FALSE" % user.email
        subscriptions = sql_select(sql)
        subscriptions = list(itertools.chain.from_iterable(subscriptions))
        user.subscriptions = subscriptions
        users.append(user.serialize())
    resp = {"code": 0, "response": users}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type="application/json")
Exemplo n.º 2
0
def listFollowers(request):
    email = request.GET.get('user')
    since = request.GET.get('since_id')
    limit = request.GET.get('limit')
    order = request.GET.get('order')
    sql = "SELECT User.email, User.id, User.username, User.name, User.is_anonymous, User.about" \
          " from Follow join User on Follow.follower=User.email where Follow.is_deleted != TRUE AND Follow.followee = '%s'" % email
    if since != None:
        sql += "and User.id>=%s " % since
    if order != None:
        if order == "asc":
            sql += "order by User.name ASC "
        else:
            sql += "order by User.name DESC "
    if limit != None:
        sql += "limit %s" % limit
    result = sql_select(sql)
    users = []
    for data in result:
        params = {
            'email': data[0],
            'username': data[2],
            'name': data[3],
            'isAnonymous': bool(data[4]),
            'about': data[5],
        }
        user = User(params)
        user.id = data[1]
        sql = "SELECT follower FROM Follow where followee=" + "'" + user.email + "'" + 'and is_deleted=0'
        followers = sql_select(sql)
        followers = list(itertools.chain.from_iterable(followers))
        sql = "SELECT followee FROM Follow where follower=" + "'" + user.email + "'" + 'and is_deleted=0'
        following = sql_select(sql)
        following = list(itertools.chain.from_iterable(following))
        user.followers = followers
        user.following = following
        sql = "SELECT thread FROM Subscription where user='******' AND is_deleted=FALSE " % user.email
        subscriptions = sql_select(sql)
        subscriptions = list(itertools.chain.from_iterable(subscriptions))
        user.subscriptions = subscriptions
        users.append(user.serialize())
    resp = {"code": 0, "response": users}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type="application/json")