CoolFace
Apppublic

wqngxiwn/database

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
version.py49 linesDownload Raw Back to root
1import requests2import logging3from app.utils.logging import log4import app.config.settings as settings5async def check_version():6    """7    检查应用程序版本更新8    9    从本地和远程获取版本信息,并比较版本号以确定是否有更新10    """11    # 导入全局变量12    try:13        # 读取本地版本14        with open("./version.txt", "r") as f:15            version_line = f.read().strip()16            settings.version['local_version'] = version_line.split("=")[1] if "=" in version_line else "0.0.0"17        18        # 获取远程版本19        github_url = "https://raw.githubusercontent.com/wyeeeee/hajimi/refs/heads/main/version.txt"20        response = requests.get(github_url, timeout=5)21        if response.status_code == 200:22            version_line = response.text.strip()23            settings.version['remote_version']= version_line.split("=")[1] if "=" in version_line else "0.0.0"24            # 比较版本号25            local_parts = [int(x) for x in settings.version['local_version'].split(".")]26            remote_parts = [int(x) for x in settings.version['remote_version'].split(".")]27            28            # 确保两个列表长度相同29            while len(local_parts) < len(remote_parts):30                local_parts.append(0)31            while len(remote_parts) < len(local_parts):32                remote_parts.append(0)33                34            # 比较版本号35            settings.version['has_update'] = False36            for i in range(len(local_parts)):37                if remote_parts[i] > local_parts[i]:38                    settings.version['has_update'] = True39                    break40                elif remote_parts[i] < local_parts[i]:41                    break42            43            log('info', f"版本检查: 本地版本 {settings.version['local_version']}, 远程版本 {settings.version['remote_version']}, 有更新: {settings.version['has_update']}")44        else:45            log('warning', f"无法获取远程版本信息,HTTP状态码: {response.status_code}")46    except Exception as e:47        log('error', f"版本检查失败: {str(e)}")48        49    return settings.version['has_update']