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})
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("/")
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})