コード例 #1
0
ファイル: system.py プロジェクト: Joshkunz/PyChannel
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
ファイル: commands.py プロジェクト: Joshkunz/PyChannel
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
ファイル: commands.py プロジェクト: Joshkunz/PyChannel
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))