def moderate_post(request, post): """Determines the moderation behavior for the request and asset posted. Returns True when the post has been handled (pre-moderated or blocked), and returns False when the post is approved for posting.""" # save a copy of this content to our database # do this check first of all to avoid any possible spam filtering if request.typepad_user.is_superuser or request.typepad_user.is_featured_member: return False post_status = moderation_status(request, post) if post_status is None: # blocked; don't post to typepad return True if is_spam(request, post): # spammy posts get pre-moderated post_status = Queue.SPAM # if moderation_status says the asset can be published, let it be so # what to do about uploads though? if post_status == Queue.APPROVED: return False queue = Queue() queue.asset_type = post.type_id queue.user_id = request.typepad_user.url_id queue.user_display_name = request.typepad_user.display_name queue.user_userpic = request.typepad_user.userpic queue.summary = unicode(post) queue.status = post_status queue.save() content = QueueContent() content.queue = queue content.data = json.dumps(post.to_dict()) if request.FILES: content.attachment = request.FILES['file'] content.user_token = request.oauth_client.token.to_string() content.ip_addr = request.META['REMOTE_ADDR'] content.save() if post.type_id == 'comment': request.flash.add('notices', _('Thank you. Your comment is awaiting moderation by the Administrator.')) else: request.flash.add('notices', _('Thank you. Your post is awaiting moderation by the Administrator.')) return True