Files
MoviePilot/app/modules/themoviedb/tmdbv3api/objs/trending.py
2025-07-31 08:34:47 +08:00

157 lines
4.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from ..tmdb import TMDb
class Trending(TMDb):
_urls = {"trending": "/trending/%s/%s"}
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):
"""
Get all daily trending
:param page: int
:return:
"""
return self._trending(media_type="all", time_window="day", page=page)
def all_week(self, page=1):
"""
Get all weekly trending
:param page: int
:return:
"""
return self._trending(media_type="all", time_window="week", page=page)
def movie_day(self, page=1):
"""
Get movie daily trending
:param page: int
:return:
"""
return self._trending(media_type="movie", time_window="day", page=page)
def movie_week(self, page=1):
"""
Get movie weekly trending
:param page: int
:return:
"""
return self._trending(media_type="movie", time_window="week", page=page)
def tv_day(self, page=1):
"""
Get tv daily trending
:param page: int
:return:
"""
return self._trending(media_type="tv", time_window="day", page=page)
def tv_week(self, page=1):
"""
Get tv weekly trending
:param page: int
:return:
"""
return self._trending(media_type="tv", time_window="week", page=page)
def person_day(self, page=1):
"""
Get person daily trending
:param page: int
:return:
"""
return self._trending(media_type="person", time_window="day", page=page)
def person_week(self, page=1):
"""
Get person weekly trending
:param page: int
:return:
"""
return self._trending(media_type="person", time_window="week", page=page)
# 异步版本方法
async def _async_trending(self, media_type="all", time_window="day", page=1):
"""
Get trending, TTLCache 12 hours异步版本
"""
return await self._async_request_obj(
self._urls["trending"] % (media_type, time_window),
params="page=%s" % page,
key="results",
call_cached=False
)
async def async_all_day(self, page=1):
"""
Get all daily trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="all", time_window="day", page=page)
async def async_all_week(self, page=1):
"""
Get all weekly trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="all", time_window="week", page=page)
async def async_movie_day(self, page=1):
"""
Get movie daily trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="movie", time_window="day", page=page)
async def async_movie_week(self, page=1):
"""
Get movie weekly trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="movie", time_window="week", page=page)
async def async_tv_day(self, page=1):
"""
Get tv daily trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="tv", time_window="day", page=page)
async def async_tv_week(self, page=1):
"""
Get tv weekly trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="tv", time_window="week", page=page)
async def async_person_day(self, page=1):
"""
Get person daily trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="person", time_window="day", page=page)
async def async_person_week(self, page=1):
"""
Get person weekly trending异步版本
:param page: int
:return:
"""
return await self._async_trending(media_type="person", time_window="week", page=page)