Mercurial > public > sg101
changeset 925:98d2388b6bb2
Smiley app refactor for Django 1.7.7 upgrade.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 12 Apr 2015 21:08:56 -0500 (2015-04-13) |
parents | 78b459d4ab17 |
children | 22ed8451e163 |
files | core/markup.py shoutbox/models.py smiley/__init__.py smiley/templatetags/smiley_tags.py smiley/utils.py |
diffstat | 5 files changed, 73 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- a/core/markup.py Thu Apr 09 19:43:07 2015 -0500 +++ b/core/markup.py Sun Apr 12 21:08:56 2015 -0500 @@ -5,7 +5,7 @@ import markdown as _markdown from django.utils.encoding import force_unicode -from smiley import SmilifyMarkdown +from smiley.utils import SmilifyMarkdown from core.mdexts.urlize import UrlizeExtension from core.mdexts.deleted import DelExtension from core.html import clean_html
--- a/shoutbox/models.py Thu Apr 09 19:43:07 2015 -0500 +++ b/shoutbox/models.py Sun Apr 12 21:08:56 2015 -0500 @@ -7,7 +7,7 @@ from django.contrib.auth.models import User from django.utils.html import escape, urlize -from smiley import smilify_html +from smiley.utils import smilify_html class Shout(models.Model):
--- a/smiley/__init__.py Thu Apr 09 19:43:07 2015 -0500 +++ b/smiley/__init__.py Sun Apr 12 21:08:56 2015 -0500 @@ -1,70 +0,0 @@ -""" -Smiley classes and functions. - -""" -from django.utils.safestring import SafeData -from django.utils.html import conditional_escape - -from smiley.models import Smiley - - -class SmilifyHtml(object): - """ - A class to "smilify" text by replacing text with HTML img tags for smiley - images. - """ - def __init__(self): - self.map = Smiley.objects.get_smiley_map() - - def convert(self, value, autoescape=False): - """ - Converts and returns the supplied text with the HTML version of the - smileys. - """ - if not value: - return u'' - - if not autoescape or isinstance(value, SafeData): - esc = lambda x: x - else: - esc = conditional_escape - - words = value.split() - for i, word in enumerate(words): - if word in self.map: - words[i] = self.map[word] - else: - words[i] = esc(words[i]) - return u' '.join(words) - - -class SmilifyMarkdown(object): - """ - A class to "smilify" text by replacing text with Markdown image syntax for - smiley images. - """ - def __init__(self, relative_urls=True): - self.regexes = Smiley.objects.get_smiley_regexes( - relative_urls=relative_urls) - - def convert(self, s): - """ - Returns a string copy of the input s that has the smiley codes replaced - with Markdown for smiley images. - """ - if not s: - return u'' - - for regex, repl in self.regexes: - s = regex.sub(repl, s) - return s - - -def smilify_html(value, autoescape=False): - """ - A convenience function to "smilify" text by replacing text with HTML - img tags of smilies. - """ - s = SmilifyHtml() - return s.convert(value, autoescape=autoescape) -
--- a/smiley/templatetags/smiley_tags.py Thu Apr 09 19:43:07 2015 -0500 +++ b/smiley/templatetags/smiley_tags.py Sun Apr 12 21:08:56 2015 -0500 @@ -1,11 +1,12 @@ """ -Template tags for the smiley application. +Template tags for the smiley application. """ from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe from smiley.models import Smiley +from smiley.utils import smilify_html register = template.Library() @@ -14,7 +15,6 @@ @stringfilter def smiley_html(value, autoescape=False): """A filter to "smilify" text by replacing text with HTML img tags of smilies.""" - from smiley import smilify_html return mark_safe(smilify_html(value, autoescape=autoescape)) smiley_html.needs_autoescape = True
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smiley/utils.py Sun Apr 12 21:08:56 2015 -0500 @@ -0,0 +1,69 @@ +""" +Smiley classes and functions. + +""" +from django.utils.safestring import SafeData +from django.utils.html import conditional_escape + +from models import Smiley + + +class SmilifyHtml(object): + """ + A class to "smilify" text by replacing text with HTML img tags for smiley + images. + """ + def __init__(self): + self.map = Smiley.objects.get_smiley_map() + + def convert(self, value, autoescape=False): + """ + Converts and returns the supplied text with the HTML version of the + smileys. + """ + if not value: + return u'' + + if not autoescape or isinstance(value, SafeData): + esc = lambda x: x + else: + esc = conditional_escape + + words = value.split() + for i, word in enumerate(words): + if word in self.map: + words[i] = self.map[word] + else: + words[i] = esc(words[i]) + return u' '.join(words) + + +class SmilifyMarkdown(object): + """ + A class to "smilify" text by replacing text with Markdown image syntax for + smiley images. + """ + def __init__(self, relative_urls=True): + self.regexes = Smiley.objects.get_smiley_regexes( + relative_urls=relative_urls) + + def convert(self, s): + """ + Returns a string copy of the input s that has the smiley codes replaced + with Markdown for smiley images. + """ + if not s: + return u'' + + for regex, repl in self.regexes: + s = regex.sub(repl, s) + return s + + +def smilify_html(value, autoescape=False): + """ + A convenience function to "smilify" text by replacing text with HTML + img tags of smilies. + """ + s = SmilifyHtml() + return s.convert(value, autoescape=autoescape)