import os import jinja2 import aiohttp 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) # Define the path to the static folder static_folder = os.path.join(os.path.dirname(__file__), '..','template') 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 = os.path.join(static_folder, "play.html") #template_file = "FileStream/server/template/play.html" else: #template_file = "FileStream/server/template/dl.html" template_file = os.path.join(static_folder, "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()) #print(f"* Loading Template file_name: {file_name}, file_url: {src}, file_size: {file_size}") return template.render(file_name=file_name, file_url=src, file_size=file_size, static_url='/static/') 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()