Improve path handling in PageNode class to ensure consistent formatting of served pages and files.
This commit is contained in:
@@ -69,6 +69,8 @@ class PageNode:
|
|||||||
self.servedpages = []
|
self.servedpages = []
|
||||||
self._scan_pages(self.pagespath)
|
self._scan_pages(self.pagespath)
|
||||||
|
|
||||||
|
pagespath = os.path.join(self.pagespath, "")
|
||||||
|
|
||||||
if not os.path.isfile(os.path.join(self.pagespath, "index.mu")):
|
if not os.path.isfile(os.path.join(self.pagespath, "index.mu")):
|
||||||
self.destination.register_request_handler(
|
self.destination.register_request_handler(
|
||||||
"/page/index.mu",
|
"/page/index.mu",
|
||||||
@@ -77,7 +79,9 @@ class PageNode:
|
|||||||
)
|
)
|
||||||
|
|
||||||
for full_path in self.servedpages:
|
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}"
|
request_path = f"/page{rel}"
|
||||||
self.destination.register_request_handler(
|
self.destination.register_request_handler(
|
||||||
request_path,
|
request_path,
|
||||||
@@ -90,8 +94,12 @@ class PageNode:
|
|||||||
self.servedfiles = []
|
self.servedfiles = []
|
||||||
self._scan_files(self.filespath)
|
self._scan_files(self.filespath)
|
||||||
|
|
||||||
|
filespath = os.path.join(self.filespath, "")
|
||||||
|
|
||||||
for full_path in self.servedfiles:
|
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}"
|
request_path = f"/file{rel}"
|
||||||
self.destination.register_request_handler(
|
self.destination.register_request_handler(
|
||||||
request_path,
|
request_path,
|
||||||
@@ -129,7 +137,8 @@ class PageNode:
|
|||||||
def serve_page(
|
def serve_page(
|
||||||
self, path, data, request_id, link_id, remote_identity, requested_at,
|
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:
|
try:
|
||||||
with open(file_path, "rb") as _f:
|
with open(file_path, "rb") as _f:
|
||||||
first_line = _f.readline()
|
first_line = _f.readline()
|
||||||
@@ -174,7 +183,8 @@ class PageNode:
|
|||||||
def serve_file(
|
def serve_file(
|
||||||
self, path, data, request_id, link_id, remote_identity, requested_at,
|
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 [
|
return [
|
||||||
open(file_path, "rb"),
|
open(file_path, "rb"),
|
||||||
{"name": os.path.basename(file_path).encode("utf-8")},
|
{"name": os.path.basename(file_path).encode("utf-8")},
|
||||||
|
|||||||
Reference in New Issue
Block a user