mirror of
https://gitlab.com/octospacc/TelegramIndex-Fork.git
synced 2025-06-05 22:09:12 +02:00
fix file name being urlencoded in index and info pages
This commit is contained in:
@ -1,13 +1,13 @@
|
|||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
|
|
||||||
|
|
||||||
def get_file_name(message):
|
def get_file_name(message, quote_name=True):
|
||||||
if message.file.name:
|
if message.file.name:
|
||||||
name = message.file.name
|
name = message.file.name
|
||||||
else:
|
else:
|
||||||
ext = message.file.ext or ""
|
ext = message.file.ext or ""
|
||||||
name = f"{message.date.strftime('%Y-%m-%d_%H:%M:%S')}{ext}"
|
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):
|
def get_human_size(num):
|
||||||
|
@ -42,7 +42,7 @@ class Download:
|
|||||||
|
|
||||||
media = message.media
|
media = message.media
|
||||||
size = message.file.size
|
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
|
mime_type = message.file.mime_type
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from urllib.parse import quote
|
||||||
|
|
||||||
import aiohttp_jinja2
|
import aiohttp_jinja2
|
||||||
|
|
||||||
from telethon.tl import types
|
from telethon.tl import types
|
||||||
|
|
||||||
from app.config import results_per_page, block_downloads
|
from app.config import results_per_page, block_downloads
|
||||||
@ -51,7 +51,7 @@ class IndexView:
|
|||||||
for m in messages:
|
for m in messages:
|
||||||
entry = None
|
entry = None
|
||||||
if m.file and not isinstance(m.media, types.MessageMediaWebPage):
|
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
|
insight = m.text[:60] if m.text else filename
|
||||||
entry = dict(
|
entry = dict(
|
||||||
file_id=m.id,
|
file_id=m.id,
|
||||||
@ -62,7 +62,7 @@ class IndexView:
|
|||||||
insight=insight,
|
insight=insight,
|
||||||
human_size=get_human_size(m.file.size),
|
human_size=get_human_size(m.file.size),
|
||||||
url=f"/{alias_id}/{m.id}/view",
|
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:
|
elif m.message:
|
||||||
entry = dict(
|
entry = dict(
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from urllib.parse import unquote
|
||||||
|
|
||||||
import aiohttp_jinja2
|
import aiohttp_jinja2
|
||||||
from telethon.tl import types
|
from telethon.tl import types
|
||||||
@ -68,7 +69,7 @@ class InfoView:
|
|||||||
return_val.update(
|
return_val.update(
|
||||||
{
|
{
|
||||||
"found": True,
|
"found": True,
|
||||||
"name": file_name,
|
"name": unquote(file_name),
|
||||||
"file_id": file_id,
|
"file_id": file_id,
|
||||||
"human_size": human_file_size,
|
"human_size": human_file_size,
|
||||||
"media": media,
|
"media": media,
|
||||||
|
@ -62,6 +62,7 @@ def middleware_factory():
|
|||||||
if request.app["is_authenticated"] and str(request.rel_url.path) not in [
|
if request.app["is_authenticated"] and str(request.rel_url.path) not in [
|
||||||
"/login",
|
"/login",
|
||||||
"/logout",
|
"/logout",
|
||||||
|
"/favicon.ico",
|
||||||
]:
|
]:
|
||||||
url = request.app.router["login_page"].url_for()
|
url = request.app.router["login_page"].url_for()
|
||||||
if str(request.rel_url) != "/":
|
if str(request.rel_url) != "/":
|
||||||
|
Reference in New Issue
Block a user