Files
claude-regelwerk/.vault-tools/trading-plattform-pruefung/ntfy_lesen.py
T
Pascal MichelandClaude Opus 5 67d674cd0b Automatischer Push: 32 Datei(en) geändert
- .claude/agents/executer.md
- .claude/agents/planer.md
- .claude/agents/pruefer.md
- .claude/agents/recherche.md
- .claude/skills/plan-executer-pruefung/SKILL.md
- .claude/workflows/executer-welle.js
- .claude/workflows/plankritik.js
- .claude/workflows/pruefung.js
- .claude/workflows/welle-mit-pruefung.js
- .gitignore
- .vault-tools/regelwerk-check/ENTWURF.md
- .vault-tools/regelwerk-check/regelwerk_check.py
- … und 20 weitere

Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-24 04:00:02 +02:00

53 lines
1.9 KiB
Python

"""Liest nur zurueck, was in der letzten Stunde bei ntfy unter dem Thema der Maschine ankam.
Koordinator-Skript, nicht Teil des Repos. Schickt nichts. Das Thema wird nie ausgegeben -- weder
hier noch in einer Fehlermeldung. Aufruf aus dem Projektordner (WSL): python ntfy_lesen.py
"""
import json
import sys
from datetime import datetime
from pathlib import Path
sys.path.insert(0, str(Path.cwd()))
import requests
from trading.paper.melder import lade_melder_config
from trading.paper.melder import lies_ntfy_geheimnisse
def main() -> int:
config = lade_melder_config("config/paper.toml", secrets_pfad=None)
thema, token = lies_ntfy_geheimnisse()
kopf = {"Authorization": f"Bearer {token}"} if token else {}
try:
antwort = requests.get(
f"{config.ntfy_url}/{thema}/json", params={"poll": "1", "since": "1h"},
headers=kopf, timeout=10, allow_redirects=False,
)
except Exception as ausnahme:
# Nur der Typ: Die Ausnahme von requests traegt die Adresse und damit das Thema.
print(f"Ruecklesen gescheitert: {type(ausnahme).__name__}")
return 1
print(f"Ruecklesen: HTTP {antwort.status_code}")
anzahl = 0
for zeile in antwort.text.splitlines():
try:
eintrag = json.loads(zeile)
except ValueError:
continue
if eintrag.get("event") != "message":
continue
anzahl += 1
# Ohne Angabe fuehrt ntfy die Prioritaet 3 (default) und laesst das Feld weg.
print(f" bei ntfy: Titel '{eintrag.get('title')}', Prioritaet {eintrag.get('priority', 3)}, "
f"Zeit {datetime.fromtimestamp(eintrag.get('time', 0)).isoformat()}, "
f"erste Zeile '{str(eintrag.get('message', '')).splitlines()[0][:70]}'")
print(f"{anzahl} Meldung(en) in der letzten Stunde.")
return 0
if __name__ == "__main__":
sys.exit(main())