From de1c2c98d2ebb4411fadb7a564ea5c90cce93b17 Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Sun, 22 Dec 2024 01:03:44 +0800 Subject: [PATCH] feat(recommend): add log_execution_time decorator to RecommendChain methods --- app/chain/recommend.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/chain/recommend.py b/app/chain/recommend.py index 51f37e45..811001ba 100644 --- a/app/chain/recommend.py +++ b/app/chain/recommend.py @@ -4,7 +4,9 @@ from app.chain import ChainBase from app.chain.bangumi import BangumiChain from app.chain.douban import DoubanChain from app.chain.tmdb import TmdbChain +from app.log import logger from app.schemas import MediaType +from app.utils.common import log_execution_time from app.utils.singleton import Singleton @@ -19,6 +21,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): self.doubanchain = DoubanChain() self.bangumichain = BangumiChain() + @log_execution_time(logger=logger) def tmdb_movies(self, sort_by: str = "popularity.desc", with_genres: str = "", with_original_language: str = "", page: int = 1) -> Any: """ @@ -31,6 +34,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): page=page) return [movie.to_dict() for movie in movies] if movies else [] + @log_execution_time(logger=logger) def tmdb_tvs(self, sort_by: str = "popularity.desc", with_genres: str = "", with_original_language: str = "", page: int = 1) -> Any: """ @@ -43,6 +47,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): page=page) return [tv.to_dict() for tv in tvs] if tvs else [] + @log_execution_time(logger=logger) def tmdb_trending(self, page: int = 1) -> Any: """ TMDB流行趋势 @@ -50,6 +55,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): infos = self.tmdbchain.tmdb_trending(page=page) return [info.to_dict() for info in infos] if infos else [] + @log_execution_time(logger=logger) def bangumi_calendar(self, page: int = 1, count: int = 30) -> Any: """ Bangumi每日放送 @@ -57,6 +63,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): medias = self.bangumichain.calendar() return [media.to_dict() for media in medias[(page - 1) * count: page * count]] if medias else [] + @log_execution_time(logger=logger) def movie_showing(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣正在热映 @@ -64,6 +71,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): movies = self.doubanchain.movie_showing(page=page, count=count) return [media.to_dict() for media in movies] if movies else [] + @log_execution_time(logger=logger) def douban_movies(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> Any: """ 豆瓣最新电影 @@ -72,6 +80,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): sort=sort, tags=tags, page=page, count=count) return [media.to_dict() for media in movies] if movies else [] + @log_execution_time(logger=logger) def douban_tvs(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> Any: """ 豆瓣最新电视剧 @@ -80,6 +89,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): sort=sort, tags=tags, page=page, count=count) return [media.to_dict() for media in tvs] if tvs else [] + @log_execution_time(logger=logger) def movie_top250(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣电影TOP250 @@ -87,6 +97,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): movies = self.doubanchain.movie_top250(page=page, count=count) return [media.to_dict() for media in movies] if movies else [] + @log_execution_time(logger=logger) def tv_weekly_chinese(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣国产剧集榜 @@ -94,6 +105,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): tvs = self.doubanchain.tv_weekly_chinese(page=page, count=count) return [media.to_dict() for media in tvs] if tvs else [] + @log_execution_time(logger=logger) def tv_weekly_global(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣全球剧集榜 @@ -101,6 +113,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): tvs = self.doubanchain.tv_weekly_global(page=page, count=count) return [media.to_dict() for media in tvs] if tvs else [] + @log_execution_time(logger=logger) def tv_animation(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣热门动漫 @@ -108,6 +121,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): tvs = self.doubanchain.tv_animation(page=page, count=count) return [media.to_dict() for media in tvs] if tvs else [] + @log_execution_time(logger=logger) def movie_hot(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣热门电影 @@ -115,6 +129,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): movies = self.doubanchain.movie_hot(page=page, count=count) return [media.to_dict() for media in movies] if movies else [] + @log_execution_time(logger=logger) def tv_hot(self, page: int = 1, count: int = 30) -> Any: """ 豆瓣热门电视剧