Improve path handling in PageNode class to ensure consistent formatting of served pages and files.

This commit is contained in:
2025-09-23 04:13:37 -05:00
parent 62fde2617b
commit fb36907447

View File

@@ -69,6 +69,8 @@ class PageNode:
self.servedpages = []
self._scan_pages(self.pagespath)
pagespath = os.path.join(self.pagespath, "")
if not os.path.isfile(os.path.join(self.pagespath, "index.mu")):
self.destination.register_request_handler(
"/page/index.mu",
@@ -77,7 +79,9 @@ class PageNode:
)
for full_path in self.servedpages:
rel = full_path[len(self.pagespath) :]
rel = full_path[len(pagespath) :]
if not rel.startswith("/"):
rel = "/" + rel
request_path = f"/page{rel}"
self.destination.register_request_handler(
request_path,
@@ -90,8 +94,12 @@ class PageNode:
self.servedfiles = []
self._scan_files(self.filespath)
filespath = os.path.join(self.filespath, "")
for full_path in self.servedfiles:
rel = full_path[len(self.filespath) :]
rel = full_path[len(filespath) :]
if not rel.startswith("/"):
rel = "/" + rel
request_path = f"/file{rel}"
self.destination.register_request_handler(
request_path,
@@ -129,7 +137,8 @@ class PageNode:
def serve_page(
self, path, data, request_id, link_id, remote_identity, requested_at,
):
file_path = path.replace("/page", self.pagespath, 1)
pagespath = os.path.join(self.pagespath, "")
file_path = pagespath + path[5:]
try:
with open(file_path, "rb") as _f:
first_line = _f.readline()
@@ -174,7 +183,8 @@ class PageNode:
def serve_file(
self, path, data, request_id, link_id, remote_identity, requested_at,
):
file_path = path.replace("/file", self.filespath, 1)
filespath = os.path.join(self.filespath, "")
file_path = filespath + path[6:]
return [
open(file_path, "rb"),
{"name": os.path.basename(file_path).encode("utf-8")},