mirror of
https://github.com/pe1hvh/meshcore-gui.git
synced 2026-06-28 05:51:20 +02:00
HotFix
This commit is contained in:
+20
-19
@@ -302,6 +302,13 @@ class EventHandler:
|
||||
pubkey = payload.get('pubkey_prefix', '')
|
||||
txt_type = payload.get('txt_type', 0)
|
||||
signature = payload.get('signature', '')
|
||||
room_pubkey = (
|
||||
payload.get('room_pubkey')
|
||||
or payload.get('receiver')
|
||||
or payload.get('receiver_pubkey')
|
||||
or payload.get('receiver_pubkey_prefix')
|
||||
or pubkey
|
||||
)
|
||||
|
||||
debug_print(f"DM payload keys: {list(payload.keys())}")
|
||||
|
||||
@@ -320,27 +327,21 @@ class EventHandler:
|
||||
|
||||
# --- Room Server message (txt_type 2) ---
|
||||
if txt_type == 2:
|
||||
room_pubkey = (
|
||||
payload.get('room_pubkey')
|
||||
or payload.get('receiver_pubkey')
|
||||
or payload.get('recipient_pubkey')
|
||||
or payload.get('pubkey')
|
||||
or pubkey
|
||||
)
|
||||
author_prefix = (
|
||||
signature
|
||||
or payload.get('sender_pubkey_prefix', '')
|
||||
or payload.get('sender_pubkey', '')
|
||||
or payload.get('sender_prefix', '')
|
||||
)
|
||||
|
||||
# Resolve actual author from signature when present.
|
||||
# Some room servers omit the signature field; in that case
|
||||
# fall back to the payload sender/display name if available.
|
||||
author = ''
|
||||
if author_prefix:
|
||||
author = self._shared.get_contact_name_by_prefix(author_prefix)
|
||||
if signature:
|
||||
author = self._shared.get_contact_name_by_prefix(signature)
|
||||
if not author:
|
||||
author = signature[:8]
|
||||
if not author:
|
||||
author = payload.get('sender_name', '') or payload.get('name', '')
|
||||
if not author:
|
||||
author = author_prefix[:8] if author_prefix else room_pubkey[:8] if room_pubkey else '?'
|
||||
author = (
|
||||
payload.get('sender')
|
||||
or payload.get('name')
|
||||
or payload.get('author')
|
||||
or '?'
|
||||
)
|
||||
|
||||
self._shared.add_message(Message.incoming(
|
||||
author,
|
||||
|
||||
@@ -259,13 +259,18 @@ class _BaseWorker(abc.ABC):
|
||||
|
||||
def _on_login_success(self, event) -> None:
|
||||
payload = event.payload or {}
|
||||
pubkey = payload.get("pubkey_prefix", "")
|
||||
pubkey = (
|
||||
payload.get("room_pubkey")
|
||||
or payload.get("pubkey_prefix")
|
||||
or payload.get("receiver")
|
||||
or ""
|
||||
)
|
||||
is_admin = payload.get("is_admin", False)
|
||||
debug_print(f"LOGIN_SUCCESS received: pubkey={pubkey}, admin={is_admin}")
|
||||
self.shared.set_status("✅ Room login OK — messages arriving over RF…")
|
||||
if pubkey:
|
||||
self.shared.set_room_login_state(pubkey, 'ok', f'admin={is_admin}')
|
||||
self.shared.load_room_history(pubkey)
|
||||
self.shared.set_status("✅ Room login OK — messages arriving over RF…")
|
||||
|
||||
# ── apply cache ───────────────────────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user