This commit is contained in:
jxxghp
2023-10-05 07:44:21 +08:00
parent d995932a1c
commit 1a49c7c59e
3 changed files with 34 additions and 11 deletions

View File

@ -8,6 +8,7 @@ from functools import lru_cache
import requests
import requests.exceptions
from app.utils.http import RequestUtils
from .exceptions import TMDbException
logger = logging.getLogger(__name__)
@ -24,7 +25,13 @@ class TMDb(object):
TMDB_DOMAIN = "TMDB_DOMAIN"
REQUEST_CACHE_MAXSIZE = None
def __init__(self, obj_cached=True):
_req = None
def __init__(self, obj_cached=True, session=None):
if session is not None:
self._req = RequestUtils(session=session, proxies=self.proxies)
else:
self._req = RequestUtils(session=requests.Session(), proxies=self.proxies)
self._remaining = 40
self._reset = None
self._timeout = 15
@ -129,9 +136,13 @@ class TMDb(object):
@lru_cache(maxsize=REQUEST_CACHE_MAXSIZE)
def cached_request(self, method, url, data, json):
with requests.Session() as s:
return s.request(method, url, data=data, json=json,
timeout=self._timeout, proxies=self.proxies)
return self.request(method, url, data, json)
def request(self, method, url, data, json):
if method == "GET":
return self._req.get_res(url, params=data, json=json)
else:
return self._req.post_res(url, data=data, json=json)
def cache_clear(self):
return self.cached_request.cache_clear()
@ -152,9 +163,7 @@ class TMDb(object):
if self.cache and self.obj_cached and call_cached and method != "POST":
req = self.cached_request(method, url, data, json)
else:
with requests.Session() as s:
req = s.request(method, url, data=data, json=json,
timeout=self._timeout, proxies=self.proxies)
req = self.request(method, url, data, json)
headers = req.headers