예제 #1
0
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
예제 #2
0
 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"]