import os import json import logging import asyncio import traceback from aiohttp import web from pyrogram import raw from aiohttp.http_exceptions import BadStatusLine from FileStream.utils.FileProcessors.human_readable import humanbytes from FileStream.config import Telegram, Server from FileStream.DBFiles.database import PUBLICFilesDB db = PUBLICFilesDB(Telegram.DATABASE_URL, Telegram.SESSION_NAME) async def AllMovies10(request: web.Request): offset = request.rel_url.query.get('offset', 0) if request.rel_url.query.get('offset' ,0) else 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 "", "description": f"Size: {humanbytes(file['file']['file_size'])}\nType: {file['file']['mime_type']}", }) return web.json_response({"count": len(results), "results": results, "next_offset": next_offset}) # Correct JSON response format async def AllSeries10(request: web.Request): offset = request.rel_url.query.get('offset', 0) if request.rel_url.query.get('offset' ,0) else 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 "", "description": f"Size: {humanbytes(file['file']['file_size'])}\nType: {file['file']['mime_type']}", }) return web.json_response({"count": len(results), "results": results, "next_offset": next_offset}) # Correct JSON response format async def Leatest10(request: web.Request): offset = request.rel_url.query.get('offset', 0) if request.rel_url.query.get('offset' ,0) else 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 "", "description": f"Size: {humanbytes(file['file']['file_size'])}\nType: {file['file']['mime_type']}", }) return web.json_response({"count": len(results), "results": results, "next_offset": next_offset}) # Correct JSON response format