From a4ba8fa50d4258a13ad6c841f2122d2cb6dab503 Mon Sep 17 00:00:00 2001 From: xaoyaoo Date: Wed, 7 Aug 2024 18:26:49 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=83=A8=E5=88=86api=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E5=99=B6=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pywxdump/api/remote_server.py | 4 ++-- pywxdump/db/__init__.py | 3 --- pywxdump/db/dbMicro.py | 2 ++ pywxdump/db/dbbase.py | 2 ++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pywxdump/api/remote_server.py b/pywxdump/api/remote_server.py index a6c32ce..0a8eb5e 100644 --- a/pywxdump/api/remote_server.py +++ b/pywxdump/api/remote_server.py @@ -203,7 +203,7 @@ def msg_count(): db_config = get_conf(g.caf, my_wxid, "db_config") db = DBHandler(db_config) chat_count = db.get_msg_count(wxid) - chat_count1 = db.get_plc_msg_count(wxid) + chat_count1 = db.get_plc_msg_count(wxid) if db.PublicMsg_exist else {} # 合并两个字典,相同key,则将value相加 count = {k: chat_count.get(k, 0) + chat_count1.get(k, 0) for k in list(set(list(chat_count.keys()) + list(chat_count1.keys())))} @@ -234,7 +234,7 @@ def get_msgs(): db = DBHandler(db_config) msgs, wxid_list = db.get_msg_list(wxid=wxid, start_index=start, page_size=limit) - if not msgs: + if not msgs and db.PublicMsg_exist: msgs, wxid_list = db.get_plc_msg_list(wxid=wxid, start_index=start, page_size=limit) wxid_list.append(my_wxid) user = db.get_user_list(wxids=wxid_list) diff --git a/pywxdump/db/__init__.py b/pywxdump/db/__init__.py index f805767..a5e6f30 100644 --- a/pywxdump/db/__init__.py +++ b/pywxdump/db/__init__.py @@ -42,9 +42,6 @@ class DBHandler(MicroHandler, MediaHandler, OpenIMContactHandler, PublicMsgHandl if self.Micro_exist: # 添加索引 self.Micro_add_index() - # print(self.MSG_exist, self.Micro_exist, self.Media_exist, self.OpenIMContact_exist, self.PublicMsg_exist, - # self.OpenIMMedia_exist, self.Favorite_exist) - def get_user(self, word=None, wxids=None, labels=None): """ 获取联系人列表 diff --git a/pywxdump/db/dbMicro.py b/pywxdump/db/dbMicro.py index a6a5018..a8aacb3 100644 --- a/pywxdump/db/dbMicro.py +++ b/pywxdump/db/dbMicro.py @@ -59,6 +59,8 @@ class MicroHandler(DatabaseBase): :param id_is_key: id_is_key: True: id作为key,False: name作为key :return: """ + if (self.table_exist.get("ContactLabel") is None) or (not self.table_exist.get("ContactLabel")): + return [] sql = "SELECT LabelId, LabelName FROM ContactLabel ORDER BY LabelName ASC;" result = self.execute(sql) if not result: diff --git a/pywxdump/db/dbbase.py b/pywxdump/db/dbbase.py index a3a2e86..f627c25 100644 --- a/pywxdump/db/dbbase.py +++ b/pywxdump/db/dbbase.py @@ -79,6 +79,7 @@ class DatabaseSingletonBase: class DatabaseBase(DatabaseSingletonBase): _class_name = "DatabaseBase" + table_exist = {} def __init__(self, db_config): """ @@ -134,6 +135,7 @@ class DatabaseBase(DatabaseSingletonBase): f"WHERE type='table' AND tbl_name in ({required_tables_str});") existing_tables = self.execute(sql) existing_tables = [row[0] for row in existing_tables] # 将查询结果转换为列表 + self.table_exist = {table: table in existing_tables for table in required_tables} # 检查所有必需的表是否都在现有表中 return all(table in existing_tables for table in required_tables)