ibo/test_extract_link.py
timu 650d7f3394 ibo: containerize + Gitea-CI + dev/prod-Deploy + Zitadel-SSO + noVNC-Live-View
- Dockerfile/compose: Flask-App + selenium/standalone-chrome (noVNC), Healthcheck
- app.py: /healthz + eingebettete noVNC-Live-Ansicht (NOVNC_URL, lokal:7900 / Cluster:/novnc/)
- Helm-Chart infra/k8s/base/ibo: App + Selenium-Sidecar, 2 Ports, Ingress
  (/ + /novnc via stripPrefix), SSO-Middlewares aus dem CD-Repo
- Gitea-CI: version -> test -> build-push -> helm-validate -> deploy-dev (Write-back)
- .gitignore/.dockerignore (Dev-Samples raus)
- infra/RUNBOOK-ibo.md: Zitadel/DNS/Deploy/Prod-Promote

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 01:03:32 +02:00

71 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""
Test-Script: Mail abrufen und Link extrahieren.
Verwendung:
python test_extract_link.py eg5gyqjqp5@web-library.net TOKEN_HIER
oder: Token aus app.py Step 1 Tabelle kopieren
"""
import sys
import json
from mailtm import list_messages, get_message_html
from core import extract_form_link
def test_extract(email, token):
print(f"📧 Abrufen von Mails fuer: {email}")
print(f"🔑 Token: {token[:20]}...")
print()
try:
msgs = list_messages(token)
print(f"📬 Mails gefunden: {len(msgs)}\n")
if not msgs:
print("❌ Keine Mails im Postfach!")
return
for i, m in enumerate(msgs, 1):
msg_id = m.get("id", "?")
sender = m.get("from", {})
if isinstance(sender, dict):
sender = sender.get("address", "?")
print(f"--- Mail {i} ---")
print(f"Von: {sender}")
print(f"Betreff: {m.get('subject', '(kein Betreff)')}")
print(f"ID: {msg_id}")
html = get_message_html(token, msg_id)
link = extract_form_link(html)
if link:
print(f"✅ LINK GEFUNDEN:")
print(f" {link}")
else:
print(f"❌ Kein Link extrahierbar")
# Debug: erste 500 Zeichen zeigen
preview = html[:500].replace("\n", " ")
print(f" Preview: {preview}...")
print()
except Exception as e:
print(f"❌ Fehler: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
if len(sys.argv) < 3:
print("Verwendung:")
print(" python test_extract_link.py EMAIL TOKEN")
print()
print("Beispiel:")
print(" python test_extract_link.py eg5gyqjqp5@web-library.net abc123xyz...")
sys.exit(1)
email = sys.argv[1]
token = sys.argv[2]
test_extract(email, token)