解决由于引用消息解析失败导致的闪退问题

This commit is contained in:
shuaikangzhou 2023-12-13 22:40:56 +08:00
parent 9ca75c73e2
commit 5cab0e77f8
4 changed files with 35 additions and 18 deletions

View File

@ -78,8 +78,11 @@ class MediaMsg:
# 获取 FFmpeg 可执行文件的路径 # 获取 FFmpeg 可执行文件的路径
ffmpeg_path = get_ffmpeg_path() ffmpeg_path = get_ffmpeg_path()
# 调用 FFmpeg # 调用 FFmpeg
# subprocess.run([ffmpeg_path, f'''-loglevel quiet -y -f s16le -i {pcm_path} -ar 44100 -ac 1 {mp3_path}'''], check=True) cmd = f'''{ffmpeg_path} -loglevel quiet -y -f s16le -i {pcm_path} -ar 44100 -ac 1 {mp3_path}'''
cmd = f'''{get_ffmpeg_path()} -loglevel quiet -y -f s16le -i {pcm_path} -ar 44100 -ac 1 {mp3_path}''' system(cmd)
# 源码运行的时候下面的有效
# 这里不知道怎么捕捉异常
cmd = f'''{os.path.join(os.getcwd(), 'app', 'resources', 'ffmpeg.exe')} -loglevel quiet -y -f s16le -i {pcm_path} -ar 44100 -ac 1 {mp3_path}'''
system(cmd) system(cmd)
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
print(f"Error: {e}") print(f"Error: {e}")

View File

@ -49,6 +49,9 @@ class ExportDialog(QDialog):
layout.addWidget(checkbox) layout.addWidget(checkbox)
layout.addWidget(self.progress_bar) layout.addWidget(self.progress_bar)
layout.addWidget(self.progress_label) layout.addWidget(self.progress_label)
self.notice_label = QLabel(self)
self.notice_label.setText("注意:导出HTML时选择图片、视频、语音、表情包特别是表情包\n会导致大大影响导出速度,请合理选择导出的类型")
layout.addWidget(self.notice_label)
hlayout = QHBoxLayout(self) hlayout = QHBoxLayout(self)
self.export_button = QPushButton("导出") self.export_button = QPushButton("导出")
self.export_button.clicked.connect(self.export_data) self.export_button.clicked.connect(self.export_data)

View File

@ -188,7 +188,7 @@ class DecryptControl(QWidget, decryptUi.Ui_Dialog):
# 音频数据库文件 # 音频数据库文件
target_database = "app/DataBase/Msg/MediaMSG.db" target_database = "app/DataBase/Msg/MediaMSG.db"
# 源数据库文件列表 # 源数据库文件列表
source_databases = [f"app/DataBase/Msg/MediaMSG{i}.db" for i in range(1, 20)] source_databases = [f"app/DataBase/Msg/MediaMSG{i}.db" for i in range(1, 200)]
shutil.copy2("app/DataBase/Msg/MediaMSG0.db", target_database) # 使用一个数据库文件作为模板 shutil.copy2("app/DataBase/Msg/MediaMSG0.db", target_database) # 使用一个数据库文件作为模板
# 合并数据库 # 合并数据库
try: try:

View File

@ -48,19 +48,30 @@ def parser_reply(data: bytes):
'displayname': '用户名', 'displayname': '用户名',
} }
} }
root = ET.XML(xml_content) try :
appmsg = root.find('appmsg') root = ET.XML(xml_content)
msg_type = int(appmsg.find('type').text) appmsg = root.find('appmsg')
title = appmsg.find('title').text msg_type = int(appmsg.find('type').text)
refermsg_content = appmsg.find('refermsg').find('content').text title = appmsg.find('title').text
refermsg_type = int(appmsg.find('refermsg').find('type').text) refermsg_content = appmsg.find('refermsg').find('content').text
refermsg_displayname = appmsg.find('refermsg').find('displayname').text refermsg_type = int(appmsg.find('refermsg').find('type').text)
return { refermsg_displayname = appmsg.find('refermsg').find('displayname').text
'type': msg_type, return {
'title': escape_js_and_html(title), 'type': msg_type,
'refer': None if refermsg_type != 1 else { 'title': escape_js_and_html(title),
'type': refermsg_type, 'refer': None if refermsg_type != 1 else {
'content': escape_js_and_html(refermsg_content), 'type': refermsg_type,
'displayname': escape_js_and_html(refermsg_displayname), 'content': escape_js_and_html(refermsg_content),
'displayname': escape_js_and_html(refermsg_displayname),
}
}
except:
return {
'type': 57,
'title': "发生错误",
'refer': {
'type': '1',
'content': '引用错误',
'displayname': '用户名',
}
} }
}