Neural Network Model for solving captchas in Python
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

47 lines
1.6KB

  1. from fastapi import FastAPI, HTTPException
  2. from pydantic import BaseModel
  3. from typing import Optional
  4. from fastapi.middleware.cors import CORSMiddleware
  5. import threading
  6. # Suponha que quebrar_captcha_base64 está definido em outro módulo ou arquivo
  7. from solve_captcha import quebrar_captcha_base64
  8. app = FastAPI()
  9. app.add_middleware(
  10. CORSMiddleware,
  11. allow_origins=["*"], # Ajuste conforme necessário
  12. allow_credentials=True,
  13. allow_methods=["*"], # Ajuste conforme necessário
  14. allow_headers=["*"],
  15. )
  16. # Criando um bloqueio para gerenciamento de concorrência
  17. lock = threading.Lock()
  18. class CaptchaRequest(BaseModel):
  19. captchafile: str
  20. authtoken: str
  21. @app.post("/solve_captcha")
  22. async def solve_captcha(request: CaptchaRequest):
  23. expected_token = "j7MgdTy4LX05RpE1XY0ykLTexu9LuOE4zg5AEMNymL6LAgCUNN8JGjM5wu26FDGV4j0Xz3km8ra51c3ihToa3fj48XpcsWr45g043bLVQA1sTBkJP4j823DNX67mbjqNR8p117sU580153Id0IavORjkCXRP"
  24. if request.authtoken != expected_token:
  25. # Se o token não corresponder, retorne erro 401 Unauthorized
  26. raise HTTPException(status_code=401, detail="Unauthorized")
  27. if not request.captchafile:
  28. raise HTTPException(status_code=400, detail="captchafile is required")
  29. try:
  30. lock.acquire()
  31. resultado_captcha = quebrar_captcha_base64(request.captchafile)
  32. lock.release()
  33. return {"captcha": "", "text": resultado_captcha, "is_correct": True, "status": 200}
  34. except Exception as e:
  35. lock.release()
  36. raise HTTPException(status_code=500, detail=str(e))