Anilife: Implement HTTP caching with cache_ttl setting (default 300s)

This commit is contained in:
2026-01-07 00:39:21 +09:00
parent 2f0523b70d
commit 5f7521eb6b
3 changed files with 21 additions and 2 deletions

View File

@@ -82,6 +82,7 @@ class LogicAniLife(AnimeModuleBase):
"anilife_db_version": "1",
"anilife_url": "https://anilife.live",
"anilife_proxy_url": "",
"anilife_cache_ttl": "300", # HTTP cache TTL in seconds (5 minutes)
"anilife_download_path": os.path.join(path_data, P.package_name, "ohli24"),
"anilife_auto_make_folder": "True",
"anilife_auto_make_season_folder": "True",
@@ -101,6 +102,10 @@ class LogicAniLife(AnimeModuleBase):
"anilife_camoufox_installed": "False",
}
# Class variables for caching
cache_path = os.path.dirname(__file__)
session = None
@classmethod
def get_proxy(cls) -> str:
return P.ModelSetting.get("anilife_proxy_url")
@@ -112,6 +117,20 @@ class LogicAniLife(AnimeModuleBase):
return {"http": proxy, "https": proxy}
return None
@classmethod
def get_session(cls):
"""Get or create a cached session for HTTP requests."""
if cls.session is None:
cache_ttl = P.ModelSetting.get_int("anilife_cache_ttl")
cls.session = CachedSession(
os.path.join(cls.cache_path, "anilife_cache"),
backend="sqlite",
expire_after=cache_ttl,
cache_control=True,
)
logger.info(f"[Anilife] CachedSession initialized with TTL: {cache_ttl}s")
return cls.session
current_headers = None
current_data = None
referer = None