跳转到主要内容

Python的emoji转换(unicode emoji与运营商emoji之间的转换)库(emoji4unicode项目包装库)

项目描述

e4u库是emoji4unicode的捆绑库

它用于处理unicode emoji和运营商emoji。主要功能是:

  • 将unicode emoji转换为运营商emoji

  • 将运营商emoji转换为unicode emoji

该库可以处理的unicode emoji的详细信息请见http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html

该库参考了emoji4unicode和django-bpmobile的源代码

安装

sudo pip install e4u

或者

sudo pip install git+git://github.com/lambdalisue/e4u.git#egg=e4u

必需(自动安装)

  • BeautifulSoup(用于分析运营商网站和emoji4unicode.xml)

如何使用

该库使用 emoji4unicode.xml 创建表情符号的转换表。因此,您需要从文件系统或互联网上加载它。建议使用 e4u.load() 方法从谷歌代码的 trunk url 加载,如果您无法连接到互联网,请使用 e4u.load(file=r"some/path/emoji4unicode.xml") 代替。 emoji4unicode.xml 可以在 http://code.google.com/p/emoji4unicode/source/browse/trunk/data/emoji4unicode.xml 找到

一旦加载 emoji4unicode.xml,您可以使用 e4u.translate() 方法进行表情符号的翻译。要将运营商的表情符号转换为 Unicode 表情符号,请使用类似 contents = e4u.translate(contents, **e4u.DOCOMO_TRANSLATE_PROFILE) 的方法。要将 Unicode 表情符号转换为运营商的表情符号,请使用类似 contents = e4u.translate(contents, reverse=True, **e4u.DOCOMO_TRANSLATE_PROFILE) 的方法

以下代码描述了如何使用该库。

import e4u
e4u.load()
carrier_contents = "\xF8\x9F \xF8\xA0 \xF8\xA1"         # Sun, Cloud, Rain in DoCoMo emoji
unicode_contents = u"\u2600 \u2601 \u2614"                      # Sun, Cloud, Rain in Unicode emoji

# DoCoMo => Unicode
contents = carrier_contents
expected = unicode_contents
# Translate emoji with DoCoMo profile (= {'carrier':'docomo', 'encoding':'cp932'})
result = e4u.translate(contents, **e4u.DOCOMO_TRANSLATE_PROFILE)

assert isinstance(result, unicode)              # return value is Unicode
assert result == expected

# Unicode => DoCoMo
contents = unicode_contents
expected = carrier_contents
# Translate emoji with DoCoMo profile with reverse=True
result = e4u.translate(contents, reverse=True, **e4u.DOCOMO_TRANSLATE_PROFILE)

assert isinstance(result, unicode)              # return value is Unicode
assert result.encode('cp932', 'replace') == expected

支持的运营商

目前仅支持 DoCoMo、KDDI、SoftBank 和 Google。您可以传递给 e4u.translate() 方法的运营商名称是

  • text - 文本

  • docomo_img - 使用 DoCoMo 表情符号的 img 标签

  • kddi_img - 使用 KDDI 表情符号的 img 标签(推荐用于不支持表情符号的 PC 或其他设备)

  • softbank_img - 使用 SoftBank 表情符号的 img 标签(不推荐,SoftBank 可能会拒绝外部访问,因此无法工作)

  • google - 使用 GMail 表情符号。我还没有想出如何使用它,但以防万一。

  • docomo - 使用 DoCoMo 表情符号。SJIS 格式(解码为 Unicode)

  • kddi - 使用 KDDI 表情符号。SJIS 格式(解码为 Unicode)

  • softbank - 使用 SoftBank 表情符号。Unicode 格式

方法

e4u.load(filename=None, url=r"http://emoji4unicode.googlecode.com/svn/trunk/data/emoji4unicode.xml", loader_class=loader.Loader)

用于加载 emoji4unicode.xml 并构建内部转换表。该方法不会影响两次。使用 e4u.reload() 代替重新加载库。

e4u.reload(filename=None, url=r"http://emoji4unicode.googlecode.com/svn/trunk/data/emoji4unicode.xml", loader_class=loader.Loader)

强制重新加载 emoji4unicode.xml,一般使用时请使用 e4u.load() 方法。

e4u.has_loaded()

如果已调用 e4u.load() 方法,则返回 True。一般使用时请使用 e4u.load() 方法。永远不要这样做

# stupid way
import e4u
if not e4u.has_loaded():
    e4u.reload()

# smarter
import e4u
e4u.load()
e4u.get(id)

获取 id 的表情符号符号实例。id 在 http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html 中描述。从 ID 中去除 'e-',如 '000' 对于 'e-000',并以 Unicode 格式传递。

e4u.translate(source, carrier, reverse=False, encoding=None)

将源中包含的 Unicode 表情符号转换为运营商的表情符号或反向。

e4u.translate_char(source_char, carrier, reverse=False, encoding=None)

将 Unicode 表情符号字符转换为运营商的表情符号字符。比 e4u.translate() 方法更快,但不能处理文本。用于字母转换。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分发

e4u-0.2rc1.tar.gz (50.7 kB 查看哈希值)

上传于 源代码

支持者