mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
为TheMovieDb模块添加异步支持(part 1)
This commit is contained in:
@@ -32,3 +32,24 @@ class Discover(TMDb):
|
||||
:return:
|
||||
"""
|
||||
return self._request_obj(self._urls["tv"], urlencode(params_tuple), key="results", call_cached=False)
|
||||
|
||||
@cached(maxsize=1, ttl=43200)
|
||||
async def async_discover_movies(self, params_tuple):
|
||||
"""
|
||||
Discover movies by different types of data like average rating, number of votes, genres and certifications.(异步版本)
|
||||
:param params_tuple: dict
|
||||
:return:
|
||||
"""
|
||||
params = dict(params_tuple)
|
||||
return await self._async_request_obj(self._urls["movies"], urlencode(params), key="results", call_cached=False)
|
||||
|
||||
@cached(maxsize=1, ttl=43200)
|
||||
async def async_discover_tv_shows(self, params_tuple):
|
||||
"""
|
||||
Discover TV shows by different types of data like average rating, number of votes, genres,
|
||||
the network they aired on and air dates.(异步版本)
|
||||
:param params_tuple: dict
|
||||
:return:
|
||||
"""
|
||||
return await self._async_request_obj(self._urls["tv"], urlencode(params_tuple), key="results",
|
||||
call_cached=False)
|
||||
|
||||
@@ -142,3 +142,71 @@ class Search(TMDb):
|
||||
params=params,
|
||||
key="results"
|
||||
)
|
||||
|
||||
async def async_multi(self, term, adult=None, region=None, page=1):
|
||||
"""
|
||||
Search multiple models in a single request.(异步版本)
|
||||
Multi search currently supports searching for movies, tv shows and people in a single request.
|
||||
:param term: str
|
||||
:param adult: bool
|
||||
:param region: str
|
||||
:param page: int
|
||||
:return:
|
||||
"""
|
||||
params = "query=%s&page=%s" % (quote(term), page)
|
||||
if adult is not None:
|
||||
params += "&include_adult=%s" % "true" if adult else "false"
|
||||
if region is not None:
|
||||
params += "®ion=%s" % quote(region)
|
||||
return await self._async_request_obj(
|
||||
self._urls["multi"],
|
||||
params=params,
|
||||
key="results"
|
||||
)
|
||||
|
||||
async def async_movies(self, term, adult=None, region=None, year=None, release_year=None, page=1):
|
||||
"""
|
||||
Search for movies.(异步版本)
|
||||
:param term: str
|
||||
:param adult: bool
|
||||
:param region: str
|
||||
:param year: int
|
||||
:param release_year: int
|
||||
:param page: int
|
||||
:return:
|
||||
"""
|
||||
params = "query=%s&page=%s" % (quote(term), page)
|
||||
if adult is not None:
|
||||
params += "&include_adult=%s" % "true" if adult else "false"
|
||||
if region is not None:
|
||||
params += "®ion=%s" % quote(region)
|
||||
if year is not None:
|
||||
params += "&year=%s" % year
|
||||
if release_year is not None:
|
||||
params += "&primary_release_year=%s" % release_year
|
||||
|
||||
return await self._async_request_obj(
|
||||
self._urls["movies"],
|
||||
params=params,
|
||||
key="results"
|
||||
)
|
||||
|
||||
async def async_tv_shows(self, term, adult=None, release_year=None, page=1):
|
||||
"""
|
||||
Search for a TV show.(异步版本)
|
||||
:param term: str
|
||||
:param adult: bool
|
||||
:param release_year: int
|
||||
:param page: int
|
||||
:return:
|
||||
"""
|
||||
params = "query=%s&page=%s" % (quote(term), page)
|
||||
if adult is not None:
|
||||
params += "&include_adult=%s" % "true" if adult else "false"
|
||||
if release_year is not None:
|
||||
params += "&first_air_date_year=%s" % release_year
|
||||
return await self._async_request_obj(
|
||||
self._urls["tv_shows"],
|
||||
params=params,
|
||||
key="results"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user