summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/blog/models.py17
-rw-r--r--app/lib/templatetags/templatetags/gravatar_local.py20
-rw-r--r--app/lib/templatetags/templatetags/markdown.py9
-rw-r--r--app/lib/templatetags/templatetags/nofollow.py15
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[\'"])')