Requests a ham/spam/unsure classification for content.
        
        If rechecking or updating previously checked content, the content_id must be passed in.
        An example of this usage:
            * checking the subsequent post after previewing the content
            * checking the subsequent post after solving a CAPTCHA
        
        Keyword arguments:
        content_id -- Unique identifier of the content to recheck/update.
        post_title -- The title of the content.
        post_body -- The body of the content.
        author_name -- The name of the content author.
        author_url -- The homepage/website URL of the content author.
        author_mail -- The e-mail address of the content author.
        author_ip -- The IP address of the content author.
        author_id -- The local user ID on the client site of the content author.
        author_open_id -- List of Open IDs of the content author.
        author_created -- When the author's account was created.
            Can be raw UNIX timestamp, or a Python date or datetime (in UTC).
        allow_unsure -- If false, Mollom will only return ham or spam. Defaults to true.
        strictness -- A string denoting the strictness of Mollom checks to perform. 
            Can be "strict", "normal" or "relaxed". Defaults to "normal".
        content_type -- Type of content submitted. A type of "user" indicates user registration content.
        honeypot -- The value of a client-side honeypot form element, if non-empty.
        
        Returns:
        content_id -- Unique identifier if the content checked.
        spam_classification -- "ham", "spam" or "unsure".

def check_content(self, 
                      content_id=None,
                      post_title=None, 
                      post_body=None, 
                      author_name=None, 
                      author_url=None, 
                      author_mail=None, 
                      author_ip=None, 
                      author_id=None, 
                      author_open_id=None,
                      author_created=None,
                      allow_unsure=None,
                      strictness=None,
                      content_type=None,
                      honeypot=None
                      ):
        """Requests a ham/spam/unsure classification for content.
        
        If rechecking or updating previously checked content, the content_id must be passed in.
        An example of this usage:
            * checking the subsequent post after previewing the content
            * checking the subsequent post after solving a CAPTCHA
        
        Keyword arguments:
        content_id -- Unique identifier of the content to recheck/update.
        post_title -- The title of the content.
        post_body -- The body of the content.
        author_name -- The name of the content author.
        author_url -- The homepage/website URL of the content author.
        author_mail -- The e-mail address of the content author.
        author_ip -- The IP address of the content author.
        author_id -- The local user ID on the client site of the content author.
        author_open_id -- List of Open IDs of the content author.
        author_created -- When the author's account was created.
            Can be raw UNIX timestamp, or a Python date or datetime (in UTC).
        allow_unsure -- If false, Mollom will only return ham or spam. Defaults to true.
        strictness -- A string denoting the strictness of Mollom checks to perform. 
            Can be "strict", "normal" or "relaxed". Defaults to "normal".
        content_type -- Type of content submitted. A type of "user" indicates user registration content.
        honeypot -- The value of a client-side honeypot form element, if non-empty.
        
        Returns:
        content_id -- Unique identifier if the content checked.
        spam_classification -- "ham", "spam" or "unsure".
        """
        if content_id:
            recheck_content_endpoint = Template("${rest_root}/content/${content_id}")
            url = recheck_content_endpoint.substitute(rest_root=self._rest_root, content_id=content_id)
        else:
            check_content_endpoint = Template("${rest_root}/content")
            url = check_content_endpoint.substitute(rest_root=self._rest_root)
        
        data = {"checks": "spam"}
        if post_title:
            data["postTitle"] = post_title
        if post_body:
            data["postBody"] = post_body
        if author_name:
            data["authorName"] = author_name
        if author_url:
            data["authorUrl"] = author_url
        if author_mail:
            data["authorMail"] = author_mail
        if author_ip:
            data["authorIp"] = author_ip
        if author_id:
            data["authorId"] = author_id
        if author_open_id:
            data["authorOpenId"] = " ".join(author_open_id)
        if author_created:
            if isinstance(author_created, datetime.date):  # and datetime.datetime is a subclass of datetime.date
                data["authorCreated"] = calendar.timegm(author_created.timetuple())
            else:
                data["authorCreated"] = author_created
        if allow_unsure:
            data["unsure"] = 1 if allow_unsure else 0
        if strictness:
            data["strictness"] = strictness
        if content_type:
            data["contentType"] = content_type
        if honeypot:
            data["honeypot"] = honeypot
            
        return self.__post_request(url, data)