Spaces:
Paused
Paused
| 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 | |
| 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}) | |
| 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}) | |
| 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}) | |