需求
因为最近总是在钉钉聊天,通常使用表情包来替代文字表达自己的意思,但是发现钉钉的表情包太过于官方,就想着如何把微信收藏的表情包偷过来,一键导入进去。
方法
- 首先需要登录微信
- 如何获取自己收藏的表情包?
- 如何转为图片文件。
- 将表情包文件一键导入钉钉。
实施过程
首先我想到可以使用itchat来登录网页版微信,微信发表情也就是发一张图片,能不能捕捉到这张图片并保存下来呢?答案是可行的,经过几分钟编码后一套流程就出来了,但是有个问题,就是需要一个接收自己表情包的微信,并且这个微信能过使用itchat登录微信,然后我们再将自己的表情包发到这个微信上,每发一张图就保存一次,发完之后给个命令将图片打包成zip文件发过来,代码很简单,逻辑基本也清晰,就是有点耗流量。
结果截图
源码
import itchat
from itchat.content import *
import zipfile,os,shutildef zip_file(dir_name):filelist=[]for root, dirs, files in os.walk(dir_name):for name in files:filelist.append(os.path.join(root, name))print(filelist)zip_file = zipfile.ZipFile('new.zip','a')for tar in filelist:zip_file.write(tar,compress_type=zipfile.ZIP_DEFLATED)zip_file.close()global item #程序运行防止聊天干扰
item=0
@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):global itemif msg['Type'] == 'Text' and msg['Text']=='开启':#如果发送的消息是文本item=1if os.path.exists('new.zip'):os.remove('new.zip')if os.path.exists('./page/'):shutil.rmtree('./page/')return '程序已启动,请发送需要保存的图片!'if msg['Type'] == 'Text' and msg['Text']=='退出':item=0return "程序已退出!"if msg['Type'] == 'Text' and msg['Text']=='表情包文件':item=0zip_file('./page/')itchat.send_file('new.zip',msg['FromUserName'])return "程序已退出!"#如果发送的消息是附件、视屏、图片、语音elif msg['Type'] == "Picture" and item==1:path='./page/' if not os.path.exists(path):os.makedirs(path)filedpx=path+msg["FileName"]#得到文件路径,目录需要手动创建msg.download(filedpx) #下载item=1return '表情包保存成功!'else:pass
itchat.auto_login(hotReload=True,enableCmdQR=1)
myName = itchat.get_friends(update=True)[0]['UserName']
itchat.run()
尾言
获得压缩文件后就可以愉快的导入钉钉了,然后就可以愉快的和老板斗图啦!