Esempio n. 1
0
def post_quest_idea(request, title, content, name, email):
    user = User.objects.get(username=settings.QUEST_IDEAS_USERNAME)

    text = "Name: {}\n\nEmail: {}".format(name, email)

    replied_comment, parent_comment, reply_content, external_content, category, title = validate_and_clean_comment(
        user,
        reply_text=text,
        reply_content=content,
        title=title,
    )

    comment = Comment.create_and_post(
        request,
        user,
        False,
        category,
        reply_content,
        parent_comment=parent_comment,
        reply_text=text,
        replied_comment=replied_comment,
        external_content=external_content,
        fact_metadata={},
        title=title,
    )

    return {'comment': comment.details()}
Esempio n. 2
0
def post_quest_idea(request, title, content, name, email):
    user = User.objects.get(username=settings.QUEST_IDEAS_USERNAME)

    text = "Name: {}\n\nEmail: {}".format(name, email)

    replied_comment, parent_comment, reply_content, external_content, category, title = validate_and_clean_comment(
        user,
        reply_text=text,
        reply_content=content,
        title=title,
    )

    comment = Comment.create_and_post(
        request,
        user,
        False,
        category,
        reply_content,
        parent_comment=parent_comment,
        reply_text=text,
        replied_comment=replied_comment,
        external_content=external_content,
        fact_metadata={},
        title=title,
    )

    return {'comment': comment.details()}
Esempio n. 3
0
def post_comment(request, user, post_data, persist_url=True):
    reply_text = post_data.get('reply_text', '')

    try:
        replied_comment, parent_comment, reply_content, external_content, category, title = (
            validate_and_clean_comment(
                user,
                reply_text=reply_text,
                parent_comment=post_data.get('parent_comment'),
                replied_comment=post_data.get('replied_comment'),
                reply_content=post_data.get('reply_content'),
                category=post_data.get('category'),
                external_content=post_data.get('external_content'),
                title=post_data.get('title'),
            ))

        post_anon = True
        if category and category == MONSTER_GROUP:
            post_anon = False

        comment = Comment.create_and_post(
            request,
            user,
            post_anon,  # Anonymous.
            category,
            reply_content,
            parent_comment=parent_comment,
            reply_text=reply_text,
            replied_comment=replied_comment,
            external_content=external_content,
            title=title,
        )

        post_pending_url = comment.details().url

        if persist_url:
            if category and category.name == MONSTER_GROUP:
                post_pending_url = '/monster/{0}'.format(
                    base36encode(comment.thread.op.id))
            user.kv.post_pending_signup_url.set(post_pending_url)

        return comment

    except ServiceError, e:
        # Silently drop the post if an error occurs.
        # We tried validating it prior to posting, but something went wrong between then and now
        # and it no longer validates. Should be rare.
        Metrics.logged_out_reply_dropped.record(request,
                                                extra_info=extra_info,
                                                service_error=e)
Esempio n. 4
0
def post_comment(request, user, post_data, persist_url=True):
    reply_text = post_data.get("reply_text", "")

    try:
        replied_comment, parent_comment, reply_content, external_content, category, title = validate_and_clean_comment(
            user,
            reply_text=reply_text,
            parent_comment=post_data.get("parent_comment"),
            replied_comment=post_data.get("replied_comment"),
            reply_content=post_data.get("reply_content"),
            category=post_data.get("category"),
            external_content=post_data.get("external_content"),
            title=post_data.get("title"),
        )

        post_anon = True
        if category and category == MONSTER_GROUP:
            post_anon = False

        comment = Comment.create_and_post(
            request,
            user,
            post_anon,  # Anonymous.
            category,
            reply_content,
            parent_comment=parent_comment,
            reply_text=reply_text,
            replied_comment=replied_comment,
            external_content=external_content,
            title=title,
        )

        post_pending_url = comment.details().url

        if persist_url:
            if category and category.name == MONSTER_GROUP:
                post_pending_url = "/monster/{0}".format(base36encode(comment.thread.op.id))
            user.kv.post_pending_signup_url.set(post_pending_url)

        return comment

    except ServiceError, e:
        # Silently drop the post if an error occurs.
        # We tried validating it prior to posting, but something went wrong between then and now
        # and it no longer validates. Should be rare.
        Metrics.logged_out_reply_dropped.record(request, extra_info=extra_info, service_error=e)