diff --git a/app.py b/app.py index 617269c..d08d2f5 100644 --- a/app.py +++ b/app.py @@ -16,7 +16,7 @@ api_app = FastAPI(title="API Endpoints") # Для API (порт 8002) conn = sqlite3.connect("/db/rustdesk.db", check_same_thread=False) cursor = conn.cursor() -# Проверяем и обновляем структуру таблицы installs (как в исходном коде) +# Проверяем и обновляем структуру таблицы installs cursor.execute("PRAGMA table_info(installs)") columns = [row[1] for row in cursor.fetchall()] if 'protocol' not in columns: @@ -26,7 +26,7 @@ if 'note' not in columns: cursor.execute("ALTER TABLE installs ADD COLUMN note TEXT DEFAULT ''") conn.commit() -# Создаем таблицы (как в исходном коде) +# Создаем таблицы cursor.execute(""" CREATE TABLE IF NOT EXISTS folders ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS installs ( """) conn.commit() -# Проверяем/создаем папку "Несортированные" и получаем её ID (как в исходном коде) +# Проверяем/создаем папку "Несортированные" и получаем её ID cursor.execute("SELECT id FROM folders WHERE name = 'Несортированные'") unsorted_folder = cursor.fetchone() if not unsorted_folder: @@ -59,7 +59,7 @@ if not unsorted_folder: else: unsorted_folder_id = unsorted_folder[0] -# Модели данных (как в исходном коде) +# Модели данных class Folder(BaseModel): name: str parent_id: int | None = None @@ -75,7 +75,7 @@ class InstallData(BaseModel): protocol: str | None = 'rustdesk' note: str | None = '' -# Функция форматирования времени (как в исходном коде) +# Функция форматирования времени def format_time(time_str): if not time_str: return None @@ -89,16 +89,16 @@ def format_time(time_str): except ValueError: return time_str -# Монтируем папки templates и icons как статические файлы для веб-интерфейса +# Монтируем папки templates и icons web_app.mount("/templates", StaticFiles(directory="templates"), name="templates") web_app.mount("/icons", StaticFiles(directory="templates/icons"), name="icons") -# Веб-интерфейс (только GET-запросы и статические файлы) +# Веб-интерфейс @web_app.get("/") async def root(): return FileResponse("templates/index.html") -# API-эндпоинты (POST, PUT, DELETE и т.д.) — только для порта 8002 +# API-эндпоинты @api_app.get("/api/folders") def get_folders(): cursor.execute("SELECT * FROM folders") @@ -168,7 +168,7 @@ def update_install(install_id: int, data: InstallData): new_computer_name = data.computer_name if data.computer_name is not None else current[1] new_install_time = data.install_time if data.install_time is not None else current[2] new_folder_id = data.folder_id if data.folder_id is not None else current[3] - # Используем текущее значение protocol, если data.protocol не передано (None) + # Сохраняем текущее значение protocol, если новое не передано new_protocol = data.protocol if data.protocol is not None else current[4] new_note = data.note if data.note is not None else current[5] @@ -275,7 +275,7 @@ async def import_csv(file: UploadFile = File(...), folder_id: int | None = Query except Exception as e: raise HTTPException(status_code=400, detail=f"Ошибка импорта: {str(e)}") -# CORS для API (можно настроить для конкретных источников) +# CORS для API from fastapi.middleware.cors import CORSMiddleware api_app.add_middleware( CORSMiddleware, @@ -285,7 +285,7 @@ api_app.add_middleware( allow_headers=["*"], ) -# CORS для веб-интерфейса (если нужно) +# CORS для веб-интерфейса web_app.add_middleware( CORSMiddleware, allow_origins=["http://10.0.0.10:8001", "http://localhost:8001"], diff --git a/templates/index.html b/templates/index.html index 2a4a116..175959e 100644 --- a/templates/index.html +++ b/templates/index.html @@ -5,7 +5,7 @@ Органайзер АйТи-Депо - +