From 7cd97c78b18400e8808b86fc87bf0bcc5b8f96e6 Mon Sep 17 00:00:00 2001 From: benex Date: Fri, 22 Nov 2024 23:21:58 +0300 Subject: [PATCH] feat(config): make the max_cache_lifetime configurable --- fastanime/cli/config.py | 14 ++++++++++++++ fastanime/libs/anime_provider/base_provider.py | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/fastanime/cli/config.py b/fastanime/cli/config.py index ef56893..32bdd68 100644 --- a/fastanime/cli/config.py +++ b/fastanime/cli/config.py @@ -51,6 +51,7 @@ class Config(object): "image_previews": "True" if S_PLATFORM != "win32" else "False", "normalize_titles": "True", "notification_duration": "2", + "max_cache_lifetime": "03:00:00", "player": "mpv", "preferred_history": "local", "preferred_language": "english", @@ -128,6 +129,14 @@ class Config(object): self.notification_duration = self.configparser.getint( "general", "notification_duration" ) + max_cache_lifetime = list( + map(int, self.configparser.get("general", "max_cache_lifetime").split(":")) + ) + self.max_cache_lifetime = ( + max_cache_lifetime[0] * 86400 + + max_cache_lifetime[1] * 3600 + + max_cache_lifetime[2] * 60 + ) self.player = self.configparser.get("stream", "player") self.preferred_history = self.configparser.get("stream", "preferred_history") self.preferred_language = self.configparser.get("general", "preferred_language") @@ -396,6 +405,11 @@ force_forward_tracking = {self.force_forward_tracking} # from the cached_requests_db cache_requests = {self.cache_requests} +# the max lifetime for a cached request +# defaults to 3days = 03:00:00 +# this is the time after which a cached request will be deleted (technically : ) +max_cache_lifetime = {self.max_cache_lifetime} + # whether to use a persistent store (basically a sqlitedb) for storing some data the provider requires # to enable a seamless experience [true/false] # this option exists primarily because i think it may help in the optimization diff --git a/fastanime/libs/anime_provider/base_provider.py b/fastanime/libs/anime_provider/base_provider.py index 8de9941..ad8c956 100644 --- a/fastanime/libs/anime_provider/base_provider.py +++ b/fastanime/libs/anime_provider/base_provider.py @@ -19,7 +19,10 @@ class AnimeProvider: from ..common.requests_cacher import CachedRequestsSession self.session = CachedRequestsSession( - os.path.join(APP_CACHE_DIR, "cached_requests.db") + os.path.join(APP_CACHE_DIR, "cached_requests.db"), + max_lifetime=int( + os.environ.get("FASTANIME_MAX_CACHE_LIFETIME", 259200) + ), ) else: self.session = requests.session()