2023-12-10 03:22:07 +05:30
|
|
|
import aiohttp
|
2024-01-06 15:16:14 +05:30
|
|
|
import jinja2
|
2023-12-10 03:22:07 +05:30
|
|
|
import urllib.parse
|
|
|
|
|
from FileStream.config import Telegram, Server
|
|
|
|
|
from FileStream.utils.database import Database
|
|
|
|
|
from FileStream.utils.human_readable 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'dl/{file_data["_id"]}')
|
2024-01-06 15:16:14 +05:30
|
|
|
file_size = humanbytes(file_data['file_size'])
|
|
|
|
|
file_name = file_data['file_name'].replace("_", " ")
|
2023-12-10 03:22:07 +05:30
|
|
|
|
|
|
|
|
if str((file_data['mime_type']).split('/')[0].strip()) == 'video':
|
2024-01-06 15:16:14 +05:30
|
|
|
template_file = "FileStream/template/play.html"
|
2023-12-10 03:22:07 +05:30
|
|
|
else:
|
2024-01-06 15:16:14 +05:30
|
|
|
template_file = "FileStream/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
|
|
|
|
|
)
|