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
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

View File

@ -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)

View File

@ -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", "导出聊天记录"))

View File

@ -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)

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.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)

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
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:

View File

@ -12,7 +12,6 @@ from app.util.protocbuf.msg_pb2 import MessageBytesExtra
from ..util.file import get_file
def decompress_CompressContent(data):
"""
解压缩MsgCompressContent内容
@ -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]}"