from fastapi import APIRouter, Form from starlette.requests import Request from starlette.responses import HTMLResponse from starlette.templating import Jinja2Templates from fastapi.openapi.docs import get_swagger_ui_html from config import settings from config import TEMPLATES_DIR from scripts.сheck_available_ports import start_check router = APIRouter( tags=["Web"], ) templates = Jinja2Templates(directory=TEMPLATES_DIR) @router.get("/web/check_ports", response_class=HTMLResponse) async def check_ports(request: Request): return templates.TemplateResponse( "body-check_ports.html", { "request": request, }, ) @router.get("/web/start_check_ports") async def start_check_ports(request: Request, inputText: str): results = start_check(inputText, result_type="test") return templates.TemplateResponse( "body-check_ports.html", { "request": request, "results": results, }, ) @router.get("/docs", include_in_schema=False) async def custom_swagger_ui_html(): return get_swagger_ui_html( openapi_url=settings.swagger.openapi_url, title=settings.swagger.title, oauth2_redirect_url=settings.swagger.oauth2_redirect_url, swagger_js_url=settings.swagger.swagger_js_url, swagger_css_url=settings.swagger.swagger_css_url, swagger_favicon_url=settings.swagger.swagger_favicon_url, ) @router.get("/", response_class=HTMLResponse) async def start_page(request: Request): return templates.TemplateResponse( "base.html", { "request": request, }, )