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)
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)
def _makeOne(self, *args, **kwargs): from fanboi2.tasks import add_post return add_post.delay(*args, **kwargs)