mirror of
https://github.com/LC044/WeChatMsg
synced 2025-02-21 01:52:35 +08:00
修复db文件空格路径的bug
This commit is contained in:
parent
5849b8f692
commit
3ceb9e2340
@ -4,12 +4,14 @@
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="84e65474-7da9-466d-baf3-cc88dde3ffdd" name="变更" comment="头像支持显示二进制">
|
||||
<list default="true" id="84e65474-7da9-466d-baf3-cc88dde3ffdd" name="变更" comment="显示联系人信息">
|
||||
<change afterPath="$PROJECT_DIR$/app/DataBase/msg.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/DataBase/output_pc.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Ui/decrypt/decrypt.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/Ui/decrypt/decrypt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Ui/mainview.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/Ui/mainview.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/person.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/person.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/ui_pc/contact/contactUi.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/ui_pc/contact/contactUi.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/ui_pc/contact/contactUi.ui" beforeDir="false" afterPath="$PROJECT_DIR$/app/ui_pc/contact/contactUi.ui" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/ui_pc/contact/contact_window.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/ui_pc/contact/contact_window.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/ui_pc/contact/contactInfo.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/ui_pc/contact/contactInfo.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -105,7 +107,7 @@
|
||||
<recent name="D:\Project\PythonProject\WeChatMsg\app\Ui" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="Python.decrypt_window">
|
||||
<component name="RunManager" selected="Python.main">
|
||||
<configuration name="CAvatar" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="WeChatMsg" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
@ -169,6 +171,27 @@
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="main" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="WeChatMsg" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="misc" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="WeChatMsg" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
@ -211,34 +234,13 @@
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="test_avatar" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="WeChatMsg" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/app/components" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/app/components/test_avatar.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.main" />
|
||||
<item itemvalue="Python.decrypt_window" />
|
||||
<item itemvalue="Python.misc" />
|
||||
<item itemvalue="Python.CAvatar" />
|
||||
<item itemvalue="Python.contact_info_ui" />
|
||||
<item itemvalue="Python.test_avatar" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
@ -254,13 +256,6 @@
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1672848140146</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00013" summary="修复部分bug">
|
||||
<created>1680232548867</created>
|
||||
<option name="number" value="00013" />
|
||||
<option name="presentableId" value="LOCAL-00013" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1680232548867</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00014" summary="新增对话情感分析,增加窗口自适应,新增emotion界面">
|
||||
<created>1680441801589</created>
|
||||
<option name="number" value="00014" />
|
||||
@ -597,7 +592,14 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1700058733119</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="62" />
|
||||
<task id="LOCAL-00062" summary="显示联系人信息">
|
||||
<created>1700060367255</created>
|
||||
<option name="number" value="00062" />
|
||||
<option name="presentableId" value="LOCAL-00062" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1700060367255</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="63" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="UnknownFeatures">
|
||||
@ -633,7 +635,6 @@
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="增加群二维码" />
|
||||
<MESSAGE value="支持导出csv格式聊天记录" />
|
||||
<MESSAGE value="重构一些class,删除一些不必要的文件" />
|
||||
<MESSAGE value="用stackedWidget实现导航栏" />
|
||||
@ -658,7 +659,8 @@
|
||||
<MESSAGE value="修改UI" />
|
||||
<MESSAGE value="新增联系人头像组件" />
|
||||
<MESSAGE value="头像支持显示二进制" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="头像支持显示二进制" />
|
||||
<MESSAGE value="显示联系人信息" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="显示联系人信息" />
|
||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
|
||||
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
|
||||
</component>
|
||||
|
11
app/DataBase/msg.py
Normal file
11
app/DataBase/msg.py
Normal file
@ -0,0 +1,11 @@
|
||||
import os.path
|
||||
import sqlite3
|
||||
|
||||
DB = None
|
||||
cursor = None
|
||||
misc_path = "./app/Database/Msg/MSG0.db"
|
||||
# misc_path = './Msg/Misc.db'
|
||||
if os.path.exists(misc_path):
|
||||
DB = sqlite3.connect(misc_path, check_same_thread=False)
|
||||
# '''创建游标'''
|
||||
cursor = DB.cursor()
|
52
app/DataBase/output_pc.py
Normal file
52
app/DataBase/output_pc.py
Normal file
@ -0,0 +1,52 @@
|
||||
import os
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
|
||||
|
||||
class Output(QThread):
|
||||
"""
|
||||
发送信息线程
|
||||
"""
|
||||
progressSignal = pyqtSignal(int)
|
||||
rangeSignal = pyqtSignal(int)
|
||||
okSignal = pyqtSignal(int)
|
||||
i = 1
|
||||
CSV = 0
|
||||
DOCX = 1
|
||||
HTML = 2
|
||||
|
||||
def __init__(self, ta_u, parent=None, type_=DOCX):
|
||||
super().__init__(parent)
|
||||
self.sec = 2 # 默认1000秒
|
||||
self.ta_username = ta_u
|
||||
self.msg_id = 0
|
||||
self.output_type = type_
|
||||
self.total_num = 0
|
||||
|
||||
@log
|
||||
def to_csv(self, conRemark, path):
|
||||
origin_docx_path = f"{os.path.abspath('.')}/data/聊天记录/{conRemark}"
|
||||
filename = f"{os.path.abspath('.')}/data/聊天记录/{conRemark}/{conRemark}.csv"
|
||||
last_timestamp = 1601968667000
|
||||
columns = ["用户名", "消息内容", "发送时间", "发送状态", "消息类型", "isSend", "msgId"]
|
||||
df = pd.DataFrame()
|
||||
df["用户名"] = np.array(list(map(lambda x: x[7], messages)))
|
||||
df["消息内容"] = np.array(list(map(lambda x: x[8], messages)))
|
||||
df["发送时间"] = np.array(list(map(lambda x: time_format(x[6]), messages)))
|
||||
df["发送状态"] = np.array(list(map(lambda x: x[3], messages)))
|
||||
df["消息类型"] = np.array(list(map(lambda x: x[2], messages)))
|
||||
df["isSend"] = np.array(list(map(lambda x: x[4], messages)))
|
||||
df["msgId"] = np.array(list(map(lambda x: x[0], messages)))
|
||||
df.to_csv(filename)
|
||||
# df.to_csv('data.csv')
|
||||
print(df)
|
||||
self.progressSignal.emit(self.num)
|
||||
|
||||
def run(self):
|
||||
if self.output_type == self.DOCX:
|
||||
return
|
||||
elif self.output_type == self.CSV:
|
||||
# print("线程导出csv")
|
||||
self.to_csv(self.ta_username, "path")
|
@ -51,7 +51,11 @@ class DecryptControl(QWidget, decryptUi.Ui_Dialog):
|
||||
def get_db(self):
|
||||
self.db_path, _ = QFileDialog.getOpenFileName(self, 'Open file', r'..', "Database files (*.db)")
|
||||
if self.db_path:
|
||||
if self.db_path.isascii():
|
||||
if ' ' in self.db_path:
|
||||
self.label_db.setText('数据库未就绪')
|
||||
QMessageBox.critical(self, "错误", "db文件路径请不要带有空格\n可以放在D:\\\\data 目录下")
|
||||
self.db_path = ''
|
||||
elif self.db_path.isascii():
|
||||
self.label_db.setText('数据库已就绪')
|
||||
return self.db_path
|
||||
else:
|
||||
|
@ -12,11 +12,13 @@ from PyQt5.QtGui import *
|
||||
from PyQt5.QtWidgets import *
|
||||
|
||||
from app import config
|
||||
from app.DataBase import data
|
||||
from app.Ui import mainwindow
|
||||
from app.Ui.Icon import Icon
|
||||
from app.Ui.chat import chat
|
||||
from app.Ui.contact import contact
|
||||
from app.components.prompt_bar import PromptBar
|
||||
from app.person import Me
|
||||
|
||||
|
||||
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
|
||||
@ -29,7 +31,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
|
||||
self.setWindowIcon(Icon.MainWindow_Icon)
|
||||
|
||||
self.setAttribute(Qt.WA_AttributeCount)
|
||||
|
||||
self.Me = Me(data.get_myinfo())
|
||||
self.chatView = chat.ChatController(self.Me, parent=None)
|
||||
self.lay = QHBoxLayout()
|
||||
self.page_chat.setLayout(self.lay)
|
||||
|
@ -5,7 +5,7 @@ from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QPixmap
|
||||
|
||||
from app.DataBase import data
|
||||
from app.ui_pc.Icon import Icon
|
||||
from app.Ui.Icon import Icon
|
||||
|
||||
|
||||
# from app.Ui.Icon import Icon
|
||||
|
@ -2,7 +2,7 @@ from PyQt5.QtCore import *
|
||||
from PyQt5.QtWidgets import *
|
||||
|
||||
from app import person
|
||||
from app.DataBase import output
|
||||
from app.DataBase.output import Output
|
||||
from app.Ui.Icon import Icon
|
||||
from .contactInfoUi import Ui_Form
|
||||
from .userinfo import userinfo
|
||||
@ -97,10 +97,21 @@ class ContactInfo(QWidget, Ui_Form):
|
||||
"""
|
||||
self.stackedWidget.setCurrentWidget(self.view_userinfo)
|
||||
if self.sender() == self.toDocxAct:
|
||||
self.outputThread = output.Output(self.Me, self.contact.wxid)
|
||||
print('功能暂未实现')
|
||||
QMessageBox.warning(self,
|
||||
"别急别急",
|
||||
"马上就实现该功能"
|
||||
)
|
||||
return
|
||||
self.outputThread = Output(self.Me, self.contact.wxid)
|
||||
elif self.sender() == self.toCSVAct:
|
||||
QMessageBox.warning(self,
|
||||
"别急别急",
|
||||
"马上就实现该功能"
|
||||
)
|
||||
print('开始导出csv')
|
||||
self.outputThread = output.Output(self.Me, self.contact.wxid, type_=output.Output.CSV)
|
||||
return
|
||||
self.outputThread = Output(self.Me, self.contact.wxid, type_=Output.CSV)
|
||||
print('导出csv')
|
||||
elif self.sender() == self.toHtmlAct:
|
||||
print('功能暂未实现')
|
||||
|
Loading…
Reference in New Issue
Block a user