Exemplo n.º 1
0
def listUsers(request):
    forum = getSqlVariable(request.GET.get("forum"))
    since = request.GET.get("since_id")
    limit = request.GET.get("limit")
    order = request.GET.get("order")
    if since:
        since = "AND users_id >= '%(since)s'" % {"since": since}
    else:
        since = ""

    if limit:
        limit = "LIMIT %(limit)s" % {"limit": limit}
    else:
        limit = ""

    if order:
        order = "ORDER BY users_name %(order)s" % {"order": order}
    else:
        order = ""

    sql = "SELECT DISTINCT users_email, users_name FROM posts WHERE forums_short_name=%(forum)s %(since)s %(order)s %(limit)s;" % {
        "forum": forum,
        "since": since,
        "order": order,
        "limit": limit
    }
    cursor = connection.cursor()
    cursor.execute(sql)
    emails = cursor.fetchall()
    users = []
    for email in emails:
        users.append(getuser(getSqlVariable(email[0])))
    resp = {"code": 0, "response": users}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 2
0
def details(request):
    try:
        post = getPost(request.GET.get("post"))
        related = request.GET.getlist("related")
        for relation in related:
            if relation == "user":
                post.update({
                    "user": getuser(getSqlVariable(post["user"]))
                })
            elif relation == "forum":
                post.update({
                    "forum": getforum(post["forum"])
                })
            elif relation == "thread":
                post.update({
                    "thread": getThread(post["thread"])
                })
                pass
        resp = {
            "code": 0,
            "response": post
        }
    except:
        resp = {
            "code": 1,
            "response": {}
        }

    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 3
0
def update(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    cursor = connection.cursor()

    message = getSqlVariable(data["message"])
    slug = getSqlVariable(data["slug"])
    id = getSqlVariable(data["thread"])

    sql = "UPDATE threads SET message=%(message)s, slug=%(slug)s WHERE id=%(id)s" % {
        "message": message,
        "slug": slug,
        "id": id
    }
    cursor.execute(sql)
    resp = {"code": 0, "response": getThread(id)}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 4
0
def create(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)

    username = getSqlVariable(data['username'])
    about = getSqlVariable(data['about'])
    name = getSqlVariable(data['name'])
    email = getSqlVariable(data['email'])
    isAnonymous = True
    if data.keys().count('isAnonymous') > 0:
        isAnonymous = data['isAnonymous']
    if isAnonymous:
        isAnonymous = 1
    else:
        isAnonymous = 0
    isAnonymous = getSqlVariable(isAnonymous)

    sql = "INSERT INTO users (username, about, name, email, isAnonymous)" \
            " VALUES(%(username)s, %(about)s, %(name)s, %(email)s, %(isAnonymous)s);"\
                %{"username": username, "about": about, "name": name, "email": email, "isAnonymous": isAnonymous}

    try:
        cursor = connection.cursor()
        cursor.execute(sql)
        sql = "SELECT id FROM users WHERE email=%(email)s;" % {"email": email}
        cursor.execute(sql)
        id = cursor.fetchone()[0]
        resp = {
            "code": 0,
            "response": {
                "id": id,
                "username": username,
                "about": about,
                "name": name,
                "email": email,
                "isAnonymous": isAnonymous
            }
        }

    except IntegrityError:
        resp = {"code": 5, "response": {}}

    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 5
0
def details(request):
    email = getSqlVariable(request.GET.get('user'))
    try:
        user = getuser(email)
        resp = {"code": 0, "response": user}
    except:
        resp = {"code": 3, "response": {}}

    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 6
0
def updateProfile(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    about = getSqlVariable(data["about"])
    emial = getSqlVariable(data["user"])
    name = getSqlVariable(data["name"])
    cursor = connection.cursor()
    sql = "UPDATE users SET about=%(about)s, name=%(name)s WHERE email=%(email)s" % {
        "about": about,
        "name": name,
        "email": emial
    }
    cursor.execute(sql)
    sql = "UPDATE posts SET users_name=%(name)s WHERE users_email=%(email)s;" % {
        "name": name,
        "email": emial
    }
    cursor.execute(sql)
    resp = {"code": 0, "response": getuser(emial)}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 7
0
def listPosts(request):
    user = getSqlVariable(request.GET.get("user"))
    since = request.GET.get("since")
    limit = request.GET.get("limit")
    order = request.GET.get("order")
    if since:
        since = "AND date >= '%(since)s'" % {"since": since}
    else:
        since = ""

    if limit:
        limit = "LIMIT %(limit)s" % {"limit": limit}
    else:
        limit = ""

    if order:
        order = "ORDER BY date %(order)s" % {"order": order}
    else:
        order = ""
    cursor = connection.cursor()
    sql = "SELECT * FROM posts WHERE users_email=%(user)s %(since)s %(order)s %(limit)s;" % {
        "user": user,
        "since": since,
        "order": order,
        "limit": limit
    }
    cursor.execute(sql)
    results = cursor.fetchall()
    resp = []
    for result in results:
        post = {
            "id": result[0],
            "message": result[1],
            "date": result[2].isoformat(sep=' '),
            "likes": result[3],
            "dislikes": result[4],
            "points": result[5],
            "isApproved": True if result[6] == 1 else False,
            "isHighlighted": True if result[7] == 1 else False,
            "isEdited": True if result[8] == 1 else False,
            "isSpam": True if result[9] == 1 else False,
            "isDeleted": True if result[10] == 1 else False,
            "parent": result[11],
            "user": result[12],
            "thread": result[13],
            "forum": result[14]
        }
        resp.append(post)

    resp = {"code": 0, "response": resp}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 8
0
def unfollow(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    follower = data["follower"]
    followee = data["followee"]
    cursor = connection.cursor()
    sql = "DELETE FROM followers WHERE users_email_follower='%(follower)s' AND users_email_following='%(followee)s'" % {
        "follower": follower,
        "followee": followee
    }
    cursor.execute(sql)
    resp = {"code": 0, "response": getuser(getSqlVariable(follower))}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 9
0
def follow(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    follower = data["follower"]
    followee = data["followee"]
    cursor = connection.cursor()
    sql = "INSERT INTO followers (users_email_follower, users_email_following) VALUES ('%(follower)s', '%(followee)s');" % {
        "follower": follower,
        "followee": followee
    }
    cursor.execute(sql)
    resp = {"code": 0, "response": getuser(getSqlVariable(follower))}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 10
0
def unsubscribe(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    id = data["thread"]
    user = getSqlVariable(data["user"])
    cursor = connection.cursor()
    sql = "DELETE FROM subscriptions WHERE threads_id=%(thread)s AND users_email=%(user)s;" % {
        "thread": id,
        "user": user
    }
    cursor.execute(sql)
    resp = {"code": 0, "response": {"thread": id, "user": user}}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 11
0
def listFollowing(request):
    user = getSqlVariable(request.GET.get("user"))
    since = request.GET.get("since_id")
    limit = request.GET.get("limit")
    order = request.GET.get("order")
    if since:
        since = "AND users.id >= '%(since)s'" % {"since": since}
    else:
        since = ""

    if limit:
        limit = "LIMIT %(limit)s" % {"limit": limit}
    else:
        limit = ""

    if order:
        order = "ORDER BY users.name %(order)s" % {"order": order}
    else:
        order = ""

    sql = "SELECT users.email FROM users JOIN followers ON users.email = followers.users_email_following" \
          " WHERE followers.users_email_follower = %(user)s %(since)s %(order)s %(limit)s" %{
        "user": user,
        "since": since,
        "order": order,
        "limit": limit
    }
    cursor = connection.cursor()
    cursor.execute(sql)
    emails = cursor.fetchall()
    users = []
    for email in emails:
        users.append(getuser(getSqlVariable(email[0])))
    resp = {"code": 0, "response": users}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 12
0
def details(request):
    try:
        thread = getThread(request.GET.get("thread"))
        related = request.GET.getlist("related")
        for relation in related:
            if relation == "user":
                thread.update(
                    {"user": getuser(getSqlVariable(thread["user"]))})
            elif relation == "forum":
                thread.update({"forum": getforum(thread["forum"])})
            else:
                raise
        resp = {"code": 0, "response": thread}
    except:
        resp = {"code": 3, "response": {}}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 13
0
def subscribe(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)
    id = data["thread"]
    user = getSqlVariable(data["user"])
    cursor = connection.cursor()
    sql = "INSERT INTO subscriptions (threads_id, users_email) VALUES(%(thread)s, %(user)s);" % {
        "thread": id,
        "user": user
    }
    try:
        cursor.execute(sql)
        resp = {"code": 0, "response": {"thread": id, "user": user}}
    except IntegrityError:
        resp = {"code": 5, "response": {}}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 14
0
def create(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)

    forum = getSqlVariable(data["forum"])
    title = getSqlVariable(data["title"])
    isClosed = 1 if data["isClosed"] else 0
    user = getSqlVariable(data["user"])
    date = getSqlVariable(data["date"])
    message = getSqlVariable(data["message"])
    slug = getSqlVariable(data["slug"])
    isDeleted = False

    if "isDeleted" in data.keys():
        isDeleted = data["isDeleted"]
    isDeleted = 1 if isDeleted else 0

    sql = "INSERT INTO threads (forums_short_name, title, isClosed, users_email, date, message, slug, isDeleted)" \
          " VALUES(%(forum)s, %(title)s, %(isClosed)s, %(user)s, %(date)s, %(message)s, %(slug)s, %(isDeleted)s);" \
          % {
            "forum": forum,
            "title": title,
            "isClosed": isClosed,
            "user": user,
            "date": date,
            "message": message,
            "slug": slug,
            "isDeleted": isDeleted
          }
    try:
        cursor = connection.cursor()
        cursor.execute(sql)
        id = cursor.lastrowid
        resp = {
            "code": 0,
            "response": {
                "id": id,
                "title": title,
                "isClosed": isClosed,
                "user": user,
                "date": date,
                "message": message,
                "slug": slug,
                "isDeleted": isDeleted
            }
        }
    except IntegrityError:
        resp = {"code": 3, "response": {}}

    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 15
0
def list(request):
    try:
        forum = request.GET.get("forum")
        thread = request.GET.get("thread")
    except:
        if "forum" in request.keys():
            forum = request["forum"]
            thread = None
        if "thread" in request.keys():
            thread = request["thread"]
            forum = None

    if forum:
        source = "forums_short_name"
        value = forum
    if thread:
        source = "threads_id"
        value = thread

    try:
        since = request.GET.get("since")
        limit = request.GET.get("limit")
        order = request.GET.get("order")
    except:
        since = request.get("since")
        limit = request.get("limit")
        order = request.get("order")

    if since:
        since = "AND date >= '%(since)s'" % {"since": since}
    else:
        since = ""

    if limit:
        limit = "LIMIT %(limit)s" % {"limit": limit}
    else:
        limit = ""

    if order:
        order = "ORDER BY date %(order)s" % {"order": order}
    else:
        order = ""

    sql = "SELECT * FROM posts WHERE %(source)s = '%(value)s' %(since)s %(order)s %(limit)s;" % {
        "source": source,
        "value": value,
        "since": since,
        "order": order,
        "limit": limit
    }

    cursor = connection.cursor()
    cursor.execute(sql)
    results = cursor.fetchall()
    resp = []
    try:
        related = request.GET.getlist("related")
    except:
        related = []
    for result in results:
        post = {
            "id": result[0],
            "message": result[1],
            "date": result[2].isoformat(sep = ' '),
            "likes": result[3],
            "dislikes": result[4],
            "points": result[5],
            "isApproved": True if result[6] == 1 else False,
            "isHighlighted": True if result[7] == 1 else False,
            "isEdited": True if result[8] == 1 else False,
            "isSpam": True if result[9] == 1 else False,
            "isDeleted": True if result[10] == 1 else False,
            "parent": result[11],
            "user": result[12],
            "thread": result[13],
            "forum": result[14]
        }
        for relation in related:
            if relation == "thread":
                post.update({
                    "thread": getThread(post["thread"])
                })
            elif relation == "user":
                post.update({
                    "user": getuser(getSqlVariable(post["user"]))
                })
            elif relation == "forum":
                post.update({
                    "forum": getforum(post["forum"])
                })
        resp.append(post)

    resp = {
        "code": 0,
        "response": resp
    }
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 16
0
def create(request):
    data = request.body.decode('utf-8')
    data = json.loads(data)

   
    date = getSqlVariable(data["date"])
    thread = getSqlVariable(data["thread"])
    message = getSqlVariable(data["message"])
    user = getSqlVariable(data["user"])
    forum = getSqlVariable(data["forum"])

   
    parent = None
    isApproved = False
    isHighlighted = False
    isEdited = False
    isSpam = False
    isDeleted = False

    if "parent" in data.keys():
        parent = data["parent"]
    parent = getSqlVariable(parent)

    if "isApproved" in data.keys():
        isApproved = data["isApproved"]
    if isApproved:
        isApproved = 1
    else:
        isApproved = 0

    if "isHighlighted" in data.keys():
        isHighlighted = data["isHighlighted"]
    if isHighlighted:
        isHighlighted = 1
    else:
        isHighlighted = 0

    if "isEdited" in data.keys():
        isEdited = data["isEdited"]
    if isEdited:
        isEdited = 1
    else:
        isEdited = 0

    if "isSpam" in data.keys():
        isSpam = data["isSpam"]
    if isSpam:
        isSpam = 1
    else:
        isSpam = 0

    if "isDeleted" in data.keys():
        isDeleted = data["isDeleted"]
    if isDeleted:
        isDeleted = 1
    else:
        isDeleted = 0

    sql = "SELECT id, name FROM users WHERE email=%(email)s" % {"email": user}
    cursor = connection.cursor()
    cursor.execute(sql)
    result = cursor.fetchone()
    userId = getSqlVariable(result[0])
    userName = getSqlVariable(result[1])


    sql = "INSERT INTO posts" \
          " (date, threads_id, message, users_email, forums_short_name, parent, isApproved, isHighlighted, isEdited, isSpam, isDeleted, users_name, users_id)" \
          " VALUES (%(date)s, %(thread)s, %(message)s, %(user)s, %(forum)s, %(parent)s, %(isApproved)s, %(isHighlighted)s, %(isEdited)s, %(isSpam)s, %(isDeleted)s, %(user_name)s, %(user_id)s);" \
          % {
            "date": date,
            "thread": thread,
            "message": message,
            "user": user,
            "forum": forum,
            "parent": parent,
            "isApproved": isApproved,
            "isHighlighted": isHighlighted,
            "isEdited": isEdited,
            "isSpam": isSpam,
            "isDeleted": isDeleted,
            "user_name": userName,
            "user_id": userId
          }
    try:
        cursor.execute(sql)
        id = cursor.lastrowid

        if isDeleted == 0:
            sql = "UPDATE threads SET posts = posts + 1 WHERE id=%(id)s" % {"id": thread}
            cursor.execute(sql)

        resp = {
            "code": 0,
            "response":
                {
                    "id": id,
                    "date": date,
                    "thread": thread,
                    "message": message,
                    "user": user,
                    "forum": forum,
                    "parent": parent,
                    "isApproved": isApproved,
                    "isHighlighted": isHighlighted,
                    "isEdited": isEdited,
                    "isSpam": isSpam,
                    "isDeleted": isDeleted
                }
        }
    except IntegrityError:
        resp = {
            "code": 5,
            "response" : {
            }
        }

    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')
Exemplo n.º 17
0
def list(request):
    forum = request.GET.get("forum")
    user = request.GET.get("user")

    if forum:
        source = "forums_short_name"
        value = forum
    if user:
        source = "users_email"
        value = user

    since = request.GET.get("since")
    limit = request.GET.get("limit")
    order = request.GET.get("order")

    if since:
        since = "AND date >= '%(since)s'" % {"since": since}
    else:
        since = ""

    if limit:
        limit = "LIMIT %(limit)s" % {"limit": limit}
    else:
        limit = ""

    if order:
        order = "ORDER BY date %(order)s" % {"order": order}
    else:
        order = ""

    sql = "SELECT * FROM threads WHERE %(source)s = '%(value)s' %(since)s %(order)s %(limit)s;" % {
        "source": source,
        "value": value,
        "since": since,
        "order": order,
        "limit": limit
    }

    related = request.GET.getlist("related")
    cursor = connection.cursor()
    cursor.execute(sql)
    results = cursor.fetchall()
    resp = []
    for result in results:
        post = {
            "id": result[0],
            "title": result[1],
            "slug": result[2],
            "message": result[3],
            "date": result[4].isoformat(sep=' '),
            "likes": result[5],
            "dislikes": result[6],
            "points": result[7],
            "isClosed": True if result[8] == 1 else False,
            "isDeleted": True if result[9] == 1 else False,
            "posts": result[10],
            "forum": result[11],
            "user": result[12]
        }
        for relation in related:
            if relation == "user":
                post.update({"user": getuser(getSqlVariable(post["user"]))})
            elif relation == "forum":
                post.update({"forum": getforum(post["forum"])})
        resp.append(post)

    resp = {"code": 0, "response": resp}
    resp = json.dumps(resp)
    return HttpResponse(resp, content_type='application/json')