mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-18 00:53:57 +02:00
This PR enables the ruff rule for return type annotations (ANN), and adds the ty package for type checking.
55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
import logging
|
|
import os
|
|
|
|
import tmdbsimple
|
|
from fastapi import APIRouter
|
|
from tmdbsimple import TV, Movies, Search, Trending, TV_Seasons
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
tmdb_api_key = os.getenv("TMDB_API_KEY")
|
|
router = APIRouter(prefix="/tmdb", tags=["TMDB"])
|
|
|
|
if tmdb_api_key is None:
|
|
log.warning("TMDB_API_KEY environment variable is not set.")
|
|
else:
|
|
tmdbsimple.API_KEY = tmdb_api_key
|
|
|
|
@router.get("/tv/trending")
|
|
async def get_tmdb_trending_tv(language: str = "en") -> dict:
|
|
return Trending(media_type="tv").info(language=language)
|
|
|
|
@router.get("/tv/search")
|
|
async def search_tmdb_tv(query: str, page: int = 1, language: str = "en") -> dict:
|
|
return Search().tv(page=page, query=query, language=language)
|
|
|
|
@router.get("/tv/shows/{show_id}")
|
|
async def get_tmdb_show(show_id: int, language: str = "en") -> dict:
|
|
return TV(show_id).info(language=language)
|
|
|
|
@router.get("/tv/shows/{show_id}/external_ids")
|
|
async def get_tmdb_show_external_ids(show_id: int) -> dict:
|
|
return TV(show_id).external_ids()
|
|
|
|
@router.get("/tv/shows/{show_id}/{season_number}")
|
|
async def get_tmdb_season(season_number: int, show_id: int, language: str = "en") -> dict:
|
|
return TV_Seasons(season_number=season_number, tv_id=show_id).info(
|
|
language=language
|
|
)
|
|
|
|
@router.get("/movies/trending")
|
|
async def get_tmdb_trending_movies(language: str = "en") -> dict:
|
|
return Trending(media_type="movie").info(language=language)
|
|
|
|
@router.get("/movies/search")
|
|
async def search_tmdb_movies(query: str, page: int = 1, language: str = "en") -> dict:
|
|
return Search().movie(page=page, query=query, language=language)
|
|
|
|
@router.get("/movies/{movie_id}")
|
|
async def get_tmdb_movie(movie_id: int, language: str = "en") -> dict:
|
|
return Movies(movie_id).info(language=language)
|
|
|
|
@router.get("/movies/{movie_id}/external_ids")
|
|
async def get_tmdb_movie_external_ids(movie_id: int) -> dict:
|
|
return Movies(movie_id).external_ids()
|