mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
fix 修复V2最新版本号获取
This commit is contained in:
+39
-49
@@ -1,6 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
from pathlib import Path
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from app.chain import ChainBase
|
from app.chain import ChainBase
|
||||||
@@ -10,6 +9,7 @@ from app.schemas import Notification, MessageChannel
|
|||||||
from app.utils.http import RequestUtils
|
from app.utils.http import RequestUtils
|
||||||
from app.utils.singleton import Singleton
|
from app.utils.singleton import Singleton
|
||||||
from app.utils.system import SystemUtils
|
from app.utils.system import SystemUtils
|
||||||
|
from version import FRONTEND_VERSION, APP_VERSION
|
||||||
|
|
||||||
|
|
||||||
class SystemChain(ChainBase, metaclass=Singleton):
|
class SystemChain(ChainBase, metaclass=Singleton):
|
||||||
@@ -98,77 +98,67 @@ class SystemChain(ChainBase, metaclass=Singleton):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def __get_server_release_version():
|
def __get_server_release_version():
|
||||||
"""
|
"""
|
||||||
获取后端最新版本
|
获取后端V2最新版本
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
version_res = RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res(
|
# 获取所有发布的版本列表
|
||||||
"https://api.github.com/repos/jxxghp/MoviePilot/releases/latest")
|
response = RequestUtils(
|
||||||
if version_res:
|
proxies=settings.PROXY,
|
||||||
ver_json = version_res.json()
|
headers=settings.GITHUB_HEADERS
|
||||||
version = f"{ver_json['tag_name']}"
|
).get_res("https://api.github.com/repos/jxxghp/MoviePilot/releases")
|
||||||
return version
|
if response:
|
||||||
|
releases = [release['tag_name'] for release in response.json()]
|
||||||
|
v2_releases = [tag for tag in releases if re.match(r"^v2\.", tag)]
|
||||||
|
if not v2_releases:
|
||||||
|
logger.warn("获取v2后端最新版本版本出错!")
|
||||||
|
else:
|
||||||
|
# 找到最新的v2版本
|
||||||
|
latest_v2 = sorted(v2_releases, key=lambda s: list(map(int, re.findall(r'\d+', s))))[-1]
|
||||||
|
logger.info(f"获取到后端最新版本:{latest_v2}")
|
||||||
|
return latest_v2
|
||||||
else:
|
else:
|
||||||
return None
|
logger.error("无法获取后端版本信息,请检查网络连接或GitHub API请求。")
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"获取后端最新版本失败:{str(err)}")
|
logger.error(f"获取后端最新版本失败:{str(err)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __get_front_release_version():
|
def __get_front_release_version():
|
||||||
"""
|
"""
|
||||||
获取前端最新版本
|
获取前端V2最新版本
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
version_res = RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res(
|
# 获取所有发布的版本列表
|
||||||
"https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest")
|
response = RequestUtils(
|
||||||
if version_res:
|
proxies=settings.PROXY,
|
||||||
ver_json = version_res.json()
|
headers=settings.GITHUB_HEADERS
|
||||||
version = f"{ver_json['tag_name']}"
|
).get_res("https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases")
|
||||||
return version
|
if response:
|
||||||
|
releases = [release['tag_name'] for release in response.json()]
|
||||||
|
v2_releases = [tag for tag in releases if re.match(r"^v2\.", tag)]
|
||||||
|
if not v2_releases:
|
||||||
|
logger.warn("获取v2前端最新版本版本出错!")
|
||||||
|
else:
|
||||||
|
# 找到最新的v2版本
|
||||||
|
latest_v2 = sorted(v2_releases, key=lambda s: list(map(int, re.findall(r'\d+', s))))[-1]
|
||||||
|
logger.info(f"获取到前端最新版本:{latest_v2}")
|
||||||
|
return latest_v2
|
||||||
else:
|
else:
|
||||||
return None
|
logger.error("无法获取前端版本信息,请检查网络连接或GitHub API请求。")
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"获取前端最新版本失败:{str(err)}")
|
logger.error(f"获取前端最新版本失败:{str(err)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_server_local_version():
|
def get_server_local_version():
|
||||||
"""
|
"""
|
||||||
查看当前版本
|
查看当前版本
|
||||||
"""
|
"""
|
||||||
version_file = settings.ROOT_PATH / "version.py"
|
return APP_VERSION
|
||||||
if version_file.exists():
|
|
||||||
try:
|
|
||||||
with open(version_file, 'rb') as f:
|
|
||||||
version = f.read()
|
|
||||||
pattern = r"'([^']*)'"
|
|
||||||
match = re.search(pattern, str(version))
|
|
||||||
|
|
||||||
if match:
|
|
||||||
version = match.group(1)
|
|
||||||
return version
|
|
||||||
else:
|
|
||||||
logger.warn("未找到版本号")
|
|
||||||
return None
|
|
||||||
except Exception as err:
|
|
||||||
logger.error(f"加载版本文件 {version_file} 出错:{str(err)}")
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_frontend_version():
|
def get_frontend_version():
|
||||||
"""
|
"""
|
||||||
获取前端版本
|
获取前端版本
|
||||||
"""
|
"""
|
||||||
if SystemUtils.is_frozen() and SystemUtils.is_windows():
|
return FRONTEND_VERSION
|
||||||
version_file = settings.CONFIG_PATH.parent / "nginx" / "html" / "version.txt"
|
|
||||||
else:
|
|
||||||
version_file = Path(settings.FRONTEND_PATH) / "version.txt"
|
|
||||||
if version_file.exists():
|
|
||||||
try:
|
|
||||||
with open(version_file, 'r') as f:
|
|
||||||
version = str(f.read()).strip()
|
|
||||||
return version
|
|
||||||
except Exception as err:
|
|
||||||
logger.error(f"加载版本文件 {version_file} 出错:{str(err)}")
|
|
||||||
else:
|
|
||||||
logger.warn("未找到前端版本文件,请正确设置 FRONTEND_PATH")
|
|
||||||
return None
|
|
||||||
|
|||||||
Reference in New Issue
Block a user