diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/blog/models.py | 17 | ||||
-rw-r--r-- | app/lib/templatetags/templatetags/gravatar_local.py | 20 | ||||
-rw-r--r-- | app/lib/templatetags/templatetags/markdown.py | 9 | ||||
-rw-r--r-- | app/lib/templatetags/templatetags/nofollow.py | 15 |
4 files changed, 60 insertions, 1 deletions
diff --git a/app/blog/models.py b/app/blog/models.py index 4ad6022..1b828fe 100644 --- a/app/blog/models.py +++ b/app/blog/models.py @@ -194,12 +194,27 @@ from django_gravatar.helpers import get_gravatar_url, has_gravatar, get_gravatar from django.dispatch import receiver from django_comments.signals import comment_was_posted from django_comments import Comment +from django_comments.moderation import CommentModerator, moderator + +class EntryModerator(CommentModerator): + ''' + Moderate everything except people with multiple approvals + ''' + email_notification = True + + def moderate(self, comment, content_object, request): + previous_approvals = Comment.objects.filter(user_email=comment.email, is_public=True).count() + if previous_approvals > 2: + return False + #do entry build right here so it goes to live site + return True + +moderator.register(Entry, EntryModerator) @receiver(comment_was_posted, sender=Comment) def cache_gravatar(sender, comment, **kwargs): gravatar_exists = has_gravatar(comment.email) grav_dir = settings.IMAGES_ROOT + '/gravcache/' - print(gravatar_exists) if gravatar_exists: url = get_gravatar_url(comment.email, size=60) if not os.path.isdir(grav_dir): diff --git a/app/lib/templatetags/templatetags/gravatar_local.py b/app/lib/templatetags/templatetags/gravatar_local.py new file mode 100644 index 0000000..985ed03 --- /dev/null +++ b/app/lib/templatetags/templatetags/gravatar_local.py @@ -0,0 +1,20 @@ +from django import template +from django.utils.html import escape + +from django_gravatar.helpers import calculate_gravatar_hash + +# Get template.Library instance +register = template.Library() + +def gravatar_hash(user_or_email): + if hasattr(user_or_email, 'email'): + email = user_or_email.email + else: + email = user_or_email + try: + #return get_gravatar_profile_url(email) + return calculate_gravatar_hash(email) + except: + return '' + +register.simple_tag(gravatar_hash) diff --git a/app/lib/templatetags/templatetags/markdown.py b/app/lib/templatetags/templatetags/markdown.py new file mode 100644 index 0000000..dca51f2 --- /dev/null +++ b/app/lib/templatetags/templatetags/markdown.py @@ -0,0 +1,9 @@ +from django import template +import markdown2 as markdown + +register = template.Library() + +def do_markdown(text): + return markdown.markdown(text, safe_mode = False) + +register.filter('markdown', do_markdown)
\ No newline at end of file diff --git a/app/lib/templatetags/templatetags/nofollow.py b/app/lib/templatetags/templatetags/nofollow.py new file mode 100644 index 0000000..85fc166 --- /dev/null +++ b/app/lib/templatetags/templatetags/nofollow.py @@ -0,0 +1,15 @@ +from django.template import Library +import re + +register = Library() + +r_nofollow = re.compile('<a (?![^>]*nofollow)') +s_nofollow = '<a rel="nofollow" ' + +def nofollow(value): + return r_nofollow.sub(s_nofollow, value) + +register.filter(nofollow) + + +re.compile('<a (?![^>]*rel=["\']nofollow[\'"])') |