Upload 58 files
Browse files- app/services/tse_api.py +34 -28
app/services/tse_api.py
CHANGED
|
@@ -227,38 +227,44 @@ async def buscar_politico(nome: str) -> Dict[str, Any]:
|
|
| 227 |
"ufs": set()
|
| 228 |
}
|
| 229 |
|
| 230 |
-
# Search in recent elections
|
| 231 |
for ano in [2024, 2022, 2020, 2018]:
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
"
|
| 240 |
-
"
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
|
|
|
|
|
|
|
|
|
| 259 |
|
| 260 |
# Convert sets to lists for JSON
|
| 261 |
resultado["partidos"] = list(resultado["partidos"])
|
| 262 |
resultado["ufs"] = list(resultado["ufs"])
|
| 263 |
|
|
|
|
|
|
|
| 264 |
return resultado
|
|
|
|
|
|
| 227 |
"ufs": set()
|
| 228 |
}
|
| 229 |
|
| 230 |
+
# Search in recent elections - continue through ALL years
|
| 231 |
for ano in [2024, 2022, 2020, 2018]:
|
| 232 |
+
try:
|
| 233 |
+
candidatos = await buscar_candidatos(nome, ano=ano)
|
| 234 |
+
print(f"TSE: Buscando '{nome}' em {ano} - encontrados: {len(candidatos)}")
|
| 235 |
+
|
| 236 |
+
for c in candidatos:
|
| 237 |
+
# Match if nome is in the candidate's full name
|
| 238 |
+
if nome.lower() in c.nome.lower() or nome.lower() in c.nome_urna.lower():
|
| 239 |
+
resultado["encontrado"] = True
|
| 240 |
+
resultado["candidaturas"].append({
|
| 241 |
+
"ano": ano,
|
| 242 |
+
"cargo": c.cargo,
|
| 243 |
+
"partido": c.partido_sigla,
|
| 244 |
+
"uf": c.uf,
|
| 245 |
+
"situacao": c.situacao,
|
| 246 |
+
"patrimonio": c.total_bens
|
| 247 |
+
})
|
| 248 |
+
|
| 249 |
+
if c.partido_sigla:
|
| 250 |
+
resultado["partidos"].add(c.partido_sigla)
|
| 251 |
+
if c.uf:
|
| 252 |
+
resultado["ufs"].add(c.uf)
|
| 253 |
+
|
| 254 |
+
if c.total_bens > resultado["total_patrimonio"]:
|
| 255 |
+
resultado["total_patrimonio"] = c.total_bens
|
| 256 |
+
|
| 257 |
+
if not resultado["ultimo_cargo"]:
|
| 258 |
+
resultado["ultimo_cargo"] = f"{c.cargo} ({ano})"
|
| 259 |
+
except Exception as e:
|
| 260 |
+
print(f"TSE search {ano} error: {e}")
|
| 261 |
+
continue
|
| 262 |
|
| 263 |
# Convert sets to lists for JSON
|
| 264 |
resultado["partidos"] = list(resultado["partidos"])
|
| 265 |
resultado["ufs"] = list(resultado["ufs"])
|
| 266 |
|
| 267 |
+
print(f"TSE resultado para '{nome}': encontrado={resultado['encontrado']}, candidaturas={len(resultado['candidaturas'])}")
|
| 268 |
+
|
| 269 |
return resultado
|
| 270 |
+
|