| @@ -1,12 +1,25 @@ | |||
| from fastapi import FastAPI, HTTPException | |||
| from pydantic import BaseModel | |||
| from typing import Optional | |||
| from fastapi.middleware.cors import CORSMiddleware | |||
| import theading | |||
| # Suponha que quebrar_captcha_base64 está definido em outro módulo ou arquivo | |||
| from solve_captcha import quebrar_captcha_base64 | |||
| app = FastAPI() | |||
| app.add_middleware( | |||
| CORSMiddleware, | |||
| allow_origins=["*"], # Ajuste conforme necessário | |||
| allow_credentials=True, | |||
| allow_methods=["*"], # Ajuste conforme necessário | |||
| allow_headers=["*"], | |||
| ) | |||
| # Criando um bloqueio para gerenciamento de concorrência | |||
| lock = threading.Lock() | |||
| class CaptchaRequest(BaseModel): | |||
| captchafile: str | |||
| authtoken: str | |||
| @@ -23,8 +36,11 @@ async def solve_captcha(request: CaptchaRequest): | |||
| raise HTTPException(status_code=400, detail="captchafile is required") | |||
| try: | |||
| lock.acquire() | |||
| resultado_captcha = quebrar_captcha_base64(request.captchafile) | |||
| lock.release() | |||
| return {"captcha": "", "text": resultado_captcha, "is_correct": True, "status": 200} | |||
| except Exception as e: | |||
| lock.release() | |||
| raise HTTPException(status_code=500, detail=str(e)) | |||