diff --git a/repeater/companion/frame_server.py b/repeater/companion/frame_server.py index 88d5971..a38bf7c 100644 --- a/repeater/companion/frame_server.py +++ b/repeater/companion/frame_server.py @@ -92,6 +92,26 @@ from .constants import ( logger = logging.getLogger("CompanionFrameServer") +def _build_advert_push_frames(data: dict) -> tuple[bytes, Optional[bytes]]: + """Build PUSH_CODE_ADVERT short frame and optional PUSH_CODE_NEW_ADVERT full frame from extracted data. Thread-safe for asyncio.to_thread.""" + pubkey_b = data["pubkey_b"] + short = bytes([PUSH_CODE_ADVERT]) + pubkey_b + if not data.get("include_full"): + return (short, None) + full = ( + bytes([PUSH_CODE_NEW_ADVERT]) + + pubkey_b + + bytes([data["adv_type"], data["flags"], data["opl_byte"]]) + + data["out_path"] + + data["name_b"] + + struct.pack("= 32: