feat: minimize browser on !start, restore before email resolution
This commit is contained in:
parent
1ed54d6c15
commit
f03e44fd3c
@ -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
|
||||
|
||||
@ -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 = []
|
||||
|
||||
@ -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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user