Package: django-emoji
Emoji is a port of the GitHub gemgemojito Django.This app got two main use cases:It’ll try to replace items between :: with emojis, for instance: dog :(without the spaces) will become an emoji of a dog (:dog:).It’ll try to replace unicode characters with emojis, for instance ‘✌️’ with a victory symbol (:v:).Version 2 releaseThanks toTim Schillingwe now haveautoescapingenabled with the
same logic as core Django. Because this might be a breaking change for
users of this app the major version has been bumped. Apart from the
filters adds the standard XSS protection of Django there are no other
changes.To get the old behavior of the app wrap the filter like this:{% autoescape off %}
{{ emoji|emoji_replace }}
{% endautoescape %}Quick startInstalldjango-emoji <https://pypi.python.org/pypi/django-emoji>from PyPi:pip install django-emojiAdd “emoji” to your INSTALLED_APPS setting like this:INSTALLED_APPS = (
    ...
    'emoji',
)Include the emoji URLconf in your project urls.py like this if you want to be able to get a JSON list of emojis:url(r'^emoji/', include('emoji.urls')),Visithttp://127.0.0.1:8000/emoji/all.jsonto get a json object with all emojis avilablePython versionsSupport for Django 1.5, 1.6, 1.7, 1.8 and 1.9 with their respective versions of Python 2/3 support.SettingsThese are settings that can be configured in yoursettings.py:Settings nameDescriptionEMOJI_IMG_TAGThe template string that is used for creating the <img>
tag when converting an emoji to an image. Default:<imgsrc="{0}"alt="{1}"title="{2}"class="emoji">EMOJI_ALT_AS_UNICODEWhether to put the unicode character that corresponds to
an emoji as the alt text inreplace_unicode.
Default:TrueEMOJI_REPLACE_HTML_ENTITIESWhether to automatically convert HTML encoded unicode
characters into emojis. Default:TrueUsageAPIPythonThe Python classEmojiis a singleton and will return the same
instance between instantiations. On load Emoji will load the name of
all the emojis and their unicode equivalents into memory.CallDescriptionEmoji.names()A list of all known emojisEmoji.replace(replacement_string)Replaces all emojis between::Emoji.name_for(character)The name for a given unicode characterEmoji.replace_unicode(replacement_string)Replaces all known unicode emojisEmoji.replace_html_entities(replacement_string)Replaces all HTML encoded unicode charactersJavascriptThe browser version caches all the emojis inlocalStorageso
there won’t be that many roundtrips to the server just to get a list
of the emojis.NOTE: Depends on jQuery or some other library that exports$.get.CallDescriptionEmoji.setDataUrl(url)Where to fetch the list of all available emojisEmoji.load()Load all emojis from the serverEmoji.get(/*emoji*/)Get the URL to an emoji of a name or return the names of all known emojisEmoji.replace(replacementString)Replace all::style emojis with imagesEmoji.clear()Empty the browser cacheExamplesReplace an emoji using Python templates by loading the tags in your template:{% load emoji_tags %}
{{ blog_post.body|emoji_replace }}
{{ blog_post.body|emoji_replace_unicode }}
{{ blog_post.body|emoji_replace_html_entities }}Replace emojis using Javascript (to for instance show a preview before the user saves what it is they are writing):{% load emoji_tags %}

<script src="{% static 'emoji/js/emoji.js' %}"></script>
{% emoji_load %}

Emoji.get('dog') // => url stub to dog emoji or falsy
Emoji.get() // => all emojis available

Emoji.replace("It's raining :cats: and :dogs:.") // => It's raining <img src="..." alt="cats" class="emoji"> and <img src="..." alt="dogs" class="emoji">Whatemoji_loaddoes is that it sets the endpoint to retrieve the listing of all the available emojis and thus only works if the emoji urls has been included.It is the equivalent of doing:Emoji.setDataUrl('{% url 'emoji:list.json' %}').load();Which is also available as template stub:{% include 'emoji/script.html' %}Usage from inside Python where the Emoji class mimics some of the behavior of a dict:from emoji import Emoji
Emoji['dog'] # => url stub to dog emoji or None
'dog' in Emoji # => True
Emoji.keys() # => a list of all emojis by name
Emoji.replace("It's raining :cats: and :dogs:") # => It's raining <img src="..." alt="cats" class="emoji"> and <img src="..." alt="dogs" class="emoji">Replacing unicode EmojisEmoji has the ability to give you the name of an emoji from a unicode
character. It can also replace every instance of emoji characters in a
string with their image replacements.Usage:>>> from emoji import Emoji
>>> Emoji.name_for(u'\U000148b')
kiss
>>> Emoji.replace_unicode(u'I send a \U0001f48b!')
I send a <img src="/static/emoji/img/kiss.png" alt="kiss" class="emoji">Note:For best use of the unicode replacements use a build of Python that
was built with wide unicode character support. From version 1.2 there
is code added for dealing with unicode surrogate pairs and it should
work well on narrow builds. But this has not been production tested so
try it out properly. Please report any bugs found.To test whether you got a narrow or wide build of Python run the
following, if you get an exception it means you’re running a narrow build.:>>> print(unichr(0x0001f48b))
ValueError: unichr() arg not in range(0x10000) (narrow Python build)