Spaces:
Running
Running
| import aiohttp | |
| import jinja2 | |
| import urllib.parse | |
| from FileStream.config import Telegram, Server | |
| from FileStream.Database import Database | |
| from FileStream.Tools.file import humanbytes | |
| db = Database(Telegram.DATABASE_URL, Telegram.SESSION_NAME) | |
| async def render_page(db_id): | |
| file_data = await db.get_file(db_id) | |
| src = urllib.parse.urljoin(Server.URL, f'api/dl/{file_data["_id"]}') | |
| file_size = humanbytes(file_data['file']['file_size']) | |
| file_name = file_data['file']['file_name'].replace("_", " ") | |
| if str((file_data['file']['mime_type']).split('/')[0].strip()) == 'video': | |
| template_file = "FileStream/server/template/play.html" | |
| else: | |
| template_file = "FileStream/server/template/dl.html" | |
| async with aiohttp.ClientSession() as s: | |
| async with s.get(src) as u: | |
| file_size = humanbytes(int(u.headers.get('Content-Length'))) | |
| with open(template_file) as f: | |
| template = jinja2.Template(f.read()) | |
| return template.render(file_name=file_name, | |
| file_url=src, | |
| file_size=file_size) | |
| async def render_upload(): | |
| template_file = "FileStream/server/template/upload.html" | |
| with open(template_file) as f: | |
| template = jinja2.Template(f.read()) | |
| return template.render() | |