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