from fastapi import APIRouter, Query from fastapi.responses import JSONResponse from DBFiles.database import PUBLICFilesDB from Tools import size_calculator from .config import Server #from config import router = APIRouter( prefix="/list", tags=["list"], ) db = PUBLICFilesDB(Server.MONGO_DB_URI, Server.DB_NAME) # Replace with actual URI and database name @router.get("/movies") async def all_movies(offset: int = Query(0)): results = [] files, next_offset = await db.GetMoviesAllBy10(offset=offset) for file in files: results.append({ "id": f"{file['_id']}", "poster": file['poster'], "title": file['title'], "release_date": file['release_date'], "genre": file['genre'], "imdb_id": file['IMDB_id'], "type": file['type'], "file_name": file['file']['file_name'], "document_file_id": file['file']['file_id'], "caption": file['file']['file_name'] or "", "size":size_calculator(file['file']['file_size']), "video_type": file['file']['mime_type'] }) return JSONResponse(content={"count": len(results), "results": results, "next_offset": next_offset}) @router.get("/series") async def all_series(offset: int = Query(0)): results = [] files, next_offset = await db.GetSeriesAllBy10(offset=offset) for file in files: results.append({ "id": f"{file['_id']}", "poster": file['poster'], "title": file['title'], "release_date": file['release_date'], "genre": file['genre'], "imdb_id": file['IMDB_id'], "type": file['type'], "file_name": file['file']['file_name'], "document_file_id": file['file']['file_id'], "caption": file['file']['file_name'] or "", "size":size_calculator(file['file']['file_size']), "video_type": file['file']['mime_type'] }) return JSONResponse(content={"count": len(results), "results": results, "next_offset": next_offset}) @router.get("/latest") async def latest(offset: int = Query(0)): results = [] files, next_offset = await db.GetLatestAllBy10(offset=offset) for file in files: results.append({ "id": f"{file['_id']}", "poster": file['poster'], "title": file['title'], "release_date": file['release_date'], "description": file['description'], "genre": file['genre'], "imdb_id": file['IMDB_id'], "type": file['type'], "file_name": file['file']['file_name'], "document_file_id": file['file']['file_id'], "caption": file['file']['file_name'] or "", "size":size_calculator(file['file']['file_size']), "video_type": file['file']['mime_type'] }) return JSONResponse(content={"count": len(results), "results": results, "next_offset": next_offset})