From e1361a6b230fdb99b6e32301c0440e0f91e86953 Mon Sep 17 00:00:00 2001 From: shuaikangzhou <863909694@qq.com> Date: Mon, 29 Jan 2024 21:56:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DNoneType=20object=20is=20not?= =?UTF-8?q?=20iterable=E7=9A=84=E9=97=AE=E9=A2=98?= 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 | 13 ++++++++++++- app/ui/contact/contact_window.py | 12 +++++++++++- app/ui/mainview.py | 7 +++++-- doc/获取个人文件/使用说明.md | 16 ---------------- 5 files changed, 29 insertions(+), 21 deletions(-) delete mode 100644 doc/获取个人文件/使用说明.md diff --git a/app/DataBase/micro_msg.py b/app/DataBase/micro_msg.py index 234a549..44ae061 100644 --- a/app/DataBase/micro_msg.py +++ b/app/DataBase/micro_msg.py @@ -40,7 +40,7 @@ class MicroMsg: def get_contact(self): if not self.open_flag: - return None + return [] try: lock.acquire(True) sql = '''SELECT UserName, Alias, Type, Remark, NickName, PYInitial, RemarkPYInitial, ContactHeadImgUrl.smallHeadImgUrl, ContactHeadImgUrl.bigHeadImgUrl,ExTraBuf,COALESCE(ContactLabel.LabelName, 'None') AS labelName diff --git a/app/ui/chat/chat_window.py b/app/ui/chat/chat_window.py index 1c5e1de..9185c89 100644 --- a/app/ui/chat/chat_window.py +++ b/app/ui/chat/chat_window.py @@ -1,7 +1,9 @@ +import shutil + from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit -from app.DataBase import micro_msg_db, misc_db, msg_db +from app.DataBase import micro_msg_db, misc_db, msg_db, close_db from app.components import ContactQListWidgetItem, ScrollBar from app.person import Contact from app.ui.Icon import Icon @@ -136,6 +138,15 @@ class ShowContactThread(QThread): def run(self) -> None: contact_info_lists = micro_msg_db.get_contact() + if not contact_info_lists: + self.load_finish_signal.emit(True) + # QMessageBox.critical(None, "错误", "数据库错误,请重启电脑后重试") + close_db() + try: + shutil.rmtree('./app/Database/Msg') + except: + pass + return for contact_info_list in contact_info_lists: # UserName, Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl contact_info = { diff --git a/app/ui/contact/contact_window.py b/app/ui/contact/contact_window.py index 9b0803f..499cf7f 100644 --- a/app/ui/contact/contact_window.py +++ b/app/ui/contact/contact_window.py @@ -3,7 +3,7 @@ from typing import List from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit, QLabel -from app.DataBase import micro_msg_db, misc_db +from app.DataBase import micro_msg_db, misc_db, close_db from app.components import ContactQListWidgetItem, ScrollBar from app.person import Contact from app.ui.Icon import Icon @@ -152,6 +152,16 @@ class ShowContactThread(QThread): def run(self) -> None: contact_info_lists = micro_msg_db.get_contact() + if not contact_info_lists: + self.load_finish_signal.emit(True) + # QMessageBox.critical(None, "错误", "数据库错误,请重启电脑后重试") + close_db() + import shutil + try: + shutil.rmtree('./app/Database/Msg') + except: + pass + return for contact_info_list in contact_info_lists: # UserName, Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl,ExtraBuf detail = decodeExtraBuf(contact_info_list[9]) diff --git a/app/ui/mainview.py b/app/ui/mainview.py index 8b6a2b0..42c2b1f 100644 --- a/app/ui/mainview.py +++ b/app/ui/mainview.py @@ -332,11 +332,14 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow, QCursorGif): try: img_bytes = misc_db.get_avatar_buffer(wxid) except: - close_db() logger.error(f'数据库错误:\n{traceback.format_exc()}') QMessageBox.critical(self, "数据库错误", "请重启微信后重试") + close_db() import shutil - shutil.rmtree('./app/Database/Msg') + try: + shutil.rmtree('./app/Database/Msg') + except: + pass return if not img_bytes: return diff --git a/doc/获取个人文件/使用说明.md b/doc/获取个人文件/使用说明.md deleted file mode 100644 index 25ef706..0000000 --- a/doc/获取个人文件/使用说明.md +++ /dev/null @@ -1,16 +0,0 @@ -教程参考 -[导出聊天记录](https://blog.csdn.net/m0_59452630/article/details/124222235?spm=1001.2014.3001.5501 "一文教会你导出微信聊天记录") - -对于模拟器中信息提取,如果使用自带的Amaze复制到共享文件夹出现错误,无法导入可以使用MT管理器 - -![image-20231113143254986](..\images\MT) - -MT管理器打开界面如下图所示,右边打开微信文件存储位置,找到MicroMsg,左边打开共享文件位置,可以通过右边的电脑图案查看路径。 - -如图,长按MicroMsg文件夹,弹出弹窗,点击复制->确认。 - -![image-20231111001821854](..\images\cv-opration) - -开始复制,稍等一会即可完成复制。 - -![image-20231111001132681](..\images\cv_process)