fix file name being urlencoded in index and info pages
This commit is contained in:
parent
f952010c25
commit
b6bf0b360b
|
@ -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):
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) != "/":
|
||||
|
|
Loading…
Reference in New Issue