解锁并提取Linux客户端微信数据库 (vibe coded)
1# -*- coding: utf-8 -*-#
2# -------------------------------------------------------------------------------
3# Name: meta.py
4# Description: 版本、更新检查
5# -------------------------------------------------------------------------------
6from fastapi import APIRouter
7
8import wxdump_linux
9from ..response import ReJson
10from ..decorators import error9999
11
12meta_router = APIRouter()
13
14
15@meta_router.api_route('/check_update', methods=["GET", 'POST'])
16@error9999
17def check_update():
18 """
19 检查更新
20 :return:
21 """
22 url = "https://api.github.com/repos/xaoyaoo/PyWxDump/tags"
23 try:
24 import requests
25 res = requests.get(url)
26 if res.status_code == 200:
27 data = res.json()
28 NEW_VERSION = data[0].get("name")
29 if NEW_VERSION[1:] != wxdump_linux.__version__:
30 msg = "有新版本"
31 else:
32 msg = "已经是最新版本"
33 return ReJson(0, body={"msg": msg, "latest_version": NEW_VERSION,
34 "latest_url": "https://github.com/xaoyaoo/PyWxDump/releases/tag/" + NEW_VERSION})
35 else:
36 return ReJson(2001, body="status_code is not 200")
37 except Exception as e:
38 return ReJson(9999, msg=str(e))
39
40
41@meta_router.api_route('/version', methods=["GET", "POST"])
42@error9999
43def version():
44 """
45 版本
46 :return:
47 """
48 return ReJson(0, wxdump_linux.__version__)
49
50
51@meta_router.api_route('/get_readme', methods=["GET", 'POST'])
52@error9999
53def get_readme():
54 """
55 获取README
56 :return:
57 """
58 url = "https://raw.githubusercontent.com/xaoyaoo/PyWxDump/master/doc/README_CN.md"
59 import requests
60 res = requests.get(url)
61 if res.status_code == 200:
62 data = res.text
63 data = data.replace("# <center>PyWxDump</center>", "")
64 return ReJson(0, body=data)
65 else:
66 return ReJson(2001, body="status_code is not 200")