Skip to content

Commit

Permalink
修改变量名
Browse files Browse the repository at this point in the history
  • Loading branch information
LC044 committed Dec 30, 2023
1 parent 3b75ba2 commit c4ba4cc
Show file tree
Hide file tree
Showing 14 changed files with 111 additions and 99 deletions.
32 changes: 15 additions & 17 deletions app/DataBase/output_pc.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from .package_msg import PackageMsg
from ..DataBase import media_msg_db, hard_link_db, micro_msg_db, msg_db
from ..log import logger
from ..person import MePC
from ..person import Me
from ..util import path
from ..util.compress_content import parser_reply
from ..util.emoji import get_emoji_url
Expand Down Expand Up @@ -270,22 +270,22 @@ def get_avatar_path(self, is_send, message, is_absolute_path=False) -> str:
if self.contact.is_chatroom:
avatar = message[12].smallHeadImgUrl
else:
avatar = MePC().smallHeadImgUrl if is_send else self.contact.smallHeadImgUrl
avatar = Me().smallHeadImgUrl if is_send else self.contact.smallHeadImgUrl
if is_absolute_path:
if self.contact.is_chatroom:
avatar = message[12].avatar_path
else:
avatar = MePC().avatar_path if is_send else self.contact.avatar_path
avatar = Me().avatar_path if is_send else self.contact.avatar_path
return avatar

def get_display_name(self, is_send, message) -> str:
if self.contact.is_chatroom:
if is_send:
display_name = MePC().name
display_name = Me().name
else:
display_name = message[12].remark
else:
display_name = MePC().name if is_send else self.contact.remark
display_name = Me().name if is_send else self.contact.remark
return escape_js_and_html(display_name)

def text(self, doc, message):
Expand Down Expand Up @@ -332,9 +332,9 @@ def image(self, doc, message):
if self.output_type == Output.HTML:
str_content = escape_js_and_html(str_content)
image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False)
if not os.path.exists(os.path.join(MePC().wx_dir, image_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_path)):
image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True)
if not os.path.exists(os.path.join(MePC().wx_dir, image_thumb_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)):
return
image_path = image_thumb_path
image_path = get_image_path(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image')
Expand All @@ -351,9 +351,9 @@ def image(self, doc, message):
run = content.paragraphs[0].add_run()
str_content = escape_js_and_html(str_content)
image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True)
if not os.path.exists(os.path.join(MePC().wx_dir, image_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_path)):
image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False)
if not os.path.exists(os.path.join(MePC().wx_dir, image_thumb_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)):
return
image_path = image_thumb_path
image_path = get_image_abs_path(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image')
Expand Down Expand Up @@ -566,7 +566,7 @@ def video(self, doc, message):
return
if video_path is None and image_path is None:
return
video_path = f'{MePC().wx_dir}/{video_path}'
video_path = f'{Me().wx_dir}/{video_path}'
if os.path.exists(video_path):
new_path = origin_docx_path + '/video/' + os.path.basename(video_path)
if not os.path.exists(new_path):
Expand Down Expand Up @@ -741,9 +741,7 @@ def to_docx(self):
messages = packagemsg.get_package_message_by_wxid(self.contact.wxid)
else:
messages = msg_db.get_messages(self.contact.wxid)

MePC().avatar.save(os.path.join(f"{origin_docx_path}/avatar/{MePC().wxid}.png"))
MePC().save_avatar(os.path.join(f"{origin_docx_path}/avatar/{MePC().wxid}.png"))
Me().save_avatar(os.path.join(f"{origin_docx_path}/avatar/{Me().wxid}.png"))
if self.contact.is_chatroom:
for message in messages:
if message[4]: # is_send
Expand Down Expand Up @@ -884,9 +882,9 @@ def run(self):
timestamp = message[5]
try:
image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False)
if not os.path.exists(os.path.join(MePC().wx_dir, image_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_path)):
image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True)
if not os.path.exists(os.path.join(MePC().wx_dir, image_thumb_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)):
continue
image_path = image_thumb_path
image_path = get_image(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image')
Expand Down Expand Up @@ -928,9 +926,9 @@ def run(self):
timestamp = message[5]
try:
image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False)
if not os.path.exists(os.path.join(MePC().wx_dir, image_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_path)):
image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True)
if not os.path.exists(os.path.join(MePC().wx_dir, image_thumb_path)):
if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)):
continue
image_path = image_thumb_path
image_path = get_image(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image')
Expand Down
6 changes: 3 additions & 3 deletions app/DataBase/package_msg.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from app.DataBase import msg_db, micro_msg_db, misc_db
from app.util.protocbuf.msg_pb2 import MessageBytesExtra
from app.util.protocbuf.roomdata_pb2 import ChatRoomData
from app.person import ContactPC, MePC, ContactDefault
from app.person import Contact, Me, ContactDefault

lock = threading.Lock()

Expand Down Expand Up @@ -115,7 +115,7 @@ def get_package_message_by_wxid(self, chatroom_wxid):
for row in messages:
message = list(row)
if message[4] == 1: # 自己发送的就没必要解析了
message.append(MePC())
message.append(Me())
updated_messages.append(message)
continue
if message[10] is None: # BytesExtra是空的跳过
Expand Down Expand Up @@ -146,7 +146,7 @@ def get_package_message_by_wxid(self, chatroom_wxid):
'NickName': contact_info_list[4],
'smallHeadImgUrl': contact_info_list[7]
}
contact = ContactPC(contact_info)
contact = Contact(contact_info)
contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid)
contact.set_avatar(contact.smallHeadImgBLOG)
message.append(contact)
Expand Down
42 changes: 35 additions & 7 deletions app/person.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
"""
定义各种联系人
"""

import os.path
import re
from typing import Dict

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap

from app.ui.Icon import Icon


Expand All @@ -20,6 +21,11 @@ def inner():


class Person:
def __init__(self):
self.avatar_path = None
self.avatar = None
self.avatar_path_qt = Icon.Default_avatar_path

def set_avatar(self, img_bytes):
if not img_bytes:
self.avatar.load(Icon.Default_avatar_path)
Expand All @@ -46,7 +52,7 @@ def save_avatar(self, path=None):


@singleton
class MePC(Person):
class Me(Person):
def __init__(self):
self.avatar = QPixmap(Icon.Default_avatar_path)
self.avatar_path = ':/icons/icons/default_avatar.svg'
Expand All @@ -57,7 +63,7 @@ def __init__(self):
self.smallHeadImgUrl = ''


class ContactPC(Person):
class Contact(Person):
def __init__(self, contact_info: Dict):
self.wxid = contact_info.get('UserName')
self.remark = contact_info.get('Remark')
Expand Down Expand Up @@ -87,7 +93,29 @@ def __init__(self, wxid=""):
self.is_chatroom = False


class Contacts:
def __init__(self):
self.contacts: Dict[str:Contact] = {}

def add(self, wxid, contact: Contact):
if wxid not in contact:
self.contacts[wxid] = contact

def get(self, wxid: str) -> Contact:
return self.contacts.get(wxid)

def remove(self, wxid: str):
return self.contacts.pop(wxid)

def save_avatar(self, avatar_dir: str = './data/avatar/'):
for wxid, contact in self.contacts.items():
avatar_path = os.path.join(avatar_dir, wxid + '.png')
if os.path.exists(avatar_path):
continue
contact.save_avatar(avatar_path)


if __name__ == '__main__':
p1 = MePC()
p2 = MePC()
p1 = Me()
p2 = Me()
print(p1 == p2)
4 changes: 2 additions & 2 deletions app/ui/chat/chat_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from app.DataBase import msg_db, hard_link_db
from app.components.bubble_message import BubbleMessage, ChatWidget, Notice
from app.person import MePC
from app.person import Me
from app.util import get_abs_path
from app.util.emoji import get_emoji

Expand Down Expand Up @@ -86,7 +86,7 @@ def add_message(self, message):
str_time = message[8]
# print(type_, type(type_))
is_send = message[4]
avatar = MePC().avatar if is_send else self.contact.avatar
avatar = Me().avatar if is_send else self.contact.avatar
timestamp = message[5]
BytesExtra = message[10]
if type_ == 1:
Expand Down
8 changes: 4 additions & 4 deletions app/ui/chat/chat_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from app.DataBase import micro_msg_db, misc_db, msg_db
from app.components import ContactQListWidgetItem, ScrollBar
from app.person import ContactPC
from app.person import Contact
from app.ui.Icon import Icon
from app.util import search
from .chatUi import Ui_Form
Expand Down Expand Up @@ -126,7 +126,7 @@ def stop_loading(self, a0):


class ShowContactThread(QThread):
showSingal = pyqtSignal(ContactPC)
showSingal = pyqtSignal(Contact)
load_finish_signal = pyqtSignal(bool)

# heightSingal = pyqtSignal(int)
Expand All @@ -145,7 +145,7 @@ def run(self) -> None:
'NickName': contact_info_list[4],
'smallHeadImgUrl': contact_info_list[7]
}
contact = ContactPC(contact_info)
contact = Contact(contact_info)
contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid)
contact.set_avatar(contact.smallHeadImgBLOG)
self.showSingal.emit(contact)
Expand All @@ -154,7 +154,7 @@ def run(self) -> None:


class ShowThread(QThread):
showSingal = pyqtSignal(ContactPC)
showSingal = pyqtSignal(Contact)
load_finish_signal = pyqtSignal(bool)

# heightSingal = pyqtSignal(int)
Expand Down
40 changes: 7 additions & 33 deletions app/ui/contact/contactInfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,22 @@
from app.ui.Icon import Icon
from .contactInfoUi import Ui_Form
from .userinfo import userinfo
from ...person import ContactPC, MePC
from ...person import Contact, Me
from .export_dialog import ExportDialog


class ContactInfo(QWidget, Ui_Form):
"""
显示联系人信息
"""
exitSignal = pyqtSignal()
urlSignal = pyqtSignal(QUrl)

# username = ''
def __init__(self, contact, parent=None):
super(ContactInfo, self).__init__(parent)
self.setupUi(self)
self.contact: ContactPC = contact
self.contact: Contact = contact
self.view_userinfo = userinfo.UserinfoController(self.contact)
self.btn_back.clicked.connect(self.back)
self.init_ui()
Expand Down Expand Up @@ -61,14 +64,6 @@ def analysis(self):
"马上就实现该功能"
)
return
self.stackedWidget.setCurrentWidget(self.view_analysis)
if 'room' in self.contact.wxid:
QMessageBox.warning(
self, '警告',
'暂不支持群组'
)
return
self.view_analysis.start()

def annual_report(self):
if 'room' in self.contact.wxid:
Expand All @@ -78,7 +73,7 @@ def annual_report(self):
)
return
self.contact.save_avatar()
MePC().save_avatar()
Me().save_avatar()
self.report_thread = ReportThread(self.contact)
self.report_thread.okSignal.connect(lambda x: QDesktopServices.openUrl(QUrl("http://127.0.0.1:21314")))
self.report_thread.start()
Expand All @@ -96,15 +91,12 @@ def emotionale_Analysis(self):
"马上就实现该功能"
)
return
self.stackedWidget.setCurrentWidget(self.view_emotion)

self.view_emotion.start()

def back(self):
"""
将userinfo界面设置为可见,其他界面设置为不可见
"""
self.stackedWidget.setCurrentWidget(self.view_userinfo)
return

def output(self):
"""
Expand All @@ -126,24 +118,6 @@ def output(self):
dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='txt', parent=self)
result = dialog.exec_() # 使用exec_()获取用户的操作结果

def hide_progress_bar(self, int):
reply = QMessageBox(self)
reply.setIcon(QMessageBox.Information)
reply.setWindowTitle('OK')
reply.setText(f"导出聊天记录成功\n在./data/目录下(跟exe文件在一起)")
reply.addButton("确认", QMessageBox.AcceptRole)
reply.addButton("取消", QMessageBox.RejectRole)
api = reply.exec_()
self.view_userinfo.progressBar.setVisible(False)

def output_progress(self, value):
self.view_userinfo.progressBar.setProperty('value', value)

def set_progressBar_range(self, value):
self.view_userinfo.progressBar.setVisible(True)
self.view_userinfo.progressBar.setRange(0, value)


class ReportThread(QThread):
okSignal = pyqtSignal(bool)

Expand Down
Loading

0 comments on commit c4ba4cc

Please sign in to comment.