/QzEmoji

Translate Qzone emoji to text

Primary LanguagePythonMIT LicenseMIT

QzEmoji

将Qzone表情链接转换为文字.

python Test rules black

This project is a component of Qzone3TG.

Motivation

Qzone似乎并没有提供表情序号到中文名称的接口. 通过爬虫和观察js代码等等方式也并不能完全获取所有的表情名称. 本仓库试图建立这一转换的查询表.

Usage

首先通过正则表达式等等方式解析id:

>>> import qzemoji.utils as qeu
>>> qeu.resolve(url='http://qzonestyle.gtimg.cn/qzone/em/e400343.gif')
400343
>>> qeu.resolve(tag='[em]e400343[/em]')
400343
>>> qeu.resolve('no kwargs specified')
AssertionError
>>> qeu.resolve(tag='[em] e400343[/em]')
ValueError('[em] e400343[/em]')

Query in Python

>>> import qzemoji as qe        # this will auto update database, so set a proxy in advance.
>>> await qe.query(400343)
'🐷'

Note

目前,QzEmoji 使用发布在 aioqzone-index 上的数据库。这意味着您可能需要在导入 qzemoji 之前配置代理。 QzEmoji 将读取 HTTP_PROXY, HTTPS_PROXY, WS_PROXY, WSS_PROXY

Auto Update

0.2起, 第一次查询前会试图更新数据库.

禁用自动更新:

qe.enable_auto_update = False

自动更新每次启动只会运行一次. 提前初始化以免拖慢您的第一次查询(推荐): 目前从GitHub检查更新. 您可以按如下方式设置代理:

>>> await qe.auto_update()

Customize Your Copy

您可以随意修改emoji.db以适应用户的需要. 自定义内容存储在MyEmoji表中,与Emoji表隔离. 自动更新只会更新Emoji表,自定义内容保持不变。自定义内容优先级高于默认(MyEmoji优先于Emoji).

>>> qe.set(400343, 'Hello QzEmoji')
>>> qe.query(400343)    # 'Hello QzEmoji' in MyEmoji, '🐷' in Emoji
'Hello QzEmoji'

Export Your Customization

您可以导出您的自定义,从而与他人分享。比如,给此仓库提交PR,从而补充我们的默认表。

>>> qe.export()
Path('data/emoji.yml')  # default export to data/emoji.yml

Query in SQL

下载emoji.db.

使用sqlite查询emoji表:

column description
eid Emoji ID
text Corresponding text
select text from emoji where eid=400343;

Build Database

poetry install --no-dev
poetry run script/build.py

Contribute

您可以通过 Python 包提供的 export 接口导出完整的数据库,并按上文所述导出 yml 文件.

See CONTRIBUTING

License