mirror of
https://github.com/LC044/WeChatMsg
synced 2025-02-23 03:22:17 +08:00
修改一些emoji解析失败的问题
This commit is contained in:
parent
abefd3c8ea
commit
4e34226a6a
@ -342,9 +342,15 @@ class DocxExporter(ExporterBase):
|
|||||||
n = 0
|
n = 0
|
||||||
index = 0
|
index = 0
|
||||||
newdoc()
|
newdoc()
|
||||||
|
# document = docx.Document()
|
||||||
|
# doc = document.add_paragraph()
|
||||||
for index, message in enumerate(messages):
|
for index, message in enumerate(messages):
|
||||||
if index % 200 == 0 and index:
|
if index % 200 == 0 and index:
|
||||||
|
# doc = document.add_paragraph()
|
||||||
|
filename = os.path.join(origin_docx_path, f"{self.contact.remark}{n}.docx")
|
||||||
|
doc.save(filename)
|
||||||
newdoc()
|
newdoc()
|
||||||
|
|
||||||
type_ = message[2]
|
type_ = message[2]
|
||||||
sub_type = message[3]
|
sub_type = message[3]
|
||||||
timestamp = message[5]
|
timestamp = message[5]
|
||||||
@ -386,9 +392,11 @@ class DocxExporter(ExporterBase):
|
|||||||
print(f"【合并 DOCX {self.contact.remark}】{index + 1}/{len(docs)}")
|
print(f"【合并 DOCX {self.contact.remark}】{index + 1}/{len(docs)}")
|
||||||
doc.insert(0, dx)
|
doc.insert(0, dx)
|
||||||
try:
|
try:
|
||||||
|
# document.save(filename)
|
||||||
doc.save(filename)
|
doc.save(filename)
|
||||||
except PermissionError:
|
except PermissionError:
|
||||||
filename = filename[:-5] + f'{time.time()}' + '.docx'
|
filename = filename[:-5] + f'{time.time()}' + '.docx'
|
||||||
|
# document.save(filename)
|
||||||
doc.save(filename)
|
doc.save(filename)
|
||||||
print(f"【完成导出 DOCX {self.contact.remark}】")
|
print(f"【完成导出 DOCX {self.contact.remark}】")
|
||||||
self.okSignal.emit(1)
|
self.okSignal.emit(1)
|
||||||
|
@ -86,7 +86,7 @@ QCheckBox::indicator:checked{
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow, QCursorGif):
|
||||||
exitSignal = pyqtSignal(bool)
|
exitSignal = pyqtSignal(bool)
|
||||||
okSignal = pyqtSignal(bool)
|
okSignal = pyqtSignal(bool)
|
||||||
|
|
||||||
@ -148,39 +148,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
|||||||
self.setCursorTimeout(100)
|
self.setCursorTimeout(100)
|
||||||
|
|
||||||
self.startBusy()
|
self.startBusy()
|
||||||
|
self.about_view = AboutDialog(main_window=self, parent=self)
|
||||||
|
|
||||||
self.action_help_contact.triggered.connect(
|
|
||||||
lambda: QDesktopServices.openUrl(QUrl("https://blog.lc044.love/post/5")))
|
|
||||||
self.action_help_chat.triggered.connect(
|
|
||||||
lambda: QDesktopServices.openUrl(QUrl("https://blog.lc044.love/post/5")))
|
|
||||||
self.action_help_decrypt.triggered.connect(
|
|
||||||
lambda: QDesktopServices.openUrl(QUrl("https://blog.lc044.love/post/4")))
|
|
||||||
self.listWidget.setVisible(False)
|
|
||||||
self.stackedWidget.setVisible(False)
|
|
||||||
self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
|
|
||||||
tool_item = QListWidgetItem(Icon.Tool_Icon, '工具', self.listWidget)
|
|
||||||
chat_item = QListWidgetItem(Icon.Chat_Icon, '聊天', self.listWidget)
|
|
||||||
contact_item = QListWidgetItem(Icon.Contact_Icon, '好友', self.listWidget)
|
|
||||||
myinfo_item = QListWidgetItem(Icon.Home_Icon, '我的', self.listWidget)
|
|
||||||
tool_window = ToolWindow()
|
|
||||||
tool_window.get_info_signal.connect(self.set_my_info)
|
|
||||||
tool_window.decrypt_success_signal.connect(self.decrypt_success)
|
|
||||||
tool_window.load_finish_signal.connect(self.loading)
|
|
||||||
self.stackedWidget.addWidget(tool_window)
|
|
||||||
self.chat_window = ChatWindow()
|
|
||||||
# chat_window = QWidget()
|
|
||||||
self.stackedWidget.addWidget(self.chat_window)
|
|
||||||
self.contact_window = ContactWindow()
|
|
||||||
self.stackedWidget.addWidget(self.contact_window)
|
|
||||||
label = QLabel('该功能暂不支持哦')
|
|
||||||
label.setFont(QFont("微软雅黑", 50))
|
|
||||||
label.setAlignment(Qt.AlignCenter)
|
|
||||||
self.stackedWidget.addWidget(label)
|
|
||||||
tool_window.load_finish_signal.connect(self.loading)
|
|
||||||
self.statusbar.showMessage('聊天窗口上划到顶部会加载新的聊天记录\n一次不行那就多来几次')
|
|
||||||
self.contact_window.load_finish_signal.connect(self.loading)
|
|
||||||
self.chat_window.load_finish_signal.connect(self.loading)
|
|
||||||
|
|
||||||
def setCurrentIndex(self, row):
|
def setCurrentIndex(self, row):
|
||||||
self.stackedWidget.setCurrentIndex(row)
|
self.stackedWidget.setCurrentIndex(row)
|
||||||
@ -200,7 +168,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
|||||||
self.avatar = QPixmap()
|
self.avatar = QPixmap()
|
||||||
try:
|
try:
|
||||||
img_bytes = misc_db.get_avatar_buffer(wxid)
|
img_bytes = misc_db.get_avatar_buffer(wxid)
|
||||||
except :
|
except:
|
||||||
close_db()
|
close_db()
|
||||||
QMessageBox.critical(self, "数据库错误", "请重启微信后重试")
|
QMessageBox.critical(self, "数据库错误", "请重启微信后重试")
|
||||||
import shutil
|
import shutil
|
||||||
@ -244,7 +212,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
|||||||
# self.startBusy()
|
# self.startBusy()
|
||||||
if self.sender() == self.action_output_CSV:
|
if self.sender() == self.action_output_CSV:
|
||||||
self.outputThread = Output(None, type_=Output.CSV_ALL)
|
self.outputThread = Output(None, type_=Output.CSV_ALL)
|
||||||
self.outputThread.startSignal.connect(lambda x:self.startBusy())
|
self.outputThread.startSignal.connect(lambda x: self.startBusy())
|
||||||
self.outputThread.okSignal.connect(
|
self.outputThread.okSignal.connect(
|
||||||
lambda x: self.message('聊天记录导出成功'))
|
lambda x: self.message('聊天记录导出成功'))
|
||||||
self.outputThread.start()
|
self.outputThread.start()
|
||||||
@ -267,8 +235,8 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
|||||||
关于
|
关于
|
||||||
"""
|
"""
|
||||||
# QMessageBox.about(self, "关于",config.about)
|
# QMessageBox.about(self, "关于",config.about)
|
||||||
about_view = AboutDialog(self)
|
# about_view = AboutDialog(self)
|
||||||
about_view.show()
|
self.about_view.show()
|
||||||
|
|
||||||
def decrypt_success(self):
|
def decrypt_success(self):
|
||||||
QMessageBox.about(self, "解密成功", "请重新启动")
|
QMessageBox.about(self, "解密成功", "请重新启动")
|
||||||
@ -284,6 +252,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
|
|||||||
event.accept()
|
event.accept()
|
||||||
else:
|
else:
|
||||||
event.ignore()
|
event.ignore()
|
||||||
|
|
||||||
def close(self) -> bool:
|
def close(self) -> bool:
|
||||||
close_db()
|
close_db()
|
||||||
super().close()
|
super().close()
|
||||||
|
BIN
app/ui/menu/about_dialog.cp312-win_amd64.pyd
Normal file
BIN
app/ui/menu/about_dialog.cp312-win_amd64.pyd
Normal file
Binary file not shown.
@ -1,46 +0,0 @@
|
|||||||
from PyQt5.QtCore import QSize, QUrl
|
|
||||||
from PyQt5.QtGui import QPixmap
|
|
||||||
from PyQt5.QtWidgets import QApplication, QDialog
|
|
||||||
|
|
||||||
try:
|
|
||||||
from app.ui.menu.dialog import Ui_Dialog
|
|
||||||
from app import config
|
|
||||||
from app.resources import resource_rc
|
|
||||||
except:
|
|
||||||
from dialog import Ui_Dialog
|
|
||||||
from ..resources import resource_rc
|
|
||||||
|
|
||||||
|
|
||||||
class AboutDialog(QDialog, Ui_Dialog):
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
super(AboutDialog, self).__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
self.setWindowTitle('关于')
|
|
||||||
self.resize(QSize(640,520))
|
|
||||||
self.init_ui()
|
|
||||||
|
|
||||||
def init_ui(self):
|
|
||||||
pixmap = QPixmap(':/icons/icons/logo99.png')
|
|
||||||
self.label_logo.setPixmap(pixmap)
|
|
||||||
pixmap = QPixmap(':/icons/icons/weixin.png')
|
|
||||||
self.label_weixin.setPixmap(pixmap)
|
|
||||||
self.label_version.setText('《留痕》')
|
|
||||||
self.textBrowser.setHtml(config.about)
|
|
||||||
self.textBrowser.setOpenExternalLinks(True)
|
|
||||||
self.textBrowser.anchorClicked.connect(self.handleAnchorClicked)
|
|
||||||
|
|
||||||
|
|
||||||
def handleAnchorClicked(self, url):
|
|
||||||
# 打开默认浏览器
|
|
||||||
QUrl(url).openUrl(url)
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import sys
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
dialog = AboutDialog()
|
|
||||||
result = dialog.exec_() # 使用exec_()获取用户的操作结果
|
|
||||||
if result == QDialog.Accepted:
|
|
||||||
print("用户点击了导出按钮")
|
|
||||||
else:
|
|
||||||
print("用户点击了取消按钮")
|
|
||||||
sys.exit(app.exec_())
|
|
@ -9,6 +9,7 @@ emoji.py
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import traceback
|
import traceback
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import sqlite3
|
import sqlite3
|
||||||
@ -52,6 +53,9 @@ def parser_xml(xml_string):
|
|||||||
try:
|
try:
|
||||||
root = ET.fromstring(xml_string)
|
root = ET.fromstring(xml_string)
|
||||||
except:
|
except:
|
||||||
|
res = re.search('<msg>.*</msg>', xml_string)
|
||||||
|
if res:
|
||||||
|
xml_string = res.group()
|
||||||
root = ET.fromstring(xml_string.replace("&", "&"))
|
root = ET.fromstring(xml_string.replace("&", "&"))
|
||||||
emoji = root.find("./emoji")
|
emoji = root.find("./emoji")
|
||||||
# Accessing attributes of the 'emoji' element
|
# Accessing attributes of the 'emoji' element
|
||||||
|
Loading…
Reference in New Issue
Block a user