解锁并提取Linux客户端微信数据库 (vibe coded)
at 71 lines 3.4 kB view raw
1import logging 2import os 3import traceback 4 5loger_rjson = logging.getLogger("rjson") 6 7 8def ReJson(code: int, body: [dict, list] = None, msg: str = None, error: str = None, extra: dict = None) -> dict: 9 """ 10 返回格式化的json数据 11 :param code: 状态码 int 12 :param body: 返回的主体内容,一般为具体的数据 13 :param msg: 返回状态码相关的调试信息 14 :param error: 出现错误时候,这个参数可以把错误写入日志 15 :param extra: # 全局附加数据,字段、内容不定(如等级,经验的变化,可以作为全局的数据存在,区别于某次请求的具体data) 16 :return: json格式的返回值 17 """ 18 if extra is None: 19 extra = {} 20 situation = { 21 0: {'code': 0, 'body': body, 'msg': "success", "extra": extra}, 22 # 100 开头代表 请求数据有问题 23 # 4*** 表示数据库查询结果存在异常 24 1001: {'code': 1001, 'body': body, 'msg': "请求数据格式存在错误!", "extra": extra}, # 请求数据格式存在错误,一般是数据类型错误 25 1002: {'code': 1002, 'body': body, 'msg': "请求参数存在错误!", "extra": extra}, # 请求参数存在错误,一般是缺少参数 26 2001: {'code': 2001, 'body': body, 'msg': "操作失败!", "extra": extra}, # 请求未能正确执行 27 4001: {'code': 4001, 'body': body, 'msg': "账号或密码错误!", "extra": extra}, # 表示用户没有权限(令牌、用户名、密码错误) 28 4003: {'code': 4003, 'body': body, 'msg': "禁止访问!", "extra": extra}, 29 4004: {'code': 4004, 'body': body, 'msg': "数据不存在!", "extra": extra}, 30 4005: {'code': 4005, 'body': body, 'msg': "数据库异常!", "extra": extra}, 31 4006: {'code': 4006, 'body': body, 'msg': "数据已存在!", "extra": extra}, 32 4007: {'code': 4007, 'body': body, 'msg': "数据库解密异常!", "extra": extra}, 33 5002: {'code': 5002, 'body': body, 'msg': "服务器错误!", "extra": extra}, 34 9999: {'code': 9999, 'body': body, 'msg': "未知错误!", "extra": extra}, 35 } 36 rjson = situation.get(code, {'code': 9999, 'body': None, 'msg': "code错误", "extra": {}}) 37 if body: 38 rjson['body'] = body 39 if msg: 40 rjson['msg'] = msg 41 if code != 0: 42 stack = traceback.extract_stack() 43 project_stack = [frame for frame in stack] 44 # 格式化调用栈信息 45 formatted_stack = ''.join(traceback.format_list(project_stack)) 46 # stack_trace = ''.join(traceback.format_stack()) 47 loger_rjson.warning(f"\n{code=}\n{rjson['body']=}\n{rjson['msg']=}\n{rjson['extra']=}\n{formatted_stack}") 48 if error: 49 loger_rjson.error(error, exc_info=True) 50 return rjson 51 52 53def RqJson(rqData): 54 """ 55 进行请求数据验证数据合法性,确实用户以及资格 56 主要根路径下的数据 57 :param rqData: 请求的数据 58 :return: body的值 59 """ 60 userid = rqData.get("userid", "") # 用户id 61 version = rqData.get("version", "v1.0") # api版本 62 uidid = rqData.get("uidid", "qweqrew") # 唯一设备标识符 63 token = rqData.get("token", "") # token 64 """验证数据合法性""" 65 """""" 66 body = rqData.get("body", None) 67 return body 68 69 70if __name__ == '__main__': 71 print(ReJson(0, "asdf", "asdf"))