| | import requests |
| | import logging |
| | from app.utils.logging import log |
| | import app.config.settings as settings |
| | async def check_version(): |
| | """ |
| | 检查应用程序版本更新 |
| | |
| | 从本地和远程获取版本信息,并比较版本号以确定是否有更新 |
| | """ |
| | |
| | try: |
| | |
| | with open("./version.txt", "r") as f: |
| | version_line = f.read().strip() |
| | settings.local_version = version_line.split("=")[1] if "=" in version_line else "0.0.0" |
| | |
| | |
| | github_url = "https://raw.githubusercontent.com/wyeeeee/hajimi/refs/heads/main/version.txt" |
| | response = requests.get(github_url, timeout=5) |
| | if response.status_code == 200: |
| | version_line = response.text.strip() |
| | settings.remote_version = version_line.split("=")[1] if "=" in version_line else "0.0.0" |
| | |
| | |
| | local_parts = [int(x) for x in settings.local_version.split(".")] |
| | remote_parts = [int(x) for x in settings.remote_version.split(".")] |
| | |
| | |
| | while len(local_parts) < len(remote_parts): |
| | local_parts.append(0) |
| | while len(remote_parts) < len(local_parts): |
| | remote_parts.append(0) |
| | |
| | |
| | settings.has_update = False |
| | for i in range(len(local_parts)): |
| | if remote_parts[i] > local_parts[i]: |
| | settings.has_update = True |
| | break |
| | elif remote_parts[i] < local_parts[i]: |
| | break |
| | |
| | log('info', f"版本检查: 本地版本 {settings.local_version}, 远程版本 {settings.remote_version}, 有更新: {settings.has_update}") |
| | else: |
| | log('warning', f"无法获取远程版本信息,HTTP状态码: {response.status_code}") |
| | except Exception as e: |
| | log('error', f"版本检查失败: {str(e)}") |
| | |
| | return settings.local_version, settings.remote_version, settings.has_update |