fix: load Teams main before meeting URL to resolve username
This commit is contained in:
parent
01785d6ddc
commit
2c948914ea
15
main.py
15
main.py
@ -69,12 +69,8 @@ def main():
|
||||
|
||||
page = context.new_page()
|
||||
|
||||
if meeting_url:
|
||||
page.goto(meeting_url)
|
||||
else:
|
||||
page.goto(TEAMS_URL)
|
||||
print("\nKeine Meeting-URL gefunden — bitte im Browser zur Chat-Seite navigieren.")
|
||||
print("Tipp: Meeting-Link aus Teams kopieren, dann Skript neu starten.\n")
|
||||
# Always load Teams main first so user-name selectors are available
|
||||
page.goto(TEAMS_URL)
|
||||
|
||||
monitor = Monitor(page=page, current_user="")
|
||||
print("Lese eingeloggten Nutzer...")
|
||||
@ -82,6 +78,13 @@ def main():
|
||||
monitor._current_user = current_user
|
||||
print(f"Eingeloggt als: {current_user}")
|
||||
|
||||
if meeting_url:
|
||||
print(f"\nNavigiere zur Meeting-Chat-Seite...")
|
||||
page.goto(meeting_url)
|
||||
else:
|
||||
print("\nKeine Meeting-URL gefunden — bitte im Browser zur Chat-Seite navigieren.")
|
||||
print("Tipp: Meeting-Link aus Teams kopieren, dann Skript neu starten.\n")
|
||||
|
||||
print("\nPoste '!start \"Name des Vortragenden\"' im Chat um zu beginnen.\n")
|
||||
|
||||
window = monitor.run()
|
||||
|
||||
@ -46,13 +46,30 @@ class Monitor:
|
||||
print("Chat erkannt.")
|
||||
|
||||
def get_current_user_display_name(self) -> str:
|
||||
el = self._page.query_selector("[data-tid='me-control-display-name']")
|
||||
if el:
|
||||
return el.inner_text().strip()
|
||||
el = self._page.query_selector("[aria-label*='Profilbild']")
|
||||
if el:
|
||||
return (el.get_attribute("aria-label") or "").replace("Profilbild", "").strip()
|
||||
raise RuntimeError("Konnte den Namen des eingeloggten Nutzers nicht ermitteln.")
|
||||
# Wait for the Teams main UI to render (not a lobby/join page)
|
||||
try:
|
||||
self._page.wait_for_selector(
|
||||
"[data-tid='me-control-display-name'], [aria-label*='Profilbild'], [aria-label*='Profile picture']",
|
||||
timeout=15_000,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for selector, transform in [
|
||||
("[data-tid='me-control-display-name']", lambda el: el.inner_text().strip()),
|
||||
("[aria-label*='Profilbild']", lambda el: (el.get_attribute("aria-label") or "").replace("Profilbild", "").strip()),
|
||||
("[aria-label*='Profile picture']", lambda el: (el.get_attribute("aria-label") or "").replace("Profile picture", "").strip()),
|
||||
]:
|
||||
el = self._page.query_selector(selector)
|
||||
if el:
|
||||
name = transform(el)
|
||||
if name:
|
||||
return name
|
||||
|
||||
name = input("Benutzername nicht erkannt. Bitte deinen Teams-Anzeigenamen eingeben: ").strip()
|
||||
if not name:
|
||||
raise RuntimeError("Kein Benutzername angegeben.")
|
||||
return name
|
||||
|
||||
def poll_new_messages(self) -> list[ChatMessage]:
|
||||
elements = self._page.query_selector_all(_MSG_SELECTOR)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user