When the path is a directory, append / after path normalization.

This commit is contained in:
CrazyBoy 2025-03-10 09:39:32 +08:00
parent 56ac6438c7
commit d96c22a9e9

View file

@ -7,6 +7,7 @@ from . import settings, LazyLogger
from .utils import translate_path from .utils import translate_path
import json import json
import urllib.parse import urllib.parse
################################################################################################## ##################################################################################################
LOG = LazyLogger(__name__) LOG = LazyLogger(__name__)
@ -253,12 +254,15 @@ class API(object):
or "https://" in path.lower() or "https://" in path.lower()
): ):
protocol, rest = path.split("://", 1) protocol, rest = path.split("://", 1)
ends_with_slash = rest.endswith("/") # 记录是否以/结尾
if "/" in rest: if "/" in rest:
host, path_part = rest.split("/", 1) host, path_part = rest.split("/", 1)
path_part = "/".join( path_part = "/".join(
urllib.parse.quote(segment) for segment in path_part.split("/") urllib.parse.quote(segment) for segment in path_part.split("/")
) )
path = f"{protocol}://{host}/{path_part}" path = f"{protocol}://{host}/{path_part}"
if ends_with_slash and not path.endswith("/"):
path += "/"
return path return path
def get_user_artwork(self, user_id): def get_user_artwork(self, user_id):