Mercurial > code > home > repos > video
view video.py @ 5:75b54be050bc
show one subdir of archive at once, with folders and parents-breadcrumbs
author | drewp@bigasterisk.com |
---|---|
date | Thu, 30 Mar 2023 20:39:40 -0700 |
parents | c8a41359505c |
children | ccfea3625cf6 |
line wrap: on
line source
import logging from prometheus_client import Gauge from starlette.applications import Starlette from starlette.requests import Request from starlette.responses import HTMLResponse, JSONResponse from starlette.routing import Route from starlette_exporter import PrometheusMiddleware, handle_metrics from video_service import findInDir, findSubdirs logging.basicConfig(level=logging.DEBUG) log = logging.getLogger() def root(req): return HTMLResponse("api") def videos(req: Request) -> JSONResponse: subdir = req.query_params.get('subdir', '/') # danger user input return JSONResponse({ "videos": [{ 'webRelPath': vf.webRelPath, 'label': vf.label, } for vf in findInDir(subdir)], "subdirs": list(findSubdirs(subdir)), }) def main(): app = Starlette( debug=True, routes=[ Route('/video/api/', root), Route('/video/api/videos', videos), ], ) app.add_middleware(PrometheusMiddleware, app_name='video_api') app.add_route("/metrics", handle_metrics) return app app = main()