теперь точно все пофиксил
This commit is contained in:
15
main.py
15
main.py
@@ -44,8 +44,8 @@ class WebServer:
|
|||||||
async def handle(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter) -> None:
|
async def handle(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter) -> None:
|
||||||
addr = writer.get_extra_info("peername")
|
addr = writer.get_extra_info("peername")
|
||||||
await self.log(self.conn_msg, addr)
|
await self.log(self.conn_msg, addr)
|
||||||
data = await reader.read(self._read_buffer)
|
rdata = await reader.read(self._read_buffer)
|
||||||
data = unquote(data.decode())
|
data = rdata.decode()
|
||||||
if not data: return
|
if not data: return
|
||||||
|
|
||||||
real_addr = None
|
real_addr = None
|
||||||
@@ -56,9 +56,14 @@ class WebServer:
|
|||||||
|
|
||||||
if real_addr and self.proxied:
|
if real_addr and self.proxied:
|
||||||
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:]
|
parts = request.split()
|
||||||
file_path = os.path.join(self.directory, file_name)
|
if len(parts) < 2: return
|
||||||
|
|
||||||
|
path = unquote(parts[1])
|
||||||
|
file_name = path[1:] if path.startswith('/') else path
|
||||||
|
file_path = os.path.abspath(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)
|
||||||
@@ -113,7 +118,7 @@ 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 href="/{rel_path}">{item}</a> | {formatted_time}<br>'
|
files += f'<a class={"dir" if is_dir else "file"} href="/{rel_path}">{item}</a> | {formatted_time}<br>\n'
|
||||||
|
|
||||||
resp = resp.replace("<FILES>", files)
|
resp = resp.replace("<FILES>", files)
|
||||||
resp = resp.encode()
|
resp = resp.encode()
|
||||||
|
Reference in New Issue
Block a user