fix file name being urlencoded in index and info pages

This commit is contained in:
odysseusmax 2021-07-17 08:51:54 +05:30
parent f952010c25
commit b6bf0b360b
5 changed files with 9 additions and 7 deletions

View File

@ -1,13 +1,13 @@
from urllib.parse import quote
def get_file_name(message):
def get_file_name(message, quote_name=True):
if message.file.name:
name = message.file.name
else:
ext = message.file.ext or ""
name = f"{message.date.strftime('%Y-%m-%d_%H:%M:%S')}{ext}"
return quote(name)
return quote(name) if quote_name else name
def get_human_size(num):

View File

@ -42,7 +42,7 @@ class Download:
media = message.media
size = message.file.size
file_name = get_file_name(message)
file_name = get_file_name(message, quote_name=False)
mime_type = message.file.mime_type
try:

View File

@ -1,7 +1,7 @@
import logging
from urllib.parse import quote
import aiohttp_jinja2
from telethon.tl import types
from app.config import results_per_page, block_downloads
@ -51,7 +51,7 @@ class IndexView:
for m in messages:
entry = None
if m.file and not isinstance(m.media, types.MessageMediaWebPage):
filename = get_file_name(m)
filename = get_file_name(m, quote_name=False)
insight = m.text[:60] if m.text else filename
entry = dict(
file_id=m.id,
@ -62,7 +62,7 @@ class IndexView:
insight=insight,
human_size=get_human_size(m.file.size),
url=f"/{alias_id}/{m.id}/view",
download=f"{alias_id}/{m.id}/{filename}",
download=f"{alias_id}/{m.id}/{quote(filename)}",
)
elif m.message:
entry = dict(

View File

@ -1,4 +1,5 @@
import logging
from urllib.parse import unquote
import aiohttp_jinja2
from telethon.tl import types
@ -68,7 +69,7 @@ class InfoView:
return_val.update(
{
"found": True,
"name": file_name,
"name": unquote(file_name),
"file_id": file_id,
"human_size": human_file_size,
"media": media,

View File

@ -62,6 +62,7 @@ def middleware_factory():
if request.app["is_authenticated"] and str(request.rel_url.path) not in [
"/login",
"/logout",
"/favicon.ico",
]:
url = request.app.router["login_page"].url_for()
if str(request.rel_url) != "/":