Пример #1
0
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)
Пример #2
0
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"]))
Пример #3
0
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))
Пример #4
0
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)