def search_tag(tag): tag = tag.replace("'", "") filters = [] if tag != "": filters.append(Contains("tags", tag)) posts = Post.select(filters, [("pid", GuessSetting, "pid"), ("poster", User, "sid")]) posts = Post.prepare_view(current_user, posts) return render_template("main.html", **{"posts": posts})
def search_pid(pid): filters = [] pid = pid.replace("'", "") if pid != "": filters.append(Equal("pid", pid)) posts = Post.select(filters, [("pid", GuessSetting, "pid"), ("poster", User, "sid")]) posts = Post.prepare_view(current_user, posts) return render_template("main.html", **{"posts": posts})
def search_user(user): filters = [] user = user.replace("'", "") if user != "": filters.append(Equal("tagged", "'%s'" %user, GuessSetting.table)) posts = Post.select(filters, [("pid", GuessSetting, "pid"), ("poster", User, "sid")]) posts = Post.prepare_view(current_user, posts) return render_template("main.html", **{"posts": posts})
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})
def guess(): print("Guessing!") print(request.json) pid = int(request.json.get("pid")) guess = request.json.get("guess", None) post = Post.select([Equal("pid", pid)], [("pid", GuessSetting, "pid"), ("poster", User, "sid")])[0] gs = GuessSetting.select([Equal("gsid", post.gsid)], [])[0] user = current_user if not post.allow_guesses or not user.uni == post.tagged or gs.remaining < 1: flash(u'Guessing not permitted') return redirect("/") gs.remaining -= 1 if guess is not None and guess == post.uni: gs.matched = True send_guessed_mail(post.email, user.uni) send_guesser_mail(user.email, guess) flash(u"You've found a match! You should go ahead and message them!") print "MATCH!!!!! LOVE IS IN THE AIR" else: flash(u"Guess '%s' not matched :(" % guess) gs.save() return redirect("/")