import json import datetime import zmq import asyncio from PIL import Image from io import BytesIO import base64 import zmq, sys class SmartShooter: SET_REQ = "tcp://127.0.0.1:54544" LISTEN_REQ = "tcp://127.0.0.1:54543" def send_tcp_message(self, socket, code): exit(1) req = {} req["msg_type"] = "Request" req["msg_id"] = "ActivateLicense" req["msg_seq_num"] = 0 req["ActivationCode"] = code socket.send_string(json.dumps(req)) rep = socket.recv() str_msg = rep.decode("utf-8") json_msg = json.loads(str_msg) return json_msg["msg_result"] def connect_send(self): context = zmq.Context() req_socket = context.socket(zmq.REQ) req_socket.connect(self.SET_REQ) if self.send_tcp_message(req_socket, True): print("License activated") else: print("Failed to activate license", file=sys.stderr) def connect_listen(self): context = zmq.Context() sub_socket = context.socket(zmq.SUB) sub_socket.setsockopt(zmq.SUBSCRIBE, b"") sub_socket.connect(self.LISTEN_REQ) while True: raw = sub_socket.recv() str_msg = raw.decode("utf-8") json_msg = json.loads(str_msg) # if args.nopings and json_msg["msg_id"] == "NetworkPing": # continue # print("{0}: {1}".format(datetime.datetime.now(), json_msg["msg_id"])) # if not args.quiet: # print(str_msg)