解锁并提取Linux客户端微信数据库 (vibe coded)
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"))