make metadata_relay not require both tvdb and tmdb api keys

This commit is contained in:
maxDorninger
2025-06-28 17:53:59 +02:00
parent c7c982e1ed
commit 75c156e66d
3 changed files with 76 additions and 72 deletions

View File

@@ -8,48 +8,48 @@ from .cache import cache_response
log = logging.getLogger(__name__)
tmdb_api_key = os.getenv("TMDB_API_KEY")
router = APIRouter(prefix="/tmdb", tags=["TMDB"])
tmdbsimple.API_KEY = os.getenv("TMDB_API_KEY")
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")
@cache_response("tmdb_tv_trending", ttl=7200)
async def get_tmdb_trending_tv():
return Trending(media_type="tv").info()
@router.get("/tv/search")
@cache_response("tmdb_tv_search", ttl=14400)
async def search_tmdb_tv(query: str, page: int = 1):
return Search().tv(page=page, query=query, include_adult=True)
@router.get("/tv/shows/{show_id}")
@cache_response("tmdb_tv_show", ttl=28800)
async def get_tmdb_show(show_id: int):
return TV(show_id).info()
@router.get("/tv/shows/{show_id}/{season_number}")
@cache_response("tmdb_tv_season", ttl=28800)
async def get_tmdb_season(season_number: int, show_id: int):
return TV_Seasons(season_number=season_number, tv_id=show_id).info()
@router.get("/movies/trending")
@cache_response("tmdb_movies_trending", ttl=7200)
async def get_tmdb_trending_movies():
return Trending(media_type="movie").info()
@router.get("/movies/search")
@cache_response("tmdb_movies_search", ttl=14400)
async def search_tmdb_movies(query: str, page: int = 1):
return Search().movie(page=page, query=query, include_adult=True)
@router.get("/movies/{movie_id}")
@cache_response("tmdb_movie", ttl=28800)
async def get_tmdb_movie(movie_id: int):
return Movies(movie_id).info()
@router.get("/tv/trending")
@cache_response("tmdb_tv_trending", ttl=7200)
async def get_tmdb_trending_tv():
return Trending(media_type="tv").info()
@router.get("/tv/search")
@cache_response("tmdb_tv_search", ttl=14400)
async def search_tmdb_tv(query: str, page: int = 1):
return Search().tv(page=page, query=query, include_adult=True)
@router.get("/tv/shows/{show_id}")
@cache_response("tmdb_tv_show", ttl=28800)
async def get_tmdb_show(show_id: int):
return TV(show_id).info()
@router.get("/tv/shows/{show_id}/{season_number}")
@cache_response("tmdb_tv_season", ttl=28800)
async def get_tmdb_season(season_number: int, show_id: int):
return TV_Seasons(season_number=season_number, tv_id=show_id).info()
@router.get("/movies/trending")
@cache_response("tmdb_movies_trending", ttl=7200)
async def get_tmdb_trending_movies():
return Trending(media_type="movie").info()
@router.get("/movies/search")
@cache_response("tmdb_movies_search", ttl=14400)
async def search_tmdb_movies(query: str, page: int = 1):
return Search().movie(page=page, query=query, include_adult=True)
@router.get("/movies/{movie_id}")
@cache_response("tmdb_movie", ttl=28800)
async def get_tmdb_movie(movie_id: int):
return Movies(movie_id).info()

View File

@@ -7,48 +7,52 @@ from .cache import cache_response
log = logging.getLogger(__name__)
tvdb_api_key = os.getenv("TVDB_API_KEY")
router = APIRouter(prefix="/tvdb", tags=["TVDB"])
tvdb_client = tvdb_v4_official.TVDB(os.getenv("TVDB_API_KEY"))
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")
@cache_response("tvdb_tv_trending", ttl=7200)
async def get_tvdb_trending_tv():
return tvdb_client.get_all_series()
@router.get("/tv/trending")
@cache_response("tvdb_tv_trending", ttl=7200)
async def get_tvdb_trending_tv():
return tvdb_client.get_all_series()
@router.get("/tv/search")
@cache_response("tvdb_tv_search", ttl=14400)
async def search_tvdb_tv(query: str, page: int = 1):
return tvdb_client.search(query)
@router.get("/tv/search")
@cache_response("tvdb_tv_search", ttl=14400)
async def search_tvdb_tv(query: str, page: int = 1):
return tvdb_client.search(query)
@router.get("/tv/shows/{show_id}")
@cache_response("tvdb_tv_show", ttl=28800)
async def get_tvdb_show(show_id: int):
return tvdb_client.get_series_extended(show_id)
@router.get("/tv/shows/{show_id}")
@cache_response("tvdb_tv_show", ttl=28800)
async def get_tvdb_show(show_id: int):
return tvdb_client.get_series_extended(show_id)
@router.get("/tv/seasons/{season_id}")
@cache_response("tvdb_tv_season", ttl=28800)
async def get_tvdb_season(season_id: int):
return tvdb_client.get_season_extended(season_id)
@router.get("/tv/seasons/{season_id}")
@cache_response("tvdb_tv_season", ttl=28800)
async def get_tvdb_season(season_id: int):
return tvdb_client.get_season_extended(season_id)
@router.get("/movies/trending")
@cache_response("tvdb_movies_trending", ttl=7200)
async def get_tvdb_trending_movies():
return tvdb_client.get_all_movies()
@router.get("/movies/trending")
@cache_response("tvdb_movies_trending", ttl=7200)
async def get_tvdb_trending_movies():
return tvdb_client.get_all_movies()
@router.get("/movies/search")
@cache_response("tvdb_movies_search", ttl=14400)
async def search_tvdb_movies(query: str):
return tvdb_client.search(query)
@router.get("/movies/search")
@cache_response("tvdb_movies_search", ttl=14400)
async def search_tvdb_movies(query: str):
return tvdb_client.search(query)
@router.get("/movies/{movie_id}")
@cache_response("tvdb_movie", ttl=28800)
async def get_tvdb_movie(movie_id: int):
return tvdb_client.get_movie_extended(movie_id)
@router.get("/movies/{movie_id}")
@cache_response("tvdb_movie", ttl=28800)
async def get_tvdb_movie(movie_id: int):
return tvdb_client.get_movie_extended(movie_id)

View File

@@ -5,6 +5,7 @@ from starlette_exporter import PrometheusMiddleware, handle_metrics
from app.tmdb import router as tmdb_router
from app.tvdb import router as tvdb_router
print("Hello world!")
app = FastAPI(root_path=os.getenv("BASE_PATH"))
app.add_middleware(PrometheusMiddleware)
@@ -12,7 +13,6 @@ app.add_route("/metrics", handle_metrics)
app.include_router(tmdb_router)
app.include_router(tvdb_router)
print("Hello world!")
@app.get("/")