feat: rename --history to -a/--all; add --no-minimize flag

This commit is contained in:
Oliver Hofmann 2026-05-17 18:27:00 +02:00
parent f03e44fd3c
commit 1e5e4f436d
2 changed files with 16 additions and 8 deletions

View File

@ -57,17 +57,24 @@ def main() -> None:
), ),
) )
parser.add_argument( parser.add_argument(
"--history", "-a", "--all",
action="store_true", action="store_true",
help="Bestehende Nachrichten auswerten (Standard: nur neue Nachrichten ab Scriptstart)", help="Alle Nachrichten auswerten inkl. bestehende (Standard: nur neue ab Scriptstart)",
)
parser.add_argument(
"--no-minimize",
action="store_true",
help="Browser-Fenster nicht minimieren während der Aufzeichnung",
) )
args = parser.parse_args() args = parser.parse_args()
include_history: bool = args.history include_history: bool = args.all
minimize: bool = not args.no_minimize
print("" * 60) print("" * 60)
print(" TeamPulse — Teams Chat Auswertung") print(" TeamPulse — Teams Chat Auswertung")
print("" * 60) print("" * 60)
print(f" Modus: {'bestehende + neue' if include_history else 'nur neue'} Nachrichten") print(f" Modus: {'alle' if include_history else 'nur neue'} Nachrichten")
print(f" Browser: {'sichtbar' if not minimize else 'minimiert während Aufzeichnung'}")
print(" Trigger: !start Name | !stop") print(" Trigger: !start Name | !stop")
print(" Beenden: Ctrl+C") print(" Beenden: Ctrl+C")
print("" * 60) print("" * 60)
@ -109,14 +116,14 @@ def main() -> None:
resolver = Resolver(cache_path=CACHE_PATH, page=page) resolver = Resolver(cache_path=CACHE_PATH, page=page)
while True: while True:
window = monitor.run_once(skip_existing=not include_history) window = monitor.run_once(skip_existing=not include_history, minimize=minimize)
# Only resolve entries that appear in the final memo # Only resolve entries that appear in the final memo
# (moderator and presenter are excluded — no need to look up their email) # (moderator and presenter are excluded — no need to look up their email)
excluded = {window.moderator, window.presenter} excluded = {window.moderator, window.presenter}
to_resolve = [e for e in window.entries if e.display_name not in excluded] to_resolve = [e for e in window.entries if e.display_name not in excluded]
if to_resolve: if to_resolve and minimize:
restore_window(page) restore_window(page)
print(f"Löse {len(to_resolve)} E-Mail-Adresse(n) auf...") print(f"Löse {len(to_resolve)} E-Mail-Adresse(n) auf...")

View File

@ -152,7 +152,7 @@ class Monitor:
)) ))
return new_messages return new_messages
def run_once(self, skip_existing: bool = True) -> AuditWindow: def run_once(self, skip_existing: bool = True, minimize: bool = True) -> AuditWindow:
import time import time
self.wait_for_chat() self.wait_for_chat()
@ -231,6 +231,7 @@ class Monitor:
start_time = datetime.now() start_time = datetime.now()
collected = [] collected = []
print(f"▶ Zeitfenster gestartet — Vortragender: {presenter}") print(f"▶ Zeitfenster gestartet — Vortragender: {presenter}")
if minimize:
minimize_window(self._page) minimize_window(self._page)
elif action == "stop": elif action == "stop":