コード例 #1
0
def topic_posts_post(request, board=None, topic=None, form=None):
    """Create a new post within topic.

    :param request: A :class:`pyramid.request.Request` object.

    :type request: pyramid.request.Request
    :rtype: celery.task.Task
    """
    params = _get_params(request)

    if topic is None:
        topic = topic_get(request)
    if board is None:
        board = topic.board
    if form is None:
        form = PostForm(params, request=request)

    if form.validate():
        ratelimit = RateLimiter(request, namespace=board.slug)
        if ratelimit.limited():
            timeleft = ratelimit.timeleft()
            raise RateLimitedError(timeleft)

        ratelimit.limit(board.settings['post_delay'])
        return add_post.delay(request=serialize_request(request),
                              topic_id=topic.id,
                              body=form.body.data,
                              bumped=form.bumped.data)

    raise ParamsInvalidError(form.errors)
コード例 #2
0
def topic_posts_post(request, board=None, topic=None, form=None):
    """Create a new post within topic.

    :param request: A :class:`pyramid.request.Request` object.

    :type request: pyramid.request.Request
    :rtype: celery.task.Task
    """
    params = _get_params(request)

    if topic is None:
        topic = topic_get(request)
    if board is None:
        board = topic.board
    if form is None:
        form = PostForm(params, request=request)

    if form.validate():
        ratelimit = RateLimiter(request, namespace=board.slug)
        if ratelimit.limited():
            timeleft = ratelimit.timeleft()
            raise RateLimitedError(timeleft)

        ratelimit.limit(board.settings['post_delay'])
        return add_post.delay(
            request=serialize_request(request),
            topic_id=topic.id,
            body=form.body.data,
            bumped=form.bumped.data)

    raise ParamsInvalidError(form.errors)
コード例 #3
0
 def _makeOne(self, *args, **kwargs):
     from fanboi2.tasks import add_post
     return add_post.delay(*args, **kwargs)
コード例 #4
0
ファイル: test_tasks.py プロジェクト: pepe5/fanboi2
 def _makeOne(self, *args, **kwargs):
     from fanboi2.tasks import add_post
     return add_post.delay(*args, **kwargs)