def check_valid(sender, meta): "Validates the current post" if not meta["post"].text: flash("Post has no contents...") abort(400) require_subject = "ReplySubject" in meta["post"].board.Require if meta["post"].is_reply else "ThreadSubject" in meta["post"].board.Require require_author = "ReplyAuthor" in meta["post"].board.Require if meta["post"].is_reply else "ThreadAuthor" in meta["post"].board.Require require_content = "ReplyContent" in meta["post"].board.Require if meta["post"].is_reply else "ThreadContent" in meta["post"].board.Require if require_subject and not meta["post"].subject: flash("Reply subject required.") if meta["post"].is_reply else flash("Thread subject required.") abort(400) if require_author and not meta["post"].author: flash("Reply author name required.") if meta["post"].is_reply else flash("Thread author required.") abort(400) if require_content and not meta["post"].text: flash("Reply content name required.") if meta["post"].is_reply else flash("Thread content required.") abort(400); if meta["post"].is_reply and meta["post"].board.ReplyLimit and \ len(Thread.from_id(meta["post"].thread)) >= meta["post"].board.ReplyLimit: flash("Reply limit reached...") abort(400)
def sticky(sender, meta): if not session.get("level"): raise ImmediateRedirect(redirect(request.environ["HTTP_REFERER"])) if meta["post"].is_reply: thread = Thread.from_id(meta["post"].thread) else: thread = meta["post"] thread.sticky = True thread.save(score=int(time.time())*2) plug.fire("lock_thread", thread=thread) if meta["post"].is_reply: raise ImmediateRedirect(redirect(request.environ["HTTP_REFERER"]))
def bump(sender, meta): if meta["post"].is_reply: thread = Thread.from_id(meta["post"].thread) if not hasattr(thread, "auto_bump"): thread.auto_bump = 0 thread.auto_bump += 1 if thread.auto_bump <= meta["post"].board.AutoBump: thread.save() else: flash("Auto bump limit reached.") abort(400) raise ImmediateRedirect(redirect(url_for("board", board=str(thread.board) ))) raise ImmediateRedirect(redirect(request.http_referer))
WEIGHTED_LETTERS = "aaaaaaaaaaaabbbccccddddddeeeeeeeeeeeeeeeeeeeeffffggggh\ hhhhhhhhhiiiiiiiiiiiikllllllmmmmnnnnnnnnnnoooooooooooppprrrrrrrrrsssssssss\ tttttttttttttttuuuuuvvwwwyyy" def random_word(*args): return "".join(random.sample(WEIGHTED_LETTERS, random.randint(*args))) lr = 50 if len(sys.argv) < 2 else int(sys.argv[1]) ctx = app.test_request_context() ctx.push() app.preprocess_request() t = Thread( text = "This thread is a stress test on the loading speeds of the page", subject = "Stress Test", author = "Admin", capcode = "## Admin ##", board = "g") t.save() for z in xrange(lr): xz = Reply(t.id, text = random_word(10, 80), subject = random_word(0, 15), author = random_word(0, 22), board = "g") xz.save() print "Added Reply %s (%s)"% (xz.id, z)