diff --git a/pywxdump/api/remote_server.py b/pywxdump/api/remote_server.py index 76c85b2..630d996 100644 --- a/pywxdump/api/remote_server.py +++ b/pywxdump/api/remote_server.py @@ -90,7 +90,7 @@ def user_labels_dict(): @rs_api.post('/user_list') @error9999 -def user_list(word: str = "", wxids: List[str] = None, labels: List[str] = None): +def user_list(word: str = Body("", embed=True), wxids: List[str] = Body(None), labels: List[str] = Body(None)): """ 获取联系人列表,可用于搜索 :return: @@ -102,7 +102,7 @@ def user_list(word: str = "", wxids: List[str] = None, labels: List[str] = None) if not my_wxid: return ReJson(1001, body="my_wxid is required") db_config = gc.get_conf(my_wxid, "db_config") db = DBHandler(db_config, my_wxid=my_wxid) - users = db.get_user(word, wxids, labels) + users = db.get_user(word=word, wxids=wxids, labels=labels) return ReJson(0, users) diff --git a/pywxdump/db/dbMicro.py b/pywxdump/db/dbMicro.py index 7343f06..1bda313 100644 --- a/pywxdump/db/dbMicro.py +++ b/pywxdump/db/dbMicro.py @@ -95,6 +95,8 @@ class MicroHandler(DatabaseBase): "WHERE S.strUsrName!='@publicUser' " "ORDER BY S.nTime DESC;" ) + + db_loger.info(f"get_session_list sql: {sql}") ret = self.execute(sql) if not ret: return sessions @@ -139,6 +141,8 @@ class MicroHandler(DatabaseBase): "ON A.Username = SubQuery.Username AND LastReadedCreateTime = SubQuery.MaxLastReadedCreateTime " "ORDER BY A.LastReadedCreateTime DESC;" ) + + db_loger.info(f"get_recent_chat_wxid sql: {sql}") result = self.execute(sql) if not result: return [] @@ -194,6 +198,7 @@ class MicroHandler(DatabaseBase): sql_label = " OR ".join(sql_label) sql = sql.replace(";", f"AND ({sql_label}) ;") + db_loger.info(f"get_user_list word: {word} sql: {sql}") result = self.execute(sql) if not result: return users @@ -214,7 +219,10 @@ class MicroHandler(DatabaseBase): "wxid": UserName, "nickname": NickName, "remark": Remark, "account": Alias, "describe": describe, "headImgUrl": bigHeadImgUrl if bigHeadImgUrl else "", "ExtraBuf": ExtraBuf, "LabelIDList": tuple(LabelIDList), - "extra": self.get_room_list(roomwxids=[UserName]).get(UserName, None)} + "extra": None} + extras = self.get_room_list(roomwxids=filter(lambda x: "@" in x, users.keys())) + for UserName in users: + users[UserName]["extra"] = extras.get(UserName, None) return users @db_error @@ -244,6 +252,7 @@ class MicroHandler(DatabaseBase): if roomwxids: sql = sql.replace(";", f"AND A.ChatRoomName IN ('" + "','".join(roomwxids) + "') ;") + db_loger.info(f"get_room_list sql: {sql}") result = self.execute(sql) if not result: return rooms diff --git a/pywxdump/db/dbbase.py b/pywxdump/db/dbbase.py index bfedbc1..a2cf17a 100644 --- a/pywxdump/db/dbbase.py +++ b/pywxdump/db/dbbase.py @@ -114,7 +114,7 @@ class DatabaseBase(DatabaseSingletonBase): if isinstance(required_tables, str): required_tables = [required_tables] rbool = all(table.lower() in self.existed_tables for table in (required_tables or [])) - if not rbool: db_loger.warning(f"{required_tables=}\n{self.existed_tables=}\n{rbool=}\n") + if not rbool: db_loger.warning(f"{required_tables=}\n{self.existed_tables=}\n{rbool=}") return rbool def execute(self, sql, params=None):