import os | |
from aiohttp import web | |
from aiohttp.http_exceptions import BadStatusLine | |
#--------------------------Local Import -----------------------------# | |
from ..Functions.downloader import media_streamer | |
from .render_template import render_page, render_upload | |
from FileStream.Exceptions import FileNotFound, InvalidHash | |
#------------------------------Functions------------------------------# | |
tasks = [] | |
#@sub_app.get("/watch/{path}", allow_head=True) | |
async def stream_handler(request: web.Request): | |
try: | |
path = request.match_info["path"] | |
return web.Response(text=await render_page(path), content_type='text/html') | |
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 | |
#@sub_app.get("/up", allow_head=True) | |
async def upload_handler(request: web.Request): | |
# global faster_client,index,session, new_file_id | |
await asyncio.gather(*tasks) | |
try: | |
return web.Response(text=await render_upload(), content_type='text/html') | |
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 | |