Fetch preview images on separate thread

This commit is contained in:
Brett Williams
2023-06-03 17:21:30 -05:00
parent 2154cf0cff
commit c88480daea

View File

@@ -14,7 +14,7 @@ from lib.server.server_proxy import RenderServerProxy
sys.path.append("../")
from lib.server.zeroconf_server import ZeroconfServer
logger = logging.getLogger()
def sort_column(tree, col, reverse=False):
@@ -32,8 +32,8 @@ def make_sortable(tree):
class DashboardWindow:
lib_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
image_path = os.path.join(lib_path, 'server', 'static', 'images', 'desktop.png')
default_image = Image.open(image_path)
image_path = os.path.join(lib_path, 'server', 'static', 'images')
default_image = Image.open(os.path.join(image_path, 'desktop.png'))
def __init__(self):
@@ -183,15 +183,22 @@ class DashboardWindow:
job_id = self.selected_job_id()
if job_id:
# update thumb
response = self.server_proxy.request(f'job/{job_id}/thumbnail?size=big')
if response.ok:
try:
import io
image_data = response.content
image = Image.open(io.BytesIO(image_data))
self.set_image(image)
except Exception as e:
print(f"error getting image: {e}")
def fetch_preview():
hostname = self.server_proxy.hostname
response = self.server_proxy.request(f'job/{job_id}/thumbnail?size=big')
if response.ok:
try:
import io
image_data = response.content
image = Image.open(io.BytesIO(image_data))
if self.server_proxy.hostname == hostname:
self.set_image(image)
except Exception as e:
logger.error(f"error fetching image: {e}")
fetch_thread = threading.Thread(target=fetch_preview)
fetch_thread.daemon = True
fetch_thread.start()
else:
self.set_image(self.default_image)