|
from telethon import TelegramClient |
|
from fastapi import Request |
|
|
|
|
|
class Sanity: |
|
client: TelegramClient |
|
media = None |
|
chat_id: int = -1001925049183 |
|
file_id: int |
|
req: Request |
|
limit: int |
|
offset: int |
|
|
|
async def file_exists(self): |
|
try: |
|
self.media = await self.client.get_messages( |
|
entity=self.chat_id, ids=self.file_id |
|
) |
|
return self.media |
|
except Exception as e: |
|
pass |
|
|
|
def check_ranges(self): |
|
range_header = self.req.headers.get("Range") |
|
if range_header: |
|
offset = range_header.split("=")[1].split("-")[0] or 0 |
|
limit = range_header.split("=")[1].split("-")[1] or self.media.file.size |
|
else: |
|
offset = 0 |
|
limit = self.media.file.size |
|
self.offset = int(offset) |
|
self.limit = int(limit) |
|
|
|
if ( |
|
(limit > self.media.file.size) |
|
or (self.offset < 0) |
|
or (self.limit < self.offset) |
|
): |
|
return False |
|
else: |
|
return True |
|
|