diff --git a/src/teampulse/monitor.py b/src/teampulse/monitor.py index 6a4423e..9852a87 100644 --- a/src/teampulse/monitor.py +++ b/src/teampulse/monitor.py @@ -167,7 +167,8 @@ class Monitor: while True: # Chat-Titel prüfen try: - current_chat = self._page.evaluate(_CHAT_TITLE_JS) + raw_title = self._page.evaluate(_CHAT_TITLE_JS) + current_chat = " ".join(raw_title.split()) if raw_title else "" if current_chat and current_chat != last_chat: _clear_line() print(f"Chat: {current_chat}") @@ -175,11 +176,16 @@ class Monitor: except Exception: pass - # Spinner anzeigen - spin = _SPINNER[spin_idx % len(_SPINNER)] - spin_idx += 1 - sys.stdout.write(f'\r {spin}') - sys.stdout.flush() + # Ans Ende der Chat-Liste scrollen damit Teams neue Nachrichten rendert + try: + self._page.evaluate(r"""() => { + const vp = document.querySelector( + "[data-tid='message-pane-list-viewport'], [data-tid='channel-pane-viewport']" + ); + if (vp) vp.scrollTop = vp.scrollHeight; + }""") + except Exception: + pass try: new_msgs = self.poll_new_messages() @@ -228,4 +234,10 @@ class Monitor: entries=entries, ) - time.sleep(2) + # Spinner läuft während der 2-Sekunden-Pause bis zum nächsten Poll + for _ in range(8): + spin = _SPINNER[spin_idx % len(_SPINNER)] + spin_idx += 1 + sys.stdout.write(f'\r {spin}') + sys.stdout.flush() + time.sleep(0.25)