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()}
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)
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)