VeuReu commited on
Commit
52b98eb
·
verified ·
1 Parent(s): dda8b83

Upload api.py

Browse files
Files changed (1) hide show
  1. api.py +13 -12
api.py CHANGED
@@ -112,16 +112,16 @@ def get_job_status(job_id: str):
112
 
113
  job = jobs[job_id]
114
 
115
- response = {
116
- "status": job["status"]
117
- }
118
-
119
- # Si está completado, incluir resultados
120
- if job["status"] == JobStatus.DONE:
121
  response["results"] = job["results"]
122
-
123
- # Si falló, incluir error
124
- elif job["status"] == JobStatus.FAILED:
125
  response["error"] = job["error"]
126
 
127
  return response
@@ -182,14 +182,14 @@ def process_video_job(job_id: str):
182
  for char in characters:
183
  print(f"[{job_id}] - {char['name']}: {char['num_faces']} caras")
184
 
185
- # Marcar como completado
186
- job["status"] = JobStatus.DONE
187
  job["results"] = {
188
  "characters": characters,
189
  "num_characters": len(characters),
190
  "analysis_path": analysis_path,
191
  "base_dir": str(base)
192
  }
 
193
 
194
  print(f"[{job_id}] DEBUG - job['results'] guardado: {job['results']}")
195
 
@@ -204,7 +204,7 @@ def process_video_job(job_id: str):
204
  for sub in ("sources", "faces", "voices", "backgrounds"):
205
  (base / sub).mkdir(parents=True, exist_ok=True)
206
 
207
- job["status"] = JobStatus.DONE
208
  job["results"] = {
209
  "characters": [],
210
  "num_characters": 0,
@@ -216,6 +216,7 @@ def process_video_job(job_id: str):
216
  },
217
  "warning": f"Detección falló, usando modo fallback: {str(e_detect)}"
218
  }
 
219
 
220
  print(f"[{job_id}] ✓ Job completado exitosamente")
221
 
 
112
 
113
  job = jobs[job_id]
114
 
115
+ # Normalizar el estado a string
116
+ status_value = job["status"].value if isinstance(job["status"], JobStatus) else str(job["status"])
117
+ response = {"status": status_value}
118
+
119
+ # Incluir resultados si existen (evita condiciones de carrera)
120
+ if job.get("results") is not None:
121
  response["results"] = job["results"]
122
+
123
+ # Incluir error si existe
124
+ if job.get("error"):
125
  response["error"] = job["error"]
126
 
127
  return response
 
182
  for char in characters:
183
  print(f"[{job_id}] - {char['name']}: {char['num_faces']} caras")
184
 
185
+ # Guardar resultados primero y luego marcar como completado (evita carreras)
 
186
  job["results"] = {
187
  "characters": characters,
188
  "num_characters": len(characters),
189
  "analysis_path": analysis_path,
190
  "base_dir": str(base)
191
  }
192
+ job["status"] = JobStatus.DONE
193
 
194
  print(f"[{job_id}] DEBUG - job['results'] guardado: {job['results']}")
195
 
 
204
  for sub in ("sources", "faces", "voices", "backgrounds"):
205
  (base / sub).mkdir(parents=True, exist_ok=True)
206
 
207
+ # Guardar resultados de fallback y luego marcar como completado
208
  job["results"] = {
209
  "characters": [],
210
  "num_characters": 0,
 
216
  },
217
  "warning": f"Detección falló, usando modo fallback: {str(e_detect)}"
218
  }
219
+ job["status"] = JobStatus.DONE
220
 
221
  print(f"[{job_id}] ✓ Job completado exitosamente")
222