3 Commits

Author SHA1 Message Date
5527ef90e6 забыл про ридми 2025-08-13 00:40:52 +03:00
8c07d87efa какашки 2025-08-13 00:38:56 +03:00
1d0ef1535f cool patch with 5 lines of code 2025-08-11 13:58:54 +03:00
3 changed files with 10 additions and 4 deletions

View File

@@ -43,6 +43,7 @@ pip install aiofiles
- `<ADDR>` - адрес клиента - `<ADDR>` - адрес клиента
- `<FILE>` - файл / директория, к которой запрашивается доступ - `<FILE>` - файл / директория, к которой запрашивается доступ
- `<TIME>` - время, когда был выполнен запрос
## шаблоны ## шаблоны
@@ -63,7 +64,7 @@ pip install aiofiles
## preset.html ## preset.html
обычный html документ, являющийся шаблоном для листинга каталога обычный html документ, являющийся шаблоном для листинга каталога. если в директории будет находиться preset.html, сервер будет использовать именно его. в противном случае - тот, который указан в конфиге.
### теги пресета ### теги пресета

View File

@@ -1,4 +1,4 @@
name="debweb 1.2.0" name="debweb 1.2.2"
proxied=False proxied=False
addr="localhost" addr="localhost"

View File

@@ -21,6 +21,7 @@ class WebServer:
async def log(self, text: str, addr: tuple=None, file: str=None) -> None: async def log(self, text: str, addr: tuple=None, file: str=None) -> None:
text = text.replace("<ADDR>", f"{addr[0]}:{addr[1]}" if addr else "") text = text.replace("<ADDR>", f"{addr[0]}:{addr[1]}" if addr else "")
text = text.replace("<FILE>", file if file else "") text = text.replace("<FILE>", file if file else "")
text = text.replace("<TIME>", datetime.datetime.now().strftime(config.time_format))
if config.log_file: if config.log_file:
async with aiofiles.open(config.log_file, mode="a") as file: async with aiofiles.open(config.log_file, mode="a") as file:
@@ -108,7 +109,11 @@ class WebServer:
elif os.path.isdir(file_path): elif os.path.isdir(file_path):
resp = "" resp = ""
async with aiofiles.open(config.preset_file, "r", encoding="utf-8") as f: if os.path.isfile(os.path.join(file_path, "preset.html")):
preset_file = os.path.join(file_path, "preset.html")
else:
preset_file = config.preset_file
async with aiofiles.open(preset_file, "r", encoding="utf-8") as f:
resp = await f.read() resp = await f.read()
files = "" files = ""
@@ -159,7 +164,7 @@ class WebServer:
else: else:
await self.log(config.err_msgs[404], addr, config.err_files[404]) await self.log(config.err_msgs[404], addr, file_path)
file_size = os.path.getsize(config.err_files[404]) file_size = os.path.getsize(config.err_files[404])
await self.send_headers(writer, 404, file_size) await self.send_headers(writer, 404, file_size)
await self.send_file(writer, config.err_files[404], file_size) await self.send_file(writer, config.err_files[404], file_size)