fix(projekt-matching): normalize unknown statuses, alert failure cannot block trash

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
tlg
2026-07-09 11:20:30 +02:00
parent a64b0398ae
commit d500b46abe
2 changed files with 42 additions and 6 deletions

View File

@@ -106,6 +106,11 @@ def run_ingest(cfg, mailbox=None, dispatch=None, espo=None, resolve=None):
result.update(send(result))
except Exception as exc: # noqa: BLE001
result.update(status="failed", error=str(exc))
if result.get("status") not in SUMMARY_KEYS:
result.update(
status="failed",
error=result.get("error")
or f"unbekannter Status: {result.get('status')!r}")
results.append(result)
summary[result["status"]] += 1
failed = [r for r in results if r["status"] == "failed"]
@@ -114,12 +119,15 @@ def run_ingest(cfg, mailbox=None, dispatch=None, espo=None, resolve=None):
f"- {f.get('title', '?')}\n"
f" {f.get('canonical', f.get('url', '?'))}\n"
f" Fehler: {f.get('error', '?')}" for f in failed)
mailer.send_mail(
cfg.imap_user, cfg.imap_password, cfg.alert_to,
f"[Projekt-Match-Fehler] Freelancermap — "
f"{len(failed)} Projekt(e)",
"Folgende Projekte konnten nicht verarbeitet "
"werden:\n\n" + lines + "\n")
try:
mailer.send_mail(
cfg.imap_user, cfg.imap_password, cfg.alert_to,
f"[Projekt-Match-Fehler] Freelancermap — "
f"{len(failed)} Projekt(e)",
"Folgende Projekte konnten nicht verarbeitet "
"werden:\n\n" + lines + "\n")
except Exception: # noqa: BLE001
summary["alertFailed"] = summary.get("alertFailed", 0) + 1
box.move_to_trash(uid)
box.close()
return summary