From 87c123f3820781e8a00819a9218fdb650170d9d9 Mon Sep 17 00:00:00 2001 From: xaoyaoo Date: Sat, 22 Jun 2024 00:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=9C=AC=E5=9C=B0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pywxdump/api/api.py | 22 ++++++++++++++++++++-- pywxdump/api/utils.py | 14 ++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/pywxdump/api/api.py b/pywxdump/api/api.py index 2907050..d47cc18 100644 --- a/pywxdump/api/api.py +++ b/pywxdump/api/api.py @@ -18,7 +18,8 @@ import pywxdump from flask import Flask, request, render_template, g, Blueprint, send_file, make_response, session from pywxdump import get_core_db, all_merge_real_time_db from pywxdump.api.rjson import ReJson, RqJson -from pywxdump.api.utils import read_session, get_session_wxids, save_session, error9999, gen_base64, validate_title +from pywxdump.api.utils import read_session, get_session_wxids, save_session, error9999, gen_base64, validate_title, \ + read_session_local_wxid from pywxdump import read_info, VERSION_LIST, batch_decrypt, BiasAddr, merge_db, decrypt_merge, merge_real_time_db from pywxdump.dbpreprocess import wxid2userinfo, ParsingMSG, get_user_list, get_recent_user_list, ParsingMediaMSG, \ @@ -32,6 +33,18 @@ api.debug = False # 以下为初始化相关 ******************************************************************************************************* +@api.route('/api/init_last_local_wxid', methods=["GET", 'POST']) +@error9999 +def init_last_local_wxid(): + """ + 初始化,包括key + :return: + """ + local_wxid = read_session_local_wxid(g.sf) + if local_wxid: + return ReJson(0, {"local_wxids": local_wxid}) + return ReJson(0, {"local_wxids": []}) + @api.route('/api/init_last', methods=["GET", 'POST']) @error9999 def init_last(): @@ -39,7 +52,9 @@ def init_last(): 是否初始化 :return: """ - my_wxid = read_session(g.sf, "test", "last") + my_wxid = request.json.get("my_wxid", "").strip().strip("'").strip('"') + if not my_wxid: + my_wxid = read_session(g.sf, "test", "last") if my_wxid: merge_path = read_session(g.sf, my_wxid, "merge_path") wx_path = read_session(g.sf, my_wxid, "wx_path") @@ -178,6 +193,8 @@ def recent_user_list(): merge_path = read_session(g.sf, my_wxid, "merge_path") user_list = get_recent_user_list(merge_path, merge_path, limit=200) return ReJson(0, user_list) + + @api.route('/api/user_labels_dict', methods=["GET", 'POST']) @error9999 def user_labels_dict(): @@ -191,6 +208,7 @@ def user_labels_dict(): user_labels_dict = ParsingMicroMsg(merge_path).labels_dict() return ReJson(0, user_labels_dict) + @api.route('/api/user_list', methods=["GET", 'POST']) @error9999 def user_list(): diff --git a/pywxdump/api/utils.py b/pywxdump/api/utils.py index 172fa5e..d668eeb 100644 --- a/pywxdump/api/utils.py +++ b/pywxdump/api/utils.py @@ -15,6 +15,20 @@ from .rjson import ReJson from functools import wraps +def read_session_local_wxid(session_file): + try: + with open(session_file, 'r') as f: + session = json.load(f) + except FileNotFoundError: + logging.error(f"Session file not found: {session_file}") + return None + except json.JSONDecodeError as e: + logging.error(f"Error decoding JSON file: {e}") + return None + rdata = [k for k in session.keys() if k != "test"] + return rdata + + def read_session(session_file, wxid, arg): try: with open(session_file, 'r') as f: