diff options
Diffstat (limited to 'app/jrnl/models.py')
-rw-r--r-- | app/jrnl/models.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/jrnl/models.py b/app/jrnl/models.py index 0deb8d3..5290e37 100644 --- a/app/jrnl/models.py +++ b/app/jrnl/models.py @@ -221,6 +221,27 @@ class EntryModerator(CommentModerator): moderator.register(Entry, EntryModerator) +from django_comments.signals import comment_will_be_posted +from django_comments import akismet + + +@receiver(comment_will_be_posted, sender=Comment) +def spam_check(sender, comment, request, **kwargs): + akismet.USERAGENT = "David Lynch's Python library/1.0" + + try: + real_key = akismet.verify_key(settings.AKISMET_KEY, "https://luxagraf.net/") + if real_key: + is_spam = akismet.comment_check(settings.AKISMET_KEY, "https://luxagraf.net/", request.META['REMOTE_ADDR'], request.META['HTTP_USER_AGENT'], comment_content=comment.comment) + if is_spam: + return False + else: + return True + except akismet.AkismetError as e: + print('Something went wrong, allowing comment') + print(e.response, e.statuscode) + return True + @receiver(comment_was_posted, sender=Comment) def cache_gravatar(sender, comment, **kwargs): |