66from app .chain .bangumi import BangumiChain
77from app .chain .douban import DoubanChain
88from app .chain .tmdb import TmdbChain
9- from app .core .cache import cached
9+ from app .core .cache import cached , fresh
1010from app .core .config import settings , global_vars
1111from app .helper .image import ImageHelper
1212from app .log import logger
@@ -27,9 +27,11 @@ class RecommendChain(ChainBase, metaclass=Singleton):
2727 # 推荐缓存区域
2828 recommend_cache_region = "recommend"
2929
30- def refresh_recommend (self ):
30+ def refresh_recommend (self , manual : bool = False ):
3131 """
3232 刷新推荐
33+
34+ :param manual: 手动触发
3335 """
3436 logger .debug ("Starting to refresh Recommend data." )
3537
@@ -62,7 +64,9 @@ def refresh_recommend(self):
6264 if method in methods_finished :
6365 continue
6466 logger .debug (f"Fetch { method .__name__ } data for page { page } ." )
65- data = method (page = page )
67+ # 手动触发的刷新,总是需要获取最新数据
68+ with fresh (manual ):
69+ data = method (page = page )
6670 if not data :
6771 logger .debug ("All recommendation methods have finished fetching data. Ending pagination early." )
6872 methods_finished .add (method )
@@ -90,7 +94,6 @@ def __cache_posters(self, datas: List[dict]):
9094 poster_path = data .get ("poster_path" )
9195 if poster_path :
9296 poster_url = poster_path .replace ("original" , "w500" )
93- logger .debug (f"Caching poster image: { poster_url } " )
9497 self .__fetch_and_save_image (poster_url )
9598
9699 @staticmethod
0 commit comments