обнова еее
This commit is contained in:
41
main.py
41
main.py
@@ -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()
|
||||
|
Reference in New Issue
Block a user