feat: add config expiration warning

This commit is contained in:
世界观察日志
2025-08-27 07:02:02 +08:00
parent 9819436c89
commit 276d3e83e3
4 changed files with 16 additions and 2 deletions

View File

@@ -1,3 +1,6 @@
# DO NOT EDIT IT
version = "0.0.1"
[instance]
url = "127.0.0.1:8080"
secure = false

View File

@@ -14,7 +14,7 @@ from src.logger import GlobalLogger
from src.measurer import SpeedMeasurer
from src.rip import on_decrypt_success, on_decrypt_failed, rip_song, rip_album, rip_artist, rip_playlist
from src.url import AppleMusicURL, URLType
from src.utils import check_dep, run_sync, safely_create_task, get_tasks_num
from src.utils import check_dep, run_sync, safely_create_task, get_tasks_num, config_outdated
class InteractiveShell:
@@ -34,6 +34,9 @@ class InteractiveShell:
safely_create_task(it(WrapperManager).decrypt_init(on_success=on_decrypt_success, on_failure=on_decrypt_failed))
loop.run_until_complete(self.show_status())
if config_outdated():
it(GlobalLogger).logger.warning("The configuration file is out of date. Please refer to config.example.toml to update it")
self.parser = argparse.ArgumentParser(exit_on_error=False)
subparser = self.parser.add_subparsers()
download_parser = subparser.add_parser("download", aliases=["dl"])

View File

@@ -5,6 +5,8 @@ from creart import exists_module
from creart.creator import AbstractCreator, CreateTargetInfo
from pydantic import BaseModel
CONFIG_VERSION = "0.0.1"
class Instance(BaseModel):
url: str
@@ -41,6 +43,7 @@ class Metadata(BaseModel):
class Config(BaseModel):
version: str = "0.0.0"
region: Region
instance: Instance
download: Download

View File

@@ -8,6 +8,7 @@ from copy import deepcopy
from datetime import datetime, timedelta
from itertools import islice
from pathlib import Path
from distutils.version import LooseVersion
import m3u8
import regex
@@ -15,7 +16,7 @@ from bs4 import BeautifulSoup
from creart import it
from pydantic import ValidationError
from src.config import Config
from src.config import Config, CONFIG_VERSION
from src.exceptions import NotTimeSyncedLyricsException
from src.logger import GlobalLogger
from src.models import PlaylistInfo
@@ -297,3 +298,7 @@ def query_language(region: str):
def language_exist(region: str, language: str):
_, languages = query_language(region)
return language in languages
def config_outdated():
return LooseVersion(it(Config).version) < LooseVersion(CONFIG_VERSION)