11#!/usr/bin/env python3
22
3+ version = "0.1.5"
4+
35"""
46### CloudLink Server ###
57
@@ -50,10 +52,6 @@ def host(self, port, ip=None): # runs the module in server mode, uses websocket-
5052 self .serverThread .setDaemon (True )
5153
5254 # Run the server
53- if ip == None :
54- print ("Now running in host mode on port {0}..." .format (port ))
55- else :
56- print ("Now running in host mode on port {0} using IP {1}..." .format (port , ip ))
5755 self .serverThread .start ()
5856
5957 except Exception as e :
@@ -76,7 +74,6 @@ def client(self, ip, on_new_packet=None, on_connect=None, on_error=None): # runs
7674 self .clientThread .setDaemon (True )
7775
7876 # Run the client
79- print ("Now running in client mode, connecting to IP {0}..." .format (ip ))
8077 self .clientThread .start ()
8178
8279 except Exception as e :
@@ -113,13 +110,15 @@ def __init__(self): # Initializes the class
113110 self .handlers = []
114111 self .gdata = ""
115112 self .mode = 0 # 1=Host, 2=Client
113+ print ("CloudLink v{0}" .format (version ))
116114
117115 def _newConnection (self , client , server ): # Server: Handles new connections
118116 if self .mode == 1 :
119117 print ("New connection: {0}" .format (client ['id' ]))
120118 self .users [str (client )] = {"name" : "" , "id" : str (client ['id' ])}
121119 self ._relayUserList (server , True , client )
122120 self ._sendPacket (server , True , {"cmd" :"gmsg" , "id" :client , "val" :str (self .gdata )})
121+ self ._sendPacket (server , True , {"cmd" :"direct" , "id" :client , "val" : {"cmd" : "vers" , "val" : version }})
123122
124123 def _sendPacket (self , server , type , data ): # Server: Transmits packets, False:Public, True:Private
125124 if self .mode == 1 :
@@ -161,6 +160,7 @@ def _gotPacket(self, client, server, message): # Server: Handles new packet even
161160 err = False
162161 try :
163162 packet = json .loads (message )
163+ print ("Got packet: {0} bytes" .format (len (str (packet ))))
164164 except Exception as e :
165165 err = True
166166 finally :
@@ -182,6 +182,10 @@ def _gotPacket(self, client, server, message): # Server: Handles new packet even
182182 name = str (packet ['name' ])
183183 else :
184184 name = ""
185+ if "origin" in packet :
186+ origin = str (packet ['origin' ])
187+ else :
188+ origin = ""
185189
186190 if cmd == "clear" : # Clears comms
187191 self ._sendPacket (server , False , {"cmd" :"gmsg" , "val" :"" })
@@ -202,12 +206,14 @@ def _gotPacket(self, client, server, message): # Server: Handles new packet even
202206 self ._sendPacket (server , False , {"cmd" :"gmsg" , "val" :self .gdata })
203207 if cmd == "pmsg" : # Set private stream data values
204208 if not id == "" :
205- self ._sendPacket (server , True , {"cmd" :"pmsg" , "id" :id , "val" :val })
209+ if not origin == "" :
210+ self ._sendPacket (server , True , {"cmd" :"pmsg" , "id" :id , "val" :val , "origin" :origin })
206211 if cmd == "gvar" : # Set global variable data values
207212 self ._sendPacket (server , False , {"cmd" :"gvar" , "name" :name , "val" :val })
208213 if cmd == "pvar" : # Set private variable data values
209214 if not id == "" :
210- self ._sendPacket (server , True , {"cmd" :"pvar" , "name" :name , "id" :id , "val" :val })
215+ if not origin == "" :
216+ self ._sendPacket (server , True , {"cmd" :"pvar" , "name" :name , "id" :id , "val" :val , "origin" :origin })
211217
212218 def _set_fn_new_packet (self , fn ): # Client: Defines API-friendly callback to new packet events
213219 self .fn_msg = fn
@@ -225,13 +231,11 @@ def _on_message(self, ws, message): # Client: Defines callback to new packet eve
225231 if not json .loads (message ) == {"cmd" : "ds" }:
226232 self .fn_msg (json .loads (message ))
227233 else :
228- print ("Server is shutting down, disconnecting." )
229234 self .fn_ds ()
230235
231236 def _on_error (self , ws , error ): # Client: Defines callback to error events
232237 self .fn_err (error )
233238 self .fn_ds ()
234239
235240 def _on_open (self , ws ): # Client: Defines callback to connected event
236- print ("Connected." )
237241 self .fn_con ()
0 commit comments