refactor(config): retire RuntimeSettingsCompat host usage

This commit is contained in:
jxxghp
2026-08-26 15:55:21 +08:00
parent cdab54254d
commit 9dbe424c3d
162 changed files with 1966 additions and 1745 deletions
+9 -10
View File
@@ -8,9 +8,8 @@ from typing import Any, Iterable, Optional, Tuple, Union
from requests import Session
from app.runtime.cache import cached
from app.runtime.settings import RuntimeSettingsCompat
from app.runtime.settings import get_runtime_setting
settings = RuntimeSettingsCompat()
from app.domain.context import (
MusicAlbumInfo,
MusicArtistInfo,
@@ -1761,7 +1760,7 @@ class MusicBrainzModule(_ModuleBase):
if not release_group_id:
return None
# 支持配置音乐封面代理地址,解决 coverartarchive.org 无法访问的问题
base = (settings.MUSIC_COVER_PROXY or "https://coverartarchive.org").rstrip("/")
base = (get_runtime_setting('MUSIC_COVER_PROXY') or "https://coverartarchive.org").rstrip("/")
return f"{base}/release-group/{release_group_id}/front-500"
@classmethod
@@ -1795,7 +1794,7 @@ class MusicBrainzModule(_ModuleBase):
await asyncio.sleep(delay)
@classmethod
@cached(maxsize=settings.CONF.musicbrainz, ttl=settings.CONF.meta, skip_none=True)
@cached(maxsize=get_runtime_setting('CONF').musicbrainz, ttl=get_runtime_setting('CONF').meta, skip_none=True)
def _request_json(
cls,
path: str,
@@ -1811,10 +1810,10 @@ class MusicBrainzModule(_ModuleBase):
cls._wait_for_rate_limit()
response = RequestUtils(
headers={
"User-Agent": f"{settings.USER_AGENT} (https://github.com/jxxghp/MoviePilot)",
"User-Agent": f"{get_runtime_setting('USER_AGENT')} (https://github.com/jxxghp/MoviePilot)",
"Accept": "application/json",
},
proxies=settings.PROXY,
proxies=get_runtime_setting('PROXY'),
session=cls._get_session(),
timeout=20,
).get_res(f"{cls._base_url}{path}", params=params)
@@ -1850,8 +1849,8 @@ class MusicBrainzModule(_ModuleBase):
@classmethod
@cached(
maxsize=settings.CONF.musicbrainz,
ttl=settings.CONF.meta,
maxsize=get_runtime_setting('CONF').musicbrainz,
ttl=get_runtime_setting('CONF').meta,
skip_none=True,
shared_key="_request_json",
)
@@ -1866,10 +1865,10 @@ class MusicBrainzModule(_ModuleBase):
await cls._async_wait_for_rate_limit()
response = await AsyncRequestUtils(
headers={
"User-Agent": f"{settings.USER_AGENT} (https://github.com/jxxghp/MoviePilot)",
"User-Agent": f"{get_runtime_setting('USER_AGENT')} (https://github.com/jxxghp/MoviePilot)",
"Accept": "application/json",
},
proxies=settings.PROXY,
proxies=get_runtime_setting('PROXY'),
timeout=20,
).get_res(f"{cls._base_url}{path}", params=params)
if response is None:
+4 -5
View File
@@ -6,9 +6,8 @@ from time import time
from typing import Optional
from app.runtime.cache import FileCache, TTLCache
from app.runtime.settings import RuntimeSettingsCompat
from app.runtime.settings import get_runtime_setting
settings = RuntimeSettingsCompat()
from app.domain.context import MusicInfo
from app.domain.meta.metamusic import MetaMusic
from app.runtime.log import logger
@@ -37,15 +36,15 @@ class MusicBrainzCache(metaclass=WeakSingleton):
def __init__(self):
"""初始化音乐识别缓存并恢复未过期的持久化数据。"""
self.maxsize = settings.CONF.musicbrainz
self.ttl = settings.CONF.meta
self.maxsize = get_runtime_setting('CONF').musicbrainz
self.ttl = get_runtime_setting('CONF').meta
self.region = "__musicbrainz_cache__"
self._cache = TTLCache(region=self.region, maxsize=self.maxsize, ttl=self.ttl)
self._expires_at: dict[str, float] = {}
self._dirty = False
self._file_cache = None
if not self._cache.is_redis():
self._file_cache = FileCache(base=settings.CACHE_PATH, ttl=self.ttl)
self._file_cache = FileCache(base=get_runtime_setting('CACHE_PATH'), ttl=self.ttl)
self._restore()
def _restore(self) -> None: