From 1d67b16c3d52c934c244fd42f3e0a84cea82b6bd Mon Sep 17 00:00:00 2001 From: shuaikangzhou <863909694@qq.com> Date: Thu, 4 Jan 2024 20:18:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E8=81=94=E7=B3=BB=E4=BA=BA?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=80=A7=E5=88=AB=E3=80=81=E5=9C=B0=E5=8C=BA?= =?UTF-8?q?=E3=80=81=E7=AD=BE=E5=90=8D=E7=AD=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DataBase/output_pc.py | 21 ++++++++++++++++++--- app/ui/mainview.py | 4 +++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/DataBase/output_pc.py b/app/DataBase/output_pc.py index 12912d9..6d19734 100644 --- a/app/DataBase/output_pc.py +++ b/app/DataBase/output_pc.py @@ -5,11 +5,11 @@ import traceback from PyQt5.QtCore import pyqtSignal, QThread from PyQt5.QtWidgets import QFileDialog - from app.DataBase.exporter_csv import CSVExporter from app.DataBase.exporter_docx import DocxExporter from app.DataBase.exporter_html import HtmlExporter from app.DataBase.exporter_txt import TxtExporter +from app.DataBase.hard_link import decodeExtraBuf from .package_msg import PackageMsg from ..DataBase import media_msg_db, hard_link_db, micro_msg_db, msg_db from ..log import logger @@ -18,10 +18,12 @@ from ..util.image import get_image os.makedirs('./data/聊天记录', exist_ok=True) + class Output(QThread): """ 发送信息线程 """ + startSignal = pyqtSignal(int) progressSignal = pyqtSignal(int) rangeSignal = pyqtSignal(int) okSignal = pyqtSignal(int) @@ -74,6 +76,7 @@ class Output(QThread): "csv files (*.csv);;all files(*.*)") if not filename[0]: return + self.startSignal.emit(1) filename = filename[0] # columns = ["用户名", "消息内容", "发送时间", "发送状态", "消息类型", "isSend", "msgId"] columns = ['localId', 'TalkerId', 'Type', 'SubType', @@ -99,17 +102,29 @@ class Output(QThread): "csv files (*.csv);;all files(*.*)") if not filename[0]: return + self.startSignal.emit(1) filename = filename[0] # columns = ["用户名", "消息内容", "发送时间", "发送状态", "消息类型", "isSend", "msgId"] columns = ['UserName', 'Alias', 'Type', 'Remark', 'NickName', 'PYInitial', 'RemarkPYInitial', 'smallHeadImgUrl', - 'bigHeadImgUrl'] + 'bigHeadImgUrl', 'label', 'gender', 'telephone', 'signature', 'country/region', 'province', 'city'] contacts = micro_msg_db.get_contact() # 写入CSV文件 with open(filename, mode='w', newline='', encoding='utf-8-sig') as file: writer = csv.writer(file) writer.writerow(columns) # 写入数据 - writer.writerows(contacts) + # writer.writerows(contacts) + for contact in contacts: + detail = decodeExtraBuf(contact[9]) + gender_code = detail.get('gender') + if gender_code == 0: + gender = '未知' + elif gender_code == 1: + gender = '男' + else: + gender = '女' + writer.writerow([*contact[:9], contact[10], gender,detail.get('telephone'),detail.get('signature'),*detail.get('region')]) + self.okSignal.emit(1) def run(self): diff --git a/app/ui/mainview.py b/app/ui/mainview.py index b41a520..57d2183 100644 --- a/app/ui/mainview.py +++ b/app/ui/mainview.py @@ -216,14 +216,16 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif): self.stackedWidget.setCurrentIndex(0) def output(self): - self.startBusy() + # self.startBusy() if self.sender() == self.action_output_CSV: self.outputThread = Output(None, type_=Output.CSV_ALL) + self.outputThread.startSignal.connect(lambda x:self.startBusy()) self.outputThread.okSignal.connect( lambda x: self.message('聊天记录导出成功')) self.outputThread.start() elif self.sender() == self.action_output_contacts: self.outputThread = Output(None, type_=Output.CONTACT_CSV) + self.outputThread.startSignal.connect(lambda x: self.startBusy()) self.outputThread.okSignal.connect( lambda x: self.message('联系人导出成功')) self.outputThread.start()