From cd08bf386262334063f6c6f2a27dce491e806066 Mon Sep 17 00:00:00 2001 From: shuaikangzhou <863909694@qq.com> Date: Fri, 5 Jan 2024 21:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=85=AC=E4=BC=97=E5=8F=B7?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=EF=BC=8C=E5=8A=A0=E5=BF=AB=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=80=9F=E5=BA=A6=20#271?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DataBase/micro_msg.py | 2 +- app/ui/chat/chat_window.py | 1 + app/ui/contact/contactInfoUi.py | 13 +---- app/ui/contact/contact_window.py | 1 + app/ui/mainview.py | 8 +-- app/ui/menu/__init__.py | 0 app/ui/{ => menu}/about_dialog.py | 2 +- app/ui/{ => menu}/dialog.py | 0 app/util/compress_content.py | 85 ++++++++++++++++--------------- 9 files changed, 55 insertions(+), 57 deletions(-) create mode 100644 app/ui/menu/__init__.py rename app/ui/{ => menu}/about_dialog.py (96%) rename app/ui/{ => menu}/dialog.py (100%) diff --git a/app/DataBase/micro_msg.py b/app/DataBase/micro_msg.py index bb76ea6..ac6a7e1 100644 --- a/app/DataBase/micro_msg.py +++ b/app/DataBase/micro_msg.py @@ -47,7 +47,7 @@ class MicroMsg: FROM Contact INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName LEFT JOIN ContactLabel ON Contact.LabelIDList = ContactLabel.LabelId - WHERE (Type!=4) + WHERE (Type!=4 AND VerifyFlag=0) AND NickName != '' ORDER BY CASE diff --git a/app/ui/chat/chat_window.py b/app/ui/chat/chat_window.py index 90ac45e..1c5e1de 100644 --- a/app/ui/chat/chat_window.py +++ b/app/ui/chat/chat_window.py @@ -99,6 +99,7 @@ class ChatWindow(QWidget, Ui_Form): self.listWidget.setCurrentRow(index) def show_chat(self, contact): + # return self.contacts[0].append(contact.remark) self.contacts[1].append(contact.nickName) contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) diff --git a/app/ui/contact/contactInfoUi.py b/app/ui/contact/contactInfoUi.py index cba0b77..616634b 100644 --- a/app/ui/contact/contactInfoUi.py +++ b/app/ui/contact/contactInfoUi.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'contactInfoUi.ui' # -# Created by: PyQt5 UI code generator 5.15.7 +# Created by: PyQt5 UI code generator 5.15.10 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -20,14 +20,6 @@ class Ui_Form(object): self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setSpacing(0) self.horizontalLayout_3.setObjectName("horizontalLayout_3") - self.label_remark = QtWidgets.QLabel(Form) - self.label_remark.setMaximumSize(QtCore.QSize(120, 100)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_remark.setFont(font) - self.label_remark.setText("") - self.label_remark.setObjectName("label_remark") - self.horizontalLayout_3.addWidget(self.label_remark) self.btn_analysis = QtWidgets.QPushButton(Form) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) @@ -62,6 +54,7 @@ class Ui_Form(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.btn_back.sizePolicy().hasHeightForWidth()) self.btn_back.setSizePolicy(sizePolicy) + self.btn_back.setText("") self.btn_back.setFlat(False) self.btn_back.setObjectName("btn_back") self.horizontalLayout_3.addWidget(self.btn_back) @@ -81,7 +74,6 @@ class Ui_Form(object): self.toolButton_output.setArrowType(QtCore.Qt.NoArrow) self.toolButton_output.setObjectName("toolButton_output") self.horizontalLayout_3.addWidget(self.toolButton_output) - self.horizontalLayout_3.setStretch(0, 1) self.verticalLayout.addLayout(self.horizontalLayout_3) self.stackedWidget = QtWidgets.QStackedWidget(Form) self.stackedWidget.setObjectName("stackedWidget") @@ -103,5 +95,4 @@ class Ui_Form(object): self.btn_analysis.setText(_translate("Form", "统计信息")) self.btn_emotion.setText(_translate("Form", "情感分析")) self.btn_report.setText(_translate("Form", "年度报告")) - self.btn_back.setText(_translate("Form", "退出")) self.toolButton_output.setText(_translate("Form", "导出聊天记录")) diff --git a/app/ui/contact/contact_window.py b/app/ui/contact/contact_window.py index c89de47..9b0803f 100644 --- a/app/ui/contact/contact_window.py +++ b/app/ui/contact/contact_window.py @@ -119,6 +119,7 @@ class ContactWindow(QWidget, Ui_Form): @param contact:联系人对象 @return: """ + # return self.contacts[0].append(contact.remark) self.contacts[1].append(contact.nickName) contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) diff --git a/app/ui/mainview.py b/app/ui/mainview.py index 57d2183..4ea7814 100644 --- a/app/ui/mainview.py +++ b/app/ui/mainview.py @@ -14,11 +14,10 @@ from PyQt5.QtCore import pyqtSignal, QUrl, Qt, QThread, QSize from PyQt5.QtGui import QPixmap, QFont, QDesktopServices, QIcon from PyQt5.QtWidgets import QMainWindow, QLabel, QListWidgetItem, QMessageBox -from app import config -from app.DataBase import msg_db, misc_db, micro_msg_db, hard_link_db, close_db +from app.DataBase import misc_db, micro_msg_db, close_db from app.ui.Icon import Icon from . import mainwindow -from .about_dialog import AboutDialog +from app.ui.menu.about_dialog import AboutDialog from .chat import ChatWindow from .contact import ContactWindow from .tool.tool_window import ToolWindow @@ -121,6 +120,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif): ) def init_ui(self): + self.startBusy() self.menu_output.setIcon(Icon.Output) self.action_output_CSV.setIcon(Icon.ToCSV) self.action_output_CSV.triggered.connect(self.output) @@ -199,6 +199,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif): def stop_loading(self, a0): self.label.setVisible(False) + self.stopBusy() def loading(self, a0): self.load_num += 1 @@ -208,6 +209,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif): self.okSignal.emit(True) self.listWidget.setVisible(True) self.stackedWidget.setVisible(True) + self.stopBusy() if self.load_flag: self.listWidget.setCurrentRow(1) self.stackedWidget.setCurrentIndex(1) diff --git a/app/ui/menu/__init__.py b/app/ui/menu/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/about_dialog.py b/app/ui/menu/about_dialog.py similarity index 96% rename from app/ui/about_dialog.py rename to app/ui/menu/about_dialog.py index a0d428a..13a944c 100644 --- a/app/ui/about_dialog.py +++ b/app/ui/menu/about_dialog.py @@ -3,7 +3,7 @@ from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QDialog try: - from .dialog import Ui_Dialog + from app.ui.menu.dialog import Ui_Dialog from app import config from app.resources import resource_rc except: diff --git a/app/ui/dialog.py b/app/ui/menu/dialog.py similarity index 100% rename from app/ui/dialog.py rename to app/ui/menu/dialog.py diff --git a/app/util/compress_content.py b/app/util/compress_content.py index bb6ab14..628c229 100644 --- a/app/util/compress_content.py +++ b/app/util/compress_content.py @@ -12,7 +12,6 @@ from app.util.protocbuf.msg_pb2 import MessageBytesExtra from ..util.file import get_file - def decompress_CompressContent(data): """ 解压缩Msg:CompressContent内容 @@ -132,47 +131,50 @@ def music_share(data: bytes): def share_card(bytesExtra, compress_content_): - xml = decompress_CompressContent(compress_content_) - root = ET.XML(xml) - appmsg = root.find('appmsg') - title = appmsg.find('title').text + title, des, url, show_display_name, thumbnail, app_logo = '', '', '', '', '', '' try: - des = appmsg.find('des').text - except: - des = '' - url = appmsg.find('url').text - appinfo = root.find('appinfo') - show_display_name = appmsg.find('sourcedisplayname') - sourceusername = appmsg.find('sourceusername') - if show_display_name is not None: - show_display_name = show_display_name.text - else: - if appinfo is not None: - show_display_name = appinfo.find('appname').text - msg_bytes = MessageBytesExtra() - msg_bytes.ParseFromString(bytesExtra) - app_logo = '' - thumbnail = '' - for tmp in msg_bytes.message2: - if tmp.field1 == 3: - thumbnail = tmp.field2 - thumbnail = "\\".join(thumbnail.split('\\')[1:]) - if tmp.field2 == 4: - app_logo = tmp.field2 - app_logo = "\\".join(app_logo.split('\\')[1:]) - if sourceusername is not None: - from app.DataBase import micro_msg_db # 放上面会导致循环依赖 - contact = micro_msg_db.get_contact_by_username(sourceusername.text) - if contact: - app_logo = contact[7] - return { - 'title': escape_js_and_html(title), - 'description': escape_js_and_html(des), - 'url': url, - 'app_name': escape_js_and_html(show_display_name), - 'thumbnail': thumbnail, - 'app_logo': app_logo - } + xml = decompress_CompressContent(compress_content_) + root = ET.XML(xml) + appmsg = root.find('appmsg') + title = appmsg.find('title').text + try: + des = appmsg.find('des').text + except: + des = '' + url = appmsg.find('url').text + appinfo = root.find('appinfo') + show_display_name = appmsg.find('sourcedisplayname') + sourceusername = appmsg.find('sourceusername') + if show_display_name is not None: + show_display_name = show_display_name.text + else: + if appinfo is not None: + show_display_name = appinfo.find('appname').text + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + app_logo = '' + thumbnail = '' + for tmp in msg_bytes.message2: + if tmp.field1 == 3: + thumbnail = tmp.field2 + thumbnail = "\\".join(thumbnail.split('\\')[1:]) + if tmp.field2 == 4: + app_logo = tmp.field2 + app_logo = "\\".join(app_logo.split('\\')[1:]) + if sourceusername is not None: + from app.DataBase import micro_msg_db # 放上面会导致循环依赖 + contact = micro_msg_db.get_contact_by_username(sourceusername.text) + if contact: + app_logo = contact[7] + finally: + return { + 'title': escape_js_and_html(title), + 'description': escape_js_and_html(des), + 'url': url, + 'app_name': escape_js_and_html(show_display_name), + 'thumbnail': thumbnail, + 'app_logo': app_logo + } def get_website_name(url): @@ -269,5 +271,6 @@ def format_bytes(size): if size < 1024 or unit_index >= len(units) - 1: return size, unit_index return convert_bytes(size / 1024, unit_index + 1) + final_size, final_unit_index = convert_bytes(size, 0) return f"{final_size:.2f} {units[final_unit_index]}"