ONesAPI / server /listing.py
BinaryONe
Configured Mapping of Listings
133cda9
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})