fix: skip moderator/presenter in resolution; faster header text check

This commit is contained in:
Oliver Hofmann 2026-05-17 17:09:57 +02:00
parent badb2f698d
commit 5d102719d5
2 changed files with 19 additions and 7 deletions

View File

@ -111,9 +111,16 @@ def main() -> None:
while True:
window = monitor.run_once(skip_existing=not include_history)
print(f"\nLöse {len(window.entries)} E-Mail-Adresse(n) auf...")
# Only resolve entries that appear in the final memo
# (moderator and presenter are excluded — no need to look up their email)
excluded = {window.moderator, window.presenter}
to_resolve = [e for e in window.entries if e.display_name not in excluded]
print(f"\nLöse {len(to_resolve)} E-Mail-Adresse(n) auf...")
resolved_entries = []
for entry in window.entries:
if entry.display_name in excluded:
resolved_entries.append(AuditEntry(display_name=entry.display_name, email=""))
continue
email = resolver.resolve(entry.display_name)
print(f" {entry.display_name}{email}")
resolved_entries.append(AuditEntry(display_name=entry.display_name, email=email))

View File

@ -51,14 +51,19 @@ class Resolver:
# Strategy 1: reply-message-header (channel meetings) — hover the avatar
for header in self._page.query_selector_all("[data-tid='reply-message-header']"):
try:
# Quick check on full header text before iterating spans
if display_name not in header.inner_text():
continue
avatar = header.query_selector("[data-tid='reply-message-header-avatar']")
if avatar:
avatar.scroll_into_view_if_needed()
avatar.hover()
return True
# Fallback: hover the name span
for span in header.query_selector_all("span"):
if span.inner_text().strip() == display_name:
avatar = header.query_selector(
"[data-tid='reply-message-header-avatar']"
)
target = avatar or span
target.scroll_into_view_if_needed()
target.hover()
span.scroll_into_view_if_needed()
span.hover()
return True
except Exception:
continue