Mbonea-Mjema
ok
00c68f3
raw
history blame contribute delete
No virus
1.7 kB
from src.Classes.Sanity import Sanity
from aiohttp.web import Request
from aiohttp import web
from telethon import TelegramClient
from telethon.tl.types import Message
from src.Classes.Download import Download
class Handler:
req: Request
client: TelegramClient
chat_id = -1001278111932
message: Message
route: str
head = False
sanity: Sanity
def __init__(self, req: Request, client, route=None, head=False):
self.head = head
self.req = req
self.client = client
self.sanity = Sanity()
self.sanity.client = self.client
self.sanity.chat_id = self.chat_id
self.sanity.req = self.req
self.sanity.file_id = int(self.req.match_info["id"])
async def sanity_checks(self):
self.message = await self.sanity.file_exists()
try:
if not self.message.media:
return web.json_response(
status=404,
data={"Error": "File Does not Exist", "route": self.route},
)
except:
return web.json_response(
status=404, data={"Error": "File Does not Exist", "route": self.route}
)
if self.sanity.check_ranges() == False:
return web.json_response(
status=416,
text="416: Range Not Satisfiable",
headers={"Content-Range": f"bytes */{self.message.file.size}"},
)
async def process_request(self):
response = await self.sanity_checks()
if type(response) is web.Response:
return response
# download/stream
return await Download(self).handle_request()