обнова еее

This commit is contained in:
2025-08-07 17:39:09 +03:00
parent be59c11a6b
commit 780072bdbd
6 changed files with 72 additions and 33 deletions

41
main.py
View File

@@ -4,26 +4,28 @@ import mimetypes
import datetime
import aiofiles
import asyncio
import time
import config
import os
import re
class WebServer:
def __init__(self):
self._addr = os.environ.get("ADDR", "localhost")
self._port = int(os.environ.get("PORT", 7856))
self.name = config.name
self._addr = config.addr
self._port = config.port
self._log_file = os.environ.get("FILE")
self.preset_file = os.environ.get("PRESET_FILE")
self.directory = os.environ.get("DIR")
self._log_file = config.log_file
self.preset_file = config.preset_file
self.directory = config.directory
self._read_buffer = int(os.environ.get("READ_BUFFER", 16384))
self._write_size = int(os.environ.get("WRITE_BUFFER", 16384))
self._read_buffer = config.read_buffer
self._write_size = config.write_buffer
self.conn_msg = os.environ.get("CONN_MSG", "conn from <ADDR>")
self.start_msg = os.environ.get("START_MSG", "started at <ADDR>")
self.get_msg = os.environ.get("GET_MSG", "<ADDR> got <FILE>")
self.e404_msg = os.environ.get("404_MSG", "<ADDR> err 404 <FILE>")
self.conn_msg = config.conn_msg
self.start_msg = config.start_msg
self.get_msg = config.get_msg
self._e404_file = config.e404_file
self.e404_msg = config.e404_msg
async def log(self, text: str, addr: tuple=None, file: str=None) -> None:
@@ -55,9 +57,10 @@ class WebServer:
if mime.startswith("text"): mime += "; charset=utf-8"
headers = (
"HTTP/1.1 200 OK\r\n",
f"Content-Type: {mime}\r\n",
f"Content-Length: {file_size}\r\n",
"HTTP/1.1 200 OK\r\n"
f"Content-Type: {mime}\r\n"
f"Content-Length: {file_size}\r\n"
f"Server: {self.name}\r\n"
"\r\n"
)
@@ -100,6 +103,7 @@ class WebServer:
headers = (
"HTTP/1.1 200 OK\r\n"
f"Content-Type: text/html; charset=utf-8\r\n"
f"Server: {self.name}\r\n"
f"Content-Length: {len(resp)}\r\n"
"\r\n"
)
@@ -107,11 +111,12 @@ class WebServer:
writer.write("".join(headers).encode() + resp)
else:
await self.log(self.e404_msg, addr, file_path)
response = ( # TODO: добавить страничку для 404
response = (
"HTTP/1.1 404 Not Found\r\n"
"Content-Type: text/html; charset=utf-8\r\n"
f"Server: {self.name}\r\n"
"\r\n"
"<h1>плоке плоке, 404</h1>"
f"{open(self._e404_file, encoding="utf-8").read()}"
)
writer.write(response.encode())
await writer.drain()