feat: minimize browser on !start, restore before email resolution

This commit is contained in:
Oliver Hofmann 2026-05-17 18:24:07 +02:00
parent 1ed54d6c15
commit f03e44fd3c
3 changed files with 40 additions and 9 deletions

View File

@ -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

View File

@ -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 = []

View File

@ -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: