| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/usr/bin/python3
- import zmq
- from pydrk import api, serial
- from datetime import datetime
- api_client = api.Api(addr="127.0.0.1", port=9484)
- context = zmq.Context()
- pub_socket = context.socket(zmq.SUB)
- pub_socket.connect("tcp://127.0.0.1:9485")
- pub_socket.setsockopt(zmq.SUBSCRIBE, b"")
- node_path = "/plugin/darkirc"
- sig_name = "recv"
- slot_name = "python_listener"
- user_data = b"darkirc_recv"
- slot_id = api_client.register_slot(node_path, sig_name, slot_name, user_data)
- print(f"Registered slot ID: {slot_id}")
- print("Listening...")
- print("=" * 80)
- while True:
- parts = pub_socket.recv_multipart()
- assert len(parts) == 2
- signal_data, recv_user_data = parts
- assert recv_user_data == user_data
- cur = serial.Cursor(signal_data)
- channel = serial.decode_str(cur)
- timestamp = serial.read_u64(cur)
- msg_id_bytes = cur.read(32)
- msg_id = msg_id_bytes.hex()
- nick = serial.decode_str(cur)
- msg = serial.decode_str(cur)
- dt = datetime.fromtimestamp(timestamp / 1000.0)
- print(f"[{dt.strftime('%Y-%m-%d %H:%M:%S')}] #{channel} <{nick}> {msg}")
- print(f" Message ID: {msg_id}")
- print("-" * 80)
|