From e71c600d10e0340fe183059a1d8892c7825f9484 Mon Sep 17 00:00:00 2001 From: lanvent Date: Sun, 2 Apr 2023 03:46:09 +0800 Subject: [PATCH] feat: new itchat qrcode generator --- channel/wechat/wechat_channel.py | 19 +++++++++++++++++-- docker/build.latest.sh | 2 +- requirements.txt | 1 + voice/azure/azure_voice.py | 2 -- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/channel/wechat/wechat_channel.py b/channel/wechat/wechat_channel.py index df9c0ac..0f818cb 100644 --- a/channel/wechat/wechat_channel.py +++ b/channel/wechat/wechat_channel.py @@ -64,6 +64,21 @@ def _check(func): return func(self, cmsg) return wrapper +#可用的二维码生成接口 +#https://api.qrserver.com/v1/create-qr-code/?size=400×400&data=https://www.abc.com +#https://api.isoyu.com/qr/?m=1&e=L&p=20&url=https://www.abc.com +def qrCallback(uuid,status,qrcode): + # logger.debug("qrCallback: {} {}".format(uuid,status)) + if status == '0': + import qrcode + url = f"https://login.weixin.qq.com/l/{uuid}" + qr = qrcode.QRCode(border=1) + qr.add_data(url) + qr.make(fit=True) + qr.print_ascii(invert=True) + + qr_api="https://api.isoyu.com/qr/?m=1&e=L&p=20&url={}".format(url) + print("You can also scan QRCode in website below:\n{}".format(qr_api)) @singleton class WechatChannel(ChatChannel): def __init__(self): @@ -76,13 +91,13 @@ class WechatChannel(ChatChannel): # login by scan QRCode hotReload = conf().get('hot_reload', False) try: - itchat.auto_login(enableCmdQR=2, hotReload=hotReload) + itchat.auto_login(enableCmdQR=2, hotReload=hotReload, qrCallback=qrCallback) except Exception as e: if hotReload: logger.error("Hot reload failed, try to login without hot reload") itchat.logout() os.remove("itchat.pkl") - itchat.auto_login(enableCmdQR=2, hotReload=hotReload) + itchat.auto_login(enableCmdQR=2, hotReload=hotReload, qrCallback=qrCallback) else: raise e self.user_id = itchat.instance.storageClass.userName diff --git a/docker/build.latest.sh b/docker/build.latest.sh index 186ab92..0f06f82 100644 --- a/docker/build.latest.sh +++ b/docker/build.latest.sh @@ -1,4 +1,4 @@ #!/bin/bash -cd .. && docker build -f Dockerfile \ +cd .. && docker build -f docker/Dockerfile.latest \ -t zhayujie/chatgpt-on-wechat . \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ba2d26e..a38c622 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ PyQRCode>=1.2.1 pysilk>=0.0.1 pysilk_mod>=1.6.0 pyttsx3>=2.90 +qrcode>=7.4.2 requests>=2.28.2 webuiapi>=0.6.2 wechaty>=0.10.7 diff --git a/voice/azure/azure_voice.py b/voice/azure/azure_voice.py index 86191e1..3d9b860 100644 --- a/voice/azure/azure_voice.py +++ b/voice/azure/azure_voice.py @@ -6,12 +6,10 @@ import json import os import time import azure.cognitiveservices.speech as speechsdk -from aip import AipSpeech from bridge.reply import Reply, ReplyType from common.log import logger from common.tmp_dir import TmpDir from voice.voice import Voice -from voice.audio_convert import get_pcm_from_wav from config import conf """ Azure voice