将Qzone表情链接转换为文字.
This project is a component of Qzone3TG.
Qzone似乎并没有提供表情序号到中文名称的接口. 通过爬虫和观察js代码等等方式也并不能完全获取所有的表情名称. 本仓库试图建立这一转换的查询表.
首先通过正则表达式等等方式解析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]')
>>> 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
。
从0.2
起, 第一次查询前会试图更新数据库.
禁用自动更新:
qe.enable_auto_update = False
自动更新每次启动只会运行一次. 提前初始化以免拖慢您的第一次查询(推荐): 目前从GitHub检查更新. 您可以按如下方式设置代理:
>>> await qe.auto_update()
您可以随意修改emoji.db
以适应用户的需要. 自定义内容存储在MyEmoji
表中,与Emoji
表隔离. 自动更新只会更新Emoji
表,自定义内容保持不变。自定义内容优先级高于默认(MyEmoji
优先于Emoji
).
>>> qe.set(400343, 'Hello QzEmoji')
>>> qe.query(400343) # 'Hello QzEmoji' in MyEmoji, '🐷' in Emoji
'Hello QzEmoji'
您可以导出您的自定义,从而与他人分享。比如,给此仓库提交PR,从而补充我们的默认表。
>>> qe.export()
Path('data/emoji.yml') # default export to data/emoji.yml
下载emoji.db.
使用sqlite
查询emoji
表:
column | description |
---|---|
eid | Emoji ID |
text | Corresponding text |
select text from emoji where eid=400343;
poetry install --no-dev
poetry run script/build.py
您可以通过 Python 包提供的 export
接口导出完整的数据库,并按上文所述导出 yml 文件.
See CONTRIBUTING