from akismet import Akismet,AkismetError from logging import getLogger logger = getLogger('event.akismet') def check(self,key,blog_url,raw): request = self.REQUEST api = Akismet(key,blog_url) if not api.verify_key(): logger.error('API key invalid') return False try: return api.comment_check( raw.get('body',''), data={ # the following should be REMOTE_ADDR if you're not behind Apache 'user_ip':request.get('HTTP_X_FORWARDED_FOR'), 'user_agent':request.get('HTTP_USER_AGENT','unknown'), 'referrer':request.get('HTTP_REFERER','unknown'), 'comment_type':'comment', 'comment_author':raw.get('author',''), 'comment_author_email':raw.get('email',''), 'HTTP_ACCEPT':request.get('HTTP_ACCEPT',''), }, ) except AkismetError: logger.error('Akismet failed',exc_info=True) return False