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")
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")