File size: 1,861 Bytes
12e4bed 113fcd6 5d97eb1 12e4bed |
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 |
import os
import json
import logging
import asyncio
import traceback
import aiohttp_cors
from aiohttp import web
from pyrogram import raw
from bson import ObjectId
from bson.json_util import dumps
from aiohttp.http_exceptions import BadStatusLine
#---------------------Local Imports----------------------------------#
from FileStream.bot import req_client
from ..Functions import media_streamer
from FileStream.Database import Database
from FileStream.config import Telegram, Server
from FileStream.Exceptions import FileNotFound, InvalidHash
from FileStream.APIs.TMDB.Endpoint import search_tmdb_any, search_tmdb_tv, search_tmdb_movies
# Upload endpoint with optimization (not reading entire file into memory)
async def upload_file(request: web.Request):
data = await request.post()
file = data.get('file').file
chunk = file.read() # Read the file in chunks to avoid memory overload
file_details = dict(
user_id="thebinary1",
dropzone_id=str(data["dzuuid"]),
file=dict(
file_id=str(data["dzuuid"]),
file_unique_id=str(data["dzuuid"]),
file_name=str(data.get('file').filename),
file_size=int(data["dztotalfilesize"]),
mime_type=mime_identifier(str(data.get('file').filename)),
part_size=int(data["dzchunksize"]),
file_part=int(data["dzchunkindex"]),
total_parts=int(data["dztotalchunkcount"])
),
time=Time_ISTKolNow(),
user_type="WEB",
privacy_type="PRIVATE"
)
client_req = await req_client() # Ensure client request is fast and optimized
tg_connect = TeleUploader(client_req["client"])
main = await tg_connect.upload_web_file(file_details, chunk)
return web.json_response({
"status": main.get("status"),
"message": main.get("message")
}) |