@@ -37,6 +37,7 @@ def is_windows() -> bool:
3737--s | Transfers file to Client
3838--r | Transfers file to Server
3939--d | Download file from the web
40+ --z (file) (dir) (unzip) | Zip Files or Folders
4041--c | Copies to Client Clipboard
4142--p | Returns Client Current Clipboard
4243--t (add) (remove) | Manage Startup (Windows)
@@ -377,10 +378,28 @@ def _get_info(self) -> tuple:
377378
378379 def info (self , _print = True ) -> str :
379380 """ Get Client Info """
380- # Returns str
381+ # returns str
381382 self .send (json_dumps (['INFO' ]))
382383 return self .receive (_print = _print ).decode ()
383384
385+ def zip_file (self , zip_filename , file_to_zip ) -> (bool , str ):
386+ """ Zip a Single File """
387+ # returns True/False, None/error
388+ self .send (json_dumps (['ZIP_FILE' , zip_filename , file_to_zip ]))
389+ return tuple (json_loads (self .receive ()))
390+
391+ def zip_dir (self , zip_filename , dir_to_zip ) -> (bool , str ):
392+ """ Zip a Directory """
393+ # returns True/False, None/error
394+ self .send (json_dumps (['ZIP_DIR' , os .path .splitext (zip_filename )[0 ], dir_to_zip ]))
395+ return tuple (json_loads (self .receive ()))
396+
397+ def unzip (self , zip_filename ) -> (bool , str ):
398+ """ Unzip a File """
399+ # returns True/False, None/error
400+ self .send (json_dumps (['UNZIP' , zip_filename ]))
401+ return tuple (json_loads (self .receive ()))
402+
384403
385404class MultiServer (object ):
386405
@@ -603,6 +622,33 @@ def selector(self, client, command) -> bool:
603622 else :
604623 print (error )
605624 return
625+ if command == '--z' :
626+ if select == 'file' :
627+ save_as = input ('Zip Filename: ' )
628+ file_to_zip = input ('File to Zip: ' )
629+ result , error = client .zip_file (save_as , file_to_zip )
630+ if result :
631+ print ('Zipping Successful.' )
632+ else :
633+ print (error )
634+ return
635+ if select == 'dir' :
636+ save_as = input ('Zip Filename: ' )
637+ dir_to_zip = input ('Directory to Zip: ' )
638+ result , error = client .zip_dir (save_as , dir_to_zip )
639+ if result :
640+ print ('Zipped Directory Successfully.' )
641+ else :
642+ print (error )
643+ return
644+ if select == 'unzip' :
645+ zip_filename = input ('Zip File: ' )
646+ result , error = client .unzip (zip_filename )
647+ if result :
648+ print ('Unzipped Successfully.' )
649+ else :
650+ print (error )
651+ return
606652 if '--c' in command :
607653 text_to_copy = input ('Text to copy: ' )
608654 result , error = client .fill_clipboard (text_to_copy )
0 commit comments