mirror of
https://github.com/LC044/WeChatMsg
synced 2025-02-22 02:22:17 +08:00
导出联系人新增性别、地区、签名等字段
This commit is contained in:
parent
e8d6774f5f
commit
1d67b16c3d
@ -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):
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user