обнова 1.1.1 #2

Merged
admin merged 3 commits from testing into main 2025-08-07 16:49:11 +00:00
Showing only changes of commit 7e3820fda0 - Show all commits

22
main.py
View File

@@ -53,7 +53,7 @@ class WebServer:
addr = (real_addr, addr[1]) addr = (real_addr, addr[1])
request = data.split("\n")[0] request = data.split("\n")[0]
file_name = request.split()[1][1:] file_name = request.split()[1][1:]
file_path = self.directory + file_name file_path = os.path.join(self.directory, file_name)
if os.path.isfile(file_path): if os.path.isfile(file_path):
mime, _ = mimetypes.guess_type(file_path) mime, _ = mimetypes.guess_type(file_path)
@@ -90,20 +90,24 @@ class WebServer:
resp = await f.read() resp = await f.read()
files = "" files = ""
for file_name in sorted(os.listdir(file_path)): # TODO: добавить настройки отображения файла base_path = file_name.strip('/')
file = "/".join(file_path.split("/")[1:]) +"/" + file_name
if os.path.isdir(file_path + "/" + file_name): for item in sorted(os.listdir(file_path)):
file_name = "/" + file_name item_path = os.path.join(file_path, item)
is_dir = os.path.isdir(item_path)
modify_time = (os.path.getmtime(file_path + "/" + file_name)) if base_path: rel_path = f"{base_path}/{item}"
else: rel_path = item
if is_dir: rel_path += "/"
modify_time = os.path.getmtime(item_path)
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 href="/{file}">{file_name}</a> | {formatted_time}<br>' files += f'<a href="/{rel_path}">{item}</a> | {formatted_time}<br>' # TODO: добавить кастом для инфы про файлики
resp = resp.replace("<FILES>", files) resp = resp.replace("<FILES>", files)
resp = resp.replace("//", "/")
resp = resp.encode() resp = resp.encode()
headers = ( headers = (
"HTTP/1.1 200 OK\r\n" "HTTP/1.1 200 OK\r\n"
@@ -113,7 +117,7 @@ class WebServer:
"\r\n" "\r\n"
) )
writer.write("".join(headers).encode() + resp) writer.write(headers + resp)
else: else:
await self.log(self.e404_msg, addr, file_path) await self.log(self.e404_msg, addr, file_path)
response = ( response = (