Files
MediaManager/metadata_relay/app/tvdb.py
Maximilian Dorninger a39e0d204a Ruff enable type annotations rule (#362)
This PR enables the ruff rule for return type annotations (ANN), and
adds the ty package for type checking.
2026-01-06 17:07:19 +01:00

45 lines
1.3 KiB
Python

import logging
import os
import tvdb_v4_official
from fastapi import APIRouter
log = logging.getLogger(__name__)
tvdb_api_key = os.getenv("TVDB_API_KEY")
router = APIRouter(prefix="/tvdb", tags=["TVDB"])
if tvdb_api_key is None:
log.warning("TVDB_API_KEY environment variable is not set.")
else:
tvdb_client = tvdb_v4_official.TVDB(tvdb_api_key)
@router.get("/tv/trending")
async def get_tvdb_trending_tv() -> list:
return tvdb_client.get_all_series()
@router.get("/tv/search")
async def search_tvdb_tv(query: str) -> list:
return tvdb_client.search(query)
@router.get("/tv/shows/{show_id}")
async def get_tvdb_show(show_id: int) -> dict:
return tvdb_client.get_series_extended(show_id)
@router.get("/tv/seasons/{season_id}")
async def get_tvdb_season(season_id: int) -> dict:
return tvdb_client.get_season_extended(season_id)
@router.get("/movies/trending")
async def get_tvdb_trending_movies() -> list:
return tvdb_client.get_all_movies()
@router.get("/movies/search")
async def search_tvdb_movies(query: str) -> list:
return tvdb_client.search(query)
@router.get("/movies/{movie_id}")
async def get_tvdb_movie(movie_id: int) -> dict:
return tvdb_client.get_movie_extended(movie_id)