mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Add zeroconf to client
This commit is contained in:
@@ -10,6 +10,7 @@ from tkinter import ttk, messagebox
|
||||
from PIL import Image, ImageTk
|
||||
from new_job_window import NewJobWindow
|
||||
from server_proxy import RenderServerProxy
|
||||
from lib.server.zeroconf_server import ZeroconfServer
|
||||
|
||||
|
||||
def request_data(server_ip, payload, server_port=8080, timeout=2):
|
||||
@@ -44,15 +45,17 @@ class ZordonClient:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
servers = available_servers()
|
||||
|
||||
# Create a Treeview widget
|
||||
self.root = tk.Tk()
|
||||
self.root.title("Zordon Render Client")
|
||||
self.local_host = socket.gethostname()
|
||||
self.server_proxy = RenderServerProxy(hostname=servers[0])
|
||||
self.server_proxy = RenderServerProxy(hostname=self.local_host)
|
||||
self.job_cache = []
|
||||
|
||||
# Setup zeroconf
|
||||
self.zeroconf = ZeroconfServer("_zordon._tcp.local.", self.server_proxy.hostname, self.server_proxy.port)
|
||||
self.zeroconf.start()
|
||||
|
||||
# Setup photo preview
|
||||
photo_pad = tk.Frame(self.root, background="gray")
|
||||
photo_pad.pack(fill=tk.BOTH, pady=5, padx=5)
|
||||
@@ -129,7 +132,7 @@ class ZordonClient:
|
||||
pass
|
||||
|
||||
# update servers
|
||||
self.populate_server_tree()
|
||||
self.update_servers()
|
||||
try:
|
||||
selected_server = self.server_tree.get_children()[0]
|
||||
self.server_tree.selection_set(selected_server)
|
||||
@@ -141,15 +144,12 @@ class ZordonClient:
|
||||
x.daemon = True
|
||||
x.start()
|
||||
|
||||
def populate_server_tree(self):
|
||||
servers = available_servers()
|
||||
self.server_tree.delete(*self.server_tree.get_children())
|
||||
for hostname in servers:
|
||||
self.server_tree.insert("", tk.END, iid=hostname, values=(hostname,))
|
||||
|
||||
def server_picked(self, event):
|
||||
new_hostname = self.server_tree.selection()[0]
|
||||
self.server_proxy.hostname = new_hostname
|
||||
try:
|
||||
new_hostname = self.server_tree.selection()[0]
|
||||
self.server_proxy.hostname = new_hostname
|
||||
except IndexError:
|
||||
pass
|
||||
self.job_cache.clear()
|
||||
self.update_jobs(clear_table=True)
|
||||
|
||||
@@ -218,8 +218,17 @@ class ZordonClient:
|
||||
def __background_update(self):
|
||||
while True:
|
||||
self.update_jobs()
|
||||
self.update_servers()
|
||||
time.sleep(1)
|
||||
|
||||
def update_servers(self):
|
||||
servers = self.zeroconf.found_clients()
|
||||
if len(servers) < len(self.server_tree.get_children()):
|
||||
self.server_tree.delete(*self.server_tree.get_children())
|
||||
for hostname in servers:
|
||||
if hostname not in self.server_tree.get_children():
|
||||
self.server_tree.insert("", tk.END, iid=hostname, values=(hostname,))
|
||||
|
||||
def update_jobs(self, clear_table=False):
|
||||
|
||||
def update_row(tree, id, new_values, tags=None):
|
||||
|
||||
Reference in New Issue
Block a user