diff --git a/src/teampulse/auth.py b/src/teampulse/auth.py index 99b712a..e7af1a5 100644 --- a/src/teampulse/auth.py +++ b/src/teampulse/auth.py @@ -33,3 +33,39 @@ def _is_login_page(page) -> bool: return True except Exception: return False + + +def _get_window_id(page) -> int | None: + try: + client = page.context.new_cdp_session(page) + info = client.send("Target.getTargetInfo") + tid = info["targetInfo"]["targetId"] + result = client.send("Browser.getWindowForTarget", {"targetId": tid}) + client.detach() + return result["windowId"] + except Exception: + return None + + +def minimize_window(page) -> None: + wid = _get_window_id(page) + if wid is None: + return + try: + client = page.context.new_cdp_session(page) + client.send("Browser.setWindowBounds", {"windowId": wid, "bounds": {"windowState": "minimized"}}) + client.detach() + except Exception: + pass + + +def restore_window(page) -> None: + wid = _get_window_id(page) + if wid is None: + return + try: + client = page.context.new_cdp_session(page) + client.send("Browser.setWindowBounds", {"windowId": wid, "bounds": {"windowState": "normal"}}) + client.detach() + except Exception: + pass diff --git a/src/teampulse/cli.py b/src/teampulse/cli.py index 185c7a5..5ca198d 100644 --- a/src/teampulse/cli.py +++ b/src/teampulse/cli.py @@ -9,7 +9,7 @@ from pathlib import Path from playwright.sync_api import sync_playwright -from teampulse.auth import create_context, ensure_logged_in +from teampulse.auth import create_context, ensure_logged_in, restore_window from teampulse.memo import generate_memo, save_memo from teampulse.models import AuditEntry from teampulse.monitor import Monitor @@ -117,14 +117,7 @@ def main() -> None: to_resolve = [e for e in window.entries if e.display_name not in excluded] if to_resolve: - import sys as _sys - for i in range(3, 0, -1): - _sys.stdout.write(f"\r Maus aus Browser-Fenster bewegen! Starte in {i}s...") - _sys.stdout.flush() - import time as _time; _time.sleep(1) - _sys.stdout.write("\r\033[K") - # Move Playwright mouse to top-left corner before hovering - page.mouse.move(0, 0) + restore_window(page) print(f"Löse {len(to_resolve)} E-Mail-Adresse(n) auf...") resolved_entries = [] diff --git a/src/teampulse/monitor.py b/src/teampulse/monitor.py index 14c3e6e..0040551 100644 --- a/src/teampulse/monitor.py +++ b/src/teampulse/monitor.py @@ -4,6 +4,7 @@ from datetime import datetime from playwright.sync_api import Page +from teampulse.auth import minimize_window from teampulse.models import AuditEntry, AuditWindow, ChatMessage _MSG_SELECTOR = "[data-tid='channel-pane-message'], [data-tid='chat-pane-message']" @@ -230,6 +231,7 @@ class Monitor: start_time = datetime.now() collected = [] print(f"▶ Zeitfenster gestartet — Vortragender: {presenter}") + minimize_window(self._page) elif action == "stop": if start_time is None: