Compare commits
2 Commits
e2579d3179
...
ee4d1f90a3
Author | SHA1 | Date | |
---|---|---|---|
ee4d1f90a3 | |||
d64a4db140 |
@@ -1,4 +1,4 @@
|
|||||||
name="debweb 1.1.1"
|
name="debweb 1.1.2"
|
||||||
proxied=False
|
proxied=False
|
||||||
|
|
||||||
addr="localhost"
|
addr="localhost"
|
||||||
|
22
main.py
22
main.py
@@ -100,15 +100,18 @@ class WebServer:
|
|||||||
resp = await f.read()
|
resp = await f.read()
|
||||||
|
|
||||||
files = ""
|
files = ""
|
||||||
norm_path = file_path.replace('\\', '/')
|
base_path = os.path.relpath(file_path, self.directory).replace('\\', '/')
|
||||||
base_path = norm_path.replace(self.directory.replace('\\', '/'), '').strip('/')
|
if base_path == '.':
|
||||||
|
base_path = ''
|
||||||
|
|
||||||
for item in sorted(os.listdir(file_path)):
|
for item in sorted(os.listdir(file_path)):
|
||||||
item_path = os.path.join(file_path, item)
|
item_path = os.path.join(file_path, item)
|
||||||
is_dir = os.path.isdir(item_path)
|
is_dir = os.path.isdir(item_path)
|
||||||
|
|
||||||
rel_path = f"{base_path}/{item}" if base_path else item
|
if base_path:
|
||||||
rel_path = rel_path.replace('\\', '/')
|
rel_path = f"{base_path}/{item}"
|
||||||
|
else:
|
||||||
|
rel_path = item
|
||||||
|
|
||||||
if is_dir:
|
if is_dir:
|
||||||
rel_path += "/"
|
rel_path += "/"
|
||||||
@@ -118,7 +121,9 @@ class WebServer:
|
|||||||
modify_datetime = datetime.datetime.fromtimestamp(modify_time)
|
modify_datetime = datetime.datetime.fromtimestamp(modify_time)
|
||||||
formatted_time = modify_datetime.strftime("%d.%m.%Y %H:%M:%S")
|
formatted_time = modify_datetime.strftime("%d.%m.%Y %H:%M:%S")
|
||||||
|
|
||||||
files += f'<a class={"dir" if is_dir else "file"} href="/{rel_path}">{item}</a> | {formatted_time}<br>\n'
|
rel_path_encoded = rel_path.replace(' ', '%20').replace('#', '%23')
|
||||||
|
|
||||||
|
files += f'<a class={"dir" if is_dir else "file"} href="/{rel_path_encoded}">{item}</a> | {formatted_time}<br>\n'
|
||||||
|
|
||||||
resp = resp.replace("<FILES>", files)
|
resp = resp.replace("<FILES>", files)
|
||||||
resp = resp.encode()
|
resp = resp.encode()
|
||||||
@@ -144,11 +149,18 @@ class WebServer:
|
|||||||
)
|
)
|
||||||
writer.write(response.encode())
|
writer.write(response.encode())
|
||||||
await writer.drain()
|
await writer.drain()
|
||||||
|
|
||||||
|
writer.close()
|
||||||
|
await writer.wait_closed()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
await self.log(self.get_msg, addr, file_path)
|
await self.log(self.get_msg, addr, file_path)
|
||||||
await writer.drain()
|
await writer.drain()
|
||||||
|
|
||||||
|
writer.close()
|
||||||
|
await writer.wait_closed()
|
||||||
|
|
||||||
|
|
||||||
async def start(self) -> None:
|
async def start(self) -> None:
|
||||||
server = await asyncio.start_server(
|
server = await asyncio.start_server(
|
||||||
|
Reference in New Issue
Block a user