ibo/check_extract_link.py
timu 5b2334ce79
Some checks failed
Momentrum CI / Version (aus PR-ID / SHA) (push) Successful in 2s
Momentrum CI / Test (compile + pytest) (push) Successful in 19s
Momentrum CI / Helm lint + template (push) Successful in 9s
Momentrum CI / Build & Push image (push) Failing after 6s
Momentrum CI / Deploy PROD (Image-Tag -> CD-Repo) (push) Has been skipped
ibo-CI: test_extract_link.py -> check_extract_link.py (manuelles Skript, kein pytest-Test)
pytest sammelte die Funktion test_extract(email,token) faelschlich als Test ein
(fixture 'email' not found). Umbenannt in ein klar erkennbares Hilfsskript, damit
der CI-Guard 'ls test_*.py' sauberer skippt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 02:35:42 +02:00

71 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""
Hilfsskript (manuell, KEIN pytest-Test): Mail abrufen und Link extrahieren.
Verwendung:
python check_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 run_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 check_extract_link.py EMAIL TOKEN")
print()
print("Beispiel:")
print(" python check_extract_link.py eg5gyqjqp5@web-library.net abc123xyz...")
sys.exit(1)
email = sys.argv[1]
token = sys.argv[2]
run_extract(email, token)