mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
Update app.py
This commit is contained in:
20
web/app.py
20
web/app.py
@@ -1,15 +1,15 @@
|
||||
import os
|
||||
import os
|
||||
import subprocess
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel
|
||||
import uvicorn
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# Определение модели для данных запроса
|
||||
class RunScriptRequest(BaseModel):
|
||||
config: str
|
||||
userId: str
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FastAPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# Инициализация FastAPI приложения
|
||||
app = FastAPI()
|
||||
|
||||
@app.post("/run")
|
||||
@@ -17,14 +17,14 @@ async def run_script(request: RunScriptRequest):
|
||||
config_content = request.config
|
||||
user_id = request.userId
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# Создание имени файла конфигурации
|
||||
config_filename = f"config-id_{user_id}.ini"
|
||||
try:
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
# Запись конфигурации в файл
|
||||
with open(config_filename, 'w') as f:
|
||||
f.write(config_content)
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> subprocess
|
||||
# Выполнение команды через subprocess
|
||||
result = subprocess.run(
|
||||
['python3', 'main.py', '-c', config_filename],
|
||||
stdout=subprocess.PIPE,
|
||||
@@ -32,13 +32,13 @@ async def run_script(request: RunScriptRequest):
|
||||
text=True
|
||||
)
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# Возвращение результатов выполнения скрипта
|
||||
return {"stdout": result.stdout, "stderr": result.stderr}
|
||||
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: {str(e)}")
|
||||
raise HTTPException(status_code=500, detail=f"Ошибка: {str(e)}")
|
||||
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Uvicorn)
|
||||
# Запуск приложения (для использования с Uvicorn)
|
||||
if __name__ == "__main__":
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FastAPI <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Uvicorn
|
||||
# Запуск FastAPI с использованием Uvicorn
|
||||
uvicorn.run(app, host="0.0.0.0", port=5000)
|
||||
|
||||
Reference in New Issue
Block a user