From a278c80951e6af511df9ce064ce3da9513e76e4c Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 24 May 2024 09:29:51 +0800 Subject: [PATCH] =?UTF-8?q?fix=20#2151=20TMDB=E5=8F=91=E7=8E=B0=E5=92=8C?= =?UTF-8?q?=E8=B6=8B=E5=8A=BF=E4=BF=AE=E6=94=B9=E4=B8=BATTL=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/themoviedb/tmdbv3api/objs/discover.py | 7 +++++-- app/modules/themoviedb/tmdbv3api/objs/trending.py | 7 +++++++ app/modules/themoviedb/tmdbv3api/tmdb.py | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/modules/themoviedb/tmdbv3api/objs/discover.py b/app/modules/themoviedb/tmdbv3api/objs/discover.py index de7964cb..3e659cc4 100644 --- a/app/modules/themoviedb/tmdbv3api/objs/discover.py +++ b/app/modules/themoviedb/tmdbv3api/objs/discover.py @@ -1,4 +1,5 @@ from ..tmdb import TMDb +from cachetools import cached, TTLCache try: from urllib import urlencode @@ -12,14 +13,16 @@ class Discover(TMDb): "tv": "/discover/tv" } + @cached(cache=TTLCache(maxsize=1, ttl=43200)) def discover_movies(self, params): """ Discover movies by different types of data like average rating, number of votes, genres and certifications. :param params: dict :return: """ - return self._request_obj(self._urls["movies"], urlencode(params), key="results") + return self._request_obj(self._urls["movies"], urlencode(params), key="results", call_cached=False) + @cached(cache=TTLCache(maxsize=1, ttl=43200)) def discover_tv_shows(self, params): """ Discover TV shows by different types of data like average rating, number of votes, genres, @@ -27,4 +30,4 @@ class Discover(TMDb): :param params: dict :return: """ - return self._request_obj(self._urls["tv"], urlencode(params), key="results") + return self._request_obj(self._urls["tv"], urlencode(params), key="results", call_cached=False) diff --git a/app/modules/themoviedb/tmdbv3api/objs/trending.py b/app/modules/themoviedb/tmdbv3api/objs/trending.py index c7ee5ec2..7338792b 100644 --- a/app/modules/themoviedb/tmdbv3api/objs/trending.py +++ b/app/modules/themoviedb/tmdbv3api/objs/trending.py @@ -1,14 +1,21 @@ +from cachetools import cached, TTLCache + from ..tmdb import TMDb class Trending(TMDb): _urls = {"trending": "/trending/%s/%s"} + @cached(cache=TTLCache(maxsize=1, ttl=43200)) def _trending(self, media_type="all", time_window="day", page=1): + """ + Get trending, TTLCache 12 hours + """ return self._request_obj( self._urls["trending"] % (media_type, time_window), params="page=%s" % page, key="results", + call_cached=False ) def all_day(self, page=1): diff --git a/app/modules/themoviedb/tmdbv3api/tmdb.py b/app/modules/themoviedb/tmdbv3api/tmdb.py index ccd5afeb..2117c1be 100644 --- a/app/modules/themoviedb/tmdbv3api/tmdb.py +++ b/app/modules/themoviedb/tmdbv3api/tmdb.py @@ -141,7 +141,7 @@ class TMDb(object): def cached_request(self, method, url, data, json, _ts=datetime.strftime(datetime.now(), '%Y%m%d')): """ - 缓存请求,时间默认1天,None不缓存 + 缓存请求 """ return self.request(method, url, data, json)