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
|
return True
|
||||||
except Exception:
|
except Exception:
|
||||||
return False
|
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 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.memo import generate_memo, save_memo
|
||||||
from teampulse.models import AuditEntry
|
from teampulse.models import AuditEntry
|
||||||
from teampulse.monitor import Monitor
|
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]
|
to_resolve = [e for e in window.entries if e.display_name not in excluded]
|
||||||
|
|
||||||
if to_resolve:
|
if to_resolve:
|
||||||
import sys as _sys
|
restore_window(page)
|
||||||
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)
|
|
||||||
|
|
||||||
print(f"Löse {len(to_resolve)} E-Mail-Adresse(n) auf...")
|
print(f"Löse {len(to_resolve)} E-Mail-Adresse(n) auf...")
|
||||||
resolved_entries = []
|
resolved_entries = []
|
||||||
|
|||||||
@ -4,6 +4,7 @@ from datetime import datetime
|
|||||||
|
|
||||||
from playwright.sync_api import Page
|
from playwright.sync_api import Page
|
||||||
|
|
||||||
|
from teampulse.auth import minimize_window
|
||||||
from teampulse.models import AuditEntry, AuditWindow, ChatMessage
|
from teampulse.models import AuditEntry, AuditWindow, ChatMessage
|
||||||
|
|
||||||
_MSG_SELECTOR = "[data-tid='channel-pane-message'], [data-tid='chat-pane-message']"
|
_MSG_SELECTOR = "[data-tid='channel-pane-message'], [data-tid='chat-pane-message']"
|
||||||
@ -230,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}")
|
||||||
|
minimize_window(self._page)
|
||||||
|
|
||||||
elif action == "stop":
|
elif action == "stop":
|
||||||
if start_time is None:
|
if start_time is None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user