mirror of
https://github.com/Jeuners/Logpy-AgentOne.git
synced 2026-09-09 15:02:33 +02:00
docs+feat: Loeschung selbstgesteuert statt Cron, README auf aktuellen Stand
pipe.watch prueft die Aufbewahrungsfrist jetzt selbst alle 24h mit (kein Cron/launchd noetig - der Watcher laeuft ohnehin dauerhaft). README ergaenzt um Sicher-Modus, Notfall-Alarm, Loeschfristen/Audit-Log und korrigiert eine falsche Behauptung zur Ansage (Notruf-Hinweis/Aufnahme-Einwilligung fehlen in der aktuellen telefon/ansage.txt noch tatsaechlich). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015vtvcyNkapuDh583643hNs
This commit is contained in:
parent
989d3ba85b
commit
2e767f3737
3 changed files with 65 additions and 7 deletions
|
|
@ -25,12 +25,17 @@ import time
|
|||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from . import config, process_call, protokoll
|
||||
from . import config, loeschen, process_call, protokoll
|
||||
|
||||
TAKT_S = 3 # Wartezeit zwischen zwei Durchläufen
|
||||
RUHE_S = 2 # So lange muss die Dateigröße stabil sein (Aufnahme fertig)
|
||||
ENDUNGEN = {".wav", ".mp3", ".opus", ".ogg", ".m4a", ".aiff"}
|
||||
|
||||
# Aufbewahrungsfrist pruefen (pipe.loeschen) - kein Cron noetig, der Watcher
|
||||
# laeuft ohnehin dauerhaft. time.monotonic() statt datetime.now(): unempfindlich
|
||||
# gegen Systemzeit-Spruenge (Zeitzone/NTP), zaehlt einfach vergangene Sekunden.
|
||||
LOESCH_TAKT_S = 24 * 60 * 60
|
||||
|
||||
# JJJJMMTT-HHMMSS_<nummer>.<ext> - beides optional, damit auch handverlesene
|
||||
# Dateien verarbeitet werden.
|
||||
_NAME = re.compile(r"^(?:(\d{8})-(\d{6}))?_?(.*)$")
|
||||
|
|
@ -139,10 +144,19 @@ def main(argv: list[str] | None = None) -> int:
|
|||
return 0
|
||||
|
||||
print(f"Beobachte {eingang} — Abbruch mit Strg-C")
|
||||
if config.LOESCHFRIST_TAGE:
|
||||
print(f"Aufbewahrungsfrist: {config.LOESCHFRIST_TAGE} Tage "
|
||||
f"(Pruefung alle {LOESCH_TAKT_S // 3600}h, kein Cron noetig)")
|
||||
protokoll.schreibe("system", "Watcher gestartet")
|
||||
letzter_loeschlauf = 0.0 # 0 => gleich beim ersten Durchlauf pruefen
|
||||
try:
|
||||
while True:
|
||||
durchlauf(eingang)
|
||||
if config.LOESCHFRIST_TAGE and time.monotonic() - letzter_loeschlauf >= LOESCH_TAKT_S:
|
||||
anzahl = loeschen.laeuft()
|
||||
if anzahl:
|
||||
print(f"🗑 {anzahl} Anruf(e) nach Aufbewahrungsfrist geloescht.")
|
||||
letzter_loeschlauf = time.monotonic()
|
||||
time.sleep(TAKT_S)
|
||||
except KeyboardInterrupt:
|
||||
print("\nBeobachtung beendet.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue