fix: skip moderator/presenter in resolution; faster header text check
This commit is contained in:
parent
badb2f698d
commit
5d102719d5
@ -111,9 +111,16 @@ def main() -> None:
|
|||||||
while True:
|
while True:
|
||||||
window = monitor.run_once(skip_existing=not include_history)
|
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 = []
|
resolved_entries = []
|
||||||
for entry in window.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)
|
email = resolver.resolve(entry.display_name)
|
||||||
print(f" {entry.display_name} → {email}")
|
print(f" {entry.display_name} → {email}")
|
||||||
resolved_entries.append(AuditEntry(display_name=entry.display_name, email=email))
|
resolved_entries.append(AuditEntry(display_name=entry.display_name, email=email))
|
||||||
|
|||||||
@ -51,14 +51,19 @@ class Resolver:
|
|||||||
# Strategy 1: reply-message-header (channel meetings) — hover the avatar
|
# Strategy 1: reply-message-header (channel meetings) — hover the avatar
|
||||||
for header in self._page.query_selector_all("[data-tid='reply-message-header']"):
|
for header in self._page.query_selector_all("[data-tid='reply-message-header']"):
|
||||||
try:
|
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"):
|
for span in header.query_selector_all("span"):
|
||||||
if span.inner_text().strip() == display_name:
|
if span.inner_text().strip() == display_name:
|
||||||
avatar = header.query_selector(
|
span.scroll_into_view_if_needed()
|
||||||
"[data-tid='reply-message-header-avatar']"
|
span.hover()
|
||||||
)
|
|
||||||
target = avatar or span
|
|
||||||
target.scroll_into_view_if_needed()
|
|
||||||
target.hover()
|
|
||||||
return True
|
return True
|
||||||
except Exception:
|
except Exception:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user