def socket_input_runnable(): global my_socket, running while running: json_string = my_socket.receive() if json_string: packet = packet_from_json(json_string) if packet: if packet["nachrichten_id"] == 1: encryption_key = packet["verschlüsselung"]["parameter"][0] message = rotation_encryption.decrypt( packet["text"], encryption_key ) if "verschlüsselte_parameter" in packet[ "verschlüsselung"] and "text" in packet[ "verschlüsselung"][ "verschlüsselte_parameter"] else packet["text"] sender = rotation_encryption.decrypt( packet["sender_name"], encryption_key ) if "verschlüsselte_parameter" in packet[ "verschlüsselung"] and "sender_name" in packet[ "verschlüsselung"][ "verschlüsselte_parameter"] else packet[ "sender_name"] print(sender + ": " + message) elif packet["nachrichten_id"] == 2: action = packet["aktion"] sender = packet["sender_name"] if action == "login": print(sender + " hat den Chatraum betreten!") elif action == "logout": print(sender + " hat den Chatraum verlassen!") else: running = False
def __init__(self, json_string=""): if json_string == "": return dictionary = json.loads(json_string) if "nachrichten_id" in dictionary: self.nachrichten_id = dictionary["nachrichten_id"] if self.nachrichten_id == 1: encryption_key = dictionary["verschlüsselung"]["parameter"][0] if "text" in dictionary["verschlüsselung"]["verschlüsselte_parameter"]: self.text = rotation_encryption.decrypt(dictionary["text"], encryption_key) else: self.text = dictionary["text"] if "sender_name" in dictionary["verschlüsselung"]["verschlüsselte_parameter"]: self.sender_name = rotation_encryption.decrypt(dictionary["sender_name"], encryption_key) else: self.sender_name = dictionary["sender_name"] elif self.nachrichten_id == 2: self.aktion = dictionary["aktion"] self.sender_name = dictionary["sender_name"]