Files
streamrip-ui/backend/app/main.py
T
loki 008c713840
CI / backend-tests (push) Successful in 11s
Docker images / backend (push) Successful in 8s
Docker images / frontend (push) Successful in 25s
CI / docker (push) Successful in 3s
feat: commit-hash in UI + korb vor downloads
2026-10-04 14:55:02 +02:00

66 lines
1.8 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
import logging
from app.core import settings
from app.api import search, downloads, history, config, files, artist, album, playlist, discover, podcast
logger = logging.getLogger("streamrip-ui")
logger.setLevel(logging.INFO)
if not logger.handlers:
_handler = logging.StreamHandler()
_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
logger.addHandler(_handler)
@asynccontextmanager
async def lifespan(app: FastAPI):
from app.services.streamrip_service import _ensure_config_exists
try:
if _ensure_config_exists():
logger.info("config.toml angelegt: %s", settings.CONFIG_PATH)
else:
logger.info("config.toml gefunden: %s", settings.CONFIG_PATH)
except Exception as e:
logger.warning("config.toml konnte nicht angelegt/geprüft werden: %s", e)
yield
app = FastAPI(title="streamrip-ui", lifespan=lifespan)
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:3000", "http://127.0.0.1:3000"],
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/api/health")
def health():
return {"status": "ok"}
@app.get("/api/version")
def version():
return {"version": settings.APP_VERSION, "commit": settings.APP_COMMIT}
@app.get("/api/sources")
def sources():
return {"sources": settings.SOURCES}
app.include_router(search.router)
app.include_router(downloads.router)
app.include_router(history.router)
app.include_router(config.router)
app.include_router(files.router)
app.include_router(artist.router)
app.include_router(album.router)
app.include_router(playlist.router)
app.include_router(discover.router)
app.include_router(podcast.router)