teleapi / FileStream /server /APP /render_template.py
BinaryONe
Miseleneous Fixes - Update on HTMLs
21802f4
raw
history blame
1.45 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())
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()