Merge branch 'LC044:master' into master

This commit is contained in:
STDquantum 2024-01-05 22:15:03 +08:00 committed by GitHub
commit 380c9cc1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 55 additions and 57 deletions

View File

@ -47,7 +47,7 @@ class MicroMsg:
FROM Contact FROM Contact
INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName
LEFT JOIN ContactLabel ON Contact.LabelIDList = ContactLabel.LabelId LEFT JOIN ContactLabel ON Contact.LabelIDList = ContactLabel.LabelId
WHERE (Type!=4) WHERE (Type!=4 AND VerifyFlag=0)
AND NickName != '' AND NickName != ''
ORDER BY ORDER BY
CASE CASE

View File

@ -99,6 +99,7 @@ class ChatWindow(QWidget, Ui_Form):
self.listWidget.setCurrentRow(index) self.listWidget.setCurrentRow(index)
def show_chat(self, contact): def show_chat(self, contact):
# return
self.contacts[0].append(contact.remark) self.contacts[0].append(contact.remark)
self.contacts[1].append(contact.nickName) self.contacts[1].append(contact.nickName)
contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG)

View File

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'contactInfoUi.ui' # 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 # 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. # 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 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setSpacing(0) self.horizontalLayout_3.setSpacing(0)
self.horizontalLayout_3.setObjectName("horizontalLayout_3") 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) self.btn_analysis = QtWidgets.QPushButton(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -62,6 +54,7 @@ class Ui_Form(object):
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_back.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.btn_back.sizePolicy().hasHeightForWidth())
self.btn_back.setSizePolicy(sizePolicy) self.btn_back.setSizePolicy(sizePolicy)
self.btn_back.setText("")
self.btn_back.setFlat(False) self.btn_back.setFlat(False)
self.btn_back.setObjectName("btn_back") self.btn_back.setObjectName("btn_back")
self.horizontalLayout_3.addWidget(self.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.setArrowType(QtCore.Qt.NoArrow)
self.toolButton_output.setObjectName("toolButton_output") self.toolButton_output.setObjectName("toolButton_output")
self.horizontalLayout_3.addWidget(self.toolButton_output) self.horizontalLayout_3.addWidget(self.toolButton_output)
self.horizontalLayout_3.setStretch(0, 1)
self.verticalLayout.addLayout(self.horizontalLayout_3) self.verticalLayout.addLayout(self.horizontalLayout_3)
self.stackedWidget = QtWidgets.QStackedWidget(Form) self.stackedWidget = QtWidgets.QStackedWidget(Form)
self.stackedWidget.setObjectName("stackedWidget") self.stackedWidget.setObjectName("stackedWidget")
@ -103,5 +95,4 @@ class Ui_Form(object):
self.btn_analysis.setText(_translate("Form", "统计信息")) self.btn_analysis.setText(_translate("Form", "统计信息"))
self.btn_emotion.setText(_translate("Form", "情感分析")) self.btn_emotion.setText(_translate("Form", "情感分析"))
self.btn_report.setText(_translate("Form", "年度报告")) self.btn_report.setText(_translate("Form", "年度报告"))
self.btn_back.setText(_translate("Form", "退出"))
self.toolButton_output.setText(_translate("Form", "导出聊天记录")) self.toolButton_output.setText(_translate("Form", "导出聊天记录"))

View File

@ -119,6 +119,7 @@ class ContactWindow(QWidget, Ui_Form):
@param contact:联系人对象 @param contact:联系人对象
@return: @return:
""" """
# return
self.contacts[0].append(contact.remark) self.contacts[0].append(contact.remark)
self.contacts[1].append(contact.nickName) self.contacts[1].append(contact.nickName)
contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG)

View File

@ -14,11 +14,10 @@ from PyQt5.QtCore import pyqtSignal, QUrl, Qt, QThread, QSize
from PyQt5.QtGui import QPixmap, QFont, QDesktopServices, QIcon from PyQt5.QtGui import QPixmap, QFont, QDesktopServices, QIcon
from PyQt5.QtWidgets import QMainWindow, QLabel, QListWidgetItem, QMessageBox from PyQt5.QtWidgets import QMainWindow, QLabel, QListWidgetItem, QMessageBox
from app import config from app.DataBase import misc_db, micro_msg_db, close_db
from app.DataBase import msg_db, misc_db, micro_msg_db, hard_link_db, close_db
from app.ui.Icon import Icon from app.ui.Icon import Icon
from . import mainwindow from . import mainwindow
from .about_dialog import AboutDialog from app.ui.menu.about_dialog import AboutDialog
from .chat import ChatWindow from .chat import ChatWindow
from .contact import ContactWindow from .contact import ContactWindow
from .tool.tool_window import ToolWindow from .tool.tool_window import ToolWindow
@ -121,6 +120,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
) )
def init_ui(self): def init_ui(self):
self.startBusy()
self.menu_output.setIcon(Icon.Output) self.menu_output.setIcon(Icon.Output)
self.action_output_CSV.setIcon(Icon.ToCSV) self.action_output_CSV.setIcon(Icon.ToCSV)
self.action_output_CSV.triggered.connect(self.output) self.action_output_CSV.triggered.connect(self.output)
@ -199,6 +199,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
def stop_loading(self, a0): def stop_loading(self, a0):
self.label.setVisible(False) self.label.setVisible(False)
self.stopBusy()
def loading(self, a0): def loading(self, a0):
self.load_num += 1 self.load_num += 1
@ -208,6 +209,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow,QCursorGif):
self.okSignal.emit(True) self.okSignal.emit(True)
self.listWidget.setVisible(True) self.listWidget.setVisible(True)
self.stackedWidget.setVisible(True) self.stackedWidget.setVisible(True)
self.stopBusy()
if self.load_flag: if self.load_flag:
self.listWidget.setCurrentRow(1) self.listWidget.setCurrentRow(1)
self.stackedWidget.setCurrentIndex(1) self.stackedWidget.setCurrentIndex(1)

0
app/ui/menu/__init__.py Normal file
View File

View File

@ -3,7 +3,7 @@ from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QDialog from PyQt5.QtWidgets import QApplication, QDialog
try: try:
from .dialog import Ui_Dialog from app.ui.menu.dialog import Ui_Dialog
from app import config from app import config
from app.resources import resource_rc from app.resources import resource_rc
except: except:

View File

@ -12,7 +12,6 @@ from app.util.protocbuf.msg_pb2 import MessageBytesExtra
from ..util.file import get_file from ..util.file import get_file
def decompress_CompressContent(data): def decompress_CompressContent(data):
""" """
解压缩MsgCompressContent内容 解压缩MsgCompressContent内容
@ -132,47 +131,50 @@ def music_share(data: bytes):
def share_card(bytesExtra, compress_content_): def share_card(bytesExtra, compress_content_):
xml = decompress_CompressContent(compress_content_) title, des, url, show_display_name, thumbnail, app_logo = '', '', '', '', '', ''
root = ET.XML(xml)
appmsg = root.find('appmsg')
title = appmsg.find('title').text
try: try:
des = appmsg.find('des').text xml = decompress_CompressContent(compress_content_)
except: root = ET.XML(xml)
des = '' appmsg = root.find('appmsg')
url = appmsg.find('url').text title = appmsg.find('title').text
appinfo = root.find('appinfo') try:
show_display_name = appmsg.find('sourcedisplayname') des = appmsg.find('des').text
sourceusername = appmsg.find('sourceusername') except:
if show_display_name is not None: des = ''
show_display_name = show_display_name.text url = appmsg.find('url').text
else: appinfo = root.find('appinfo')
if appinfo is not None: show_display_name = appmsg.find('sourcedisplayname')
show_display_name = appinfo.find('appname').text sourceusername = appmsg.find('sourceusername')
msg_bytes = MessageBytesExtra() if show_display_name is not None:
msg_bytes.ParseFromString(bytesExtra) show_display_name = show_display_name.text
app_logo = '' else:
thumbnail = '' if appinfo is not None:
for tmp in msg_bytes.message2: show_display_name = appinfo.find('appname').text
if tmp.field1 == 3: msg_bytes = MessageBytesExtra()
thumbnail = tmp.field2 msg_bytes.ParseFromString(bytesExtra)
thumbnail = "\\".join(thumbnail.split('\\')[1:]) app_logo = ''
if tmp.field2 == 4: thumbnail = ''
app_logo = tmp.field2 for tmp in msg_bytes.message2:
app_logo = "\\".join(app_logo.split('\\')[1:]) if tmp.field1 == 3:
if sourceusername is not None: thumbnail = tmp.field2
from app.DataBase import micro_msg_db # 放上面会导致循环依赖 thumbnail = "\\".join(thumbnail.split('\\')[1:])
contact = micro_msg_db.get_contact_by_username(sourceusername.text) if tmp.field2 == 4:
if contact: app_logo = tmp.field2
app_logo = contact[7] app_logo = "\\".join(app_logo.split('\\')[1:])
return { if sourceusername is not None:
'title': escape_js_and_html(title), from app.DataBase import micro_msg_db # 放上面会导致循环依赖
'description': escape_js_and_html(des), contact = micro_msg_db.get_contact_by_username(sourceusername.text)
'url': url, if contact:
'app_name': escape_js_and_html(show_display_name), app_logo = contact[7]
'thumbnail': thumbnail, finally:
'app_logo': app_logo 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): def get_website_name(url):
@ -269,5 +271,6 @@ def format_bytes(size):
if size < 1024 or unit_index >= len(units) - 1: if size < 1024 or unit_index >= len(units) - 1:
return size, unit_index return size, unit_index
return convert_bytes(size / 1024, unit_index + 1) return convert_bytes(size / 1024, unit_index + 1)
final_size, final_unit_index = convert_bytes(size, 0) final_size, final_unit_index = convert_bytes(size, 0)
return f"{final_size:.2f} {units[final_unit_index]}" return f"{final_size:.2f} {units[final_unit_index]}"