Ejemplo n.º 1
0
def own_posts():
    filters = []
    user = current_user
    filters.append(Equal("poster", user.sid))
    filters.append(Equal("is_anonymous", False))
    filters = Filter.and_reduce(filters)
    posts = Post.select(filters, [("pid", GuessSetting, "pid"), ("poster", User, "sid")])
    posts = Post.prepare_view(user, posts)
    return render_template("main.html", **{"posts": posts})
Ejemplo n.º 2
0
def like():
    if type(current_user.is_authenticated) == bool or not current_user.is_authenticated():
        flash(u'You must be logged in to like posts')
        return redirect("/")

    pid = int(request.args.get("pid"))
    post = Post.select([Equal("pid", pid)], [])
    filters = [Equal("pid", pid), Equal("sid", current_user.sid)]
    filter = Filter.and_reduce(filters)
    likes = Like.select(filter, [])
    if not likes and post:
        print("Like")
        post = post[0]
        post.like_count += 1
        post.save()
        l = Like(pid=pid, sid=current_user.sid)
        l.save()
    else:
        flash("You can't like the same post twice")
    return redirect("/")
Ejemplo n.º 3
0
def search():
    text = request.json.replace("'", "")
    pid = request.form.get("post_id", "").replace("'", "").replace(";", "")
    contains = request.form.get("contains", "").replace("'", "").replace(";","")
    tagged = request.form.get("tagged", "").replace("'", "").replace(";", "")
    tags = request.form.get("tags", "").replace("'", "").replace(";", "")
    filters = []
    search_text = contains if contains != "" else text
    if pid != "":
        pid_filter = Equal("pid", int(pid))
        filters.append(pid_filter)
    if search_text != "" and search_text is not None:
        filters.append(Contains("post_body", search_text))
    if tagged != "" and tagged is not None:
        filters.append(Contains("post_body", tagged))
    for tag in [x for x in tags.split(",") if not x == ""]:
        tag = tag.strip()
        filters.append(Contains("tags", tag))
    filters = Filter.and_reduce(filters)
    posts = Post.select(filters, [("pid", GuessSetting, "pid"), ("poster", User, "sid")])

    posts = Post.prepare_view(current_user, posts)
    return render_template("main.html", **{"posts": posts})