fsb / FileStream /server /API /downloads.py
BinaryONe
Callback Update
c37663e
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
# Stream file handler with optimized error handling
async def stream_handler(request: web.Request):
try:
path = request.match_info["path"]
return await media_streamer(request, path, "FAST")
except InvalidHash as e:
raise web.HTTPForbidden(text=e.message)
except FIleNotFound as e:
raise web.HTTPNotFound(text=e.message)
except (AttributeError, BadStatusLine, ConnectionResetError):
pass # Handle expected errors silently
except Exception as e:
logging.error(f"Error while streaming file: {str(e)}")
traceback.print_exc()
raise web.HTTPInternalServerError(text=str(e))