| |
|
| | 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.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)) |