mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-20 13:47:15 +08:00
@@ -202,8 +202,10 @@ class ChatChannel(Channel):
|
|||||||
reply = self._generate_reply(new_context)
|
reply = self._generate_reply(new_context)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
elif context.type == ContextType.IMAGE or context.type == ContextType.FUNCTION \
|
elif context.type == ContextType.IMAGE: # 图片消息,当前仅做下载保存到本地的逻辑
|
||||||
or context.type == ContextType.FILE: # 图片/文件消息及函数调用等,当前无默认逻辑
|
cmsg = context["msg"]
|
||||||
|
cmsg.prepare()
|
||||||
|
elif context.type == ContextType.FUNCTION or context.type == ContextType.FILE: # 文件消息及函数调用等,当前无默认逻辑
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
logger.error("[WX] unknown context type: {}".format(context.type))
|
logger.error("[WX] unknown context type: {}".format(context.type))
|
||||||
|
|||||||
@@ -319,5 +319,8 @@ class WeworkChannel(ChatChannel):
|
|||||||
wework.send_video(receiver, video_path)
|
wework.send_video(receiver, video_path)
|
||||||
logger.info("[WX] sendVideo, receiver={}".format(receiver))
|
logger.info("[WX] sendVideo, receiver={}".format(receiver))
|
||||||
elif reply.type == ReplyType.VOICE:
|
elif reply.type == ReplyType.VOICE:
|
||||||
|
current_dir = os.getcwd()
|
||||||
|
voice_file = reply.content.split("/")[-1]
|
||||||
|
reply.content = os.path.join(current_dir, "tmp", voice_file)
|
||||||
wework.send_file(receiver, reply.content)
|
wework.send_file(receiver, reply.content)
|
||||||
logger.info("[WX] sendFile={}, receiver={}".format(reply.content, receiver))
|
logger.info("[WX] sendFile={}, receiver={}".format(reply.content, receiver))
|
||||||
|
|||||||
@@ -39,16 +39,16 @@ def get_room_info(wework, conversation_id):
|
|||||||
|
|
||||||
def cdn_download(wework, message, file_name):
|
def cdn_download(wework, message, file_name):
|
||||||
data = message["data"]
|
data = message["data"]
|
||||||
url = data["cdn"]["url"]
|
|
||||||
auth_key = data["cdn"]["auth_key"]
|
|
||||||
aes_key = data["cdn"]["aes_key"]
|
aes_key = data["cdn"]["aes_key"]
|
||||||
file_size = data["cdn"]["size"]
|
file_size = data["cdn"]["size"]
|
||||||
|
file_type = 2
|
||||||
|
file_id = data["cdn"]["file_id"]
|
||||||
|
|
||||||
# 获取当前工作目录,然后与文件名拼接得到保存路径
|
# 获取当前工作目录,然后与文件名拼接得到保存路径
|
||||||
current_dir = os.getcwd()
|
current_dir = os.getcwd()
|
||||||
save_path = os.path.join(current_dir, "tmp", file_name)
|
save_path = os.path.join(current_dir, "tmp", file_name)
|
||||||
|
|
||||||
result = wework.wx_cdn_download(url, auth_key, aes_key, file_size, save_path)
|
result = wework.c2c_cdn_download(file_id, aes_key, file_size, file_type, save_path)
|
||||||
logger.debug(result)
|
logger.debug(result)
|
||||||
|
|
||||||
|
|
||||||
@@ -69,6 +69,12 @@ def c2c_download_and_convert(wework, message, file_name):
|
|||||||
wav_file = base_name + ".wav"
|
wav_file = base_name + ".wav"
|
||||||
pilk.silk_to_wav(save_path, wav_file, rate=24000)
|
pilk.silk_to_wav(save_path, wav_file, rate=24000)
|
||||||
|
|
||||||
|
# 删除SILK文件
|
||||||
|
try:
|
||||||
|
os.remove(save_path)
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class WeworkMessage(ChatMessage):
|
class WeworkMessage(ChatMessage):
|
||||||
def __init__(self, wework_msg, wework, is_group=False):
|
def __init__(self, wework_msg, wework, is_group=False):
|
||||||
|
|||||||
Reference in New Issue
Block a user