37 lines
1015 B
Python
37 lines
1015 B
Python
|
from time import sleep
|
||
|
from tkinter import filedialog
|
||
|
from os import path, environ, makedirs
|
||
|
|
||
|
class FileHandler:
|
||
|
def __init__(self, app):
|
||
|
self.app = app
|
||
|
|
||
|
def choose_file(self):
|
||
|
self.app.send("HANDLER", "file_dialog_open")
|
||
|
sleep(0.5)
|
||
|
filename = filedialog.askopenfilename(title="Select file to transfer")
|
||
|
sleep(0.5)
|
||
|
self.app.send("HANDLER", "file_dialog_close")
|
||
|
|
||
|
if filename:
|
||
|
self.send_file_to_server(filename)
|
||
|
|
||
|
def send_file_to_server(self, filepath):
|
||
|
with open(filepath, "rb") as file:
|
||
|
data = file.read()
|
||
|
filename = filepath.split("/")[-1]
|
||
|
# self.app.protocol.transport.write("stop_share_screen".encode())
|
||
|
# sleep(1)
|
||
|
self.app.send("FILE", filename, data)
|
||
|
|
||
|
def receive_file(self, filename, data):
|
||
|
downloads_folder = path.join("C:", environ.get('HOMEPATH'), 'Downloads')
|
||
|
|
||
|
file_path = path.join(downloads_folder, filename)
|
||
|
|
||
|
makedirs(downloads_folder, exist_ok=True)
|
||
|
|
||
|
with open(file_path, 'wb') as file:
|
||
|
file.write(data)
|
||
|
|
||
|
self.app.screen_share_handler.active = True
|