File size: 3,053 Bytes
1330377
 
 
 
 
 
 
133cda9
 
 
 
1330377
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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})