fsb / FileStream /server /APP /render_template.py
BinaryONe
Miseleneous Fixes - Update on HTMLs
6e9b48a
raw
history blame
1.58 kB
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()