|
|
| 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 |
|
|
| |
| 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 |
|
|
|
|
| |
| 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 |
| |
| except Exception as e: |
| logging.error(f"Error while streaming file: {str(e)}") |
| traceback.print_exc() |
| raise web.HTTPInternalServerError(text=str(e)) |