summaryrefslogtreecommitdiff
path: root/app/jrnl/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/jrnl/models.py')
-rw-r--r--app/jrnl/models.py21
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):