diff options
Diffstat (limited to 'release/scripts/io/netrender/utils.py')
-rw-r--r-- | release/scripts/io/netrender/utils.py | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/release/scripts/io/netrender/utils.py b/release/scripts/io/netrender/utils.py index 1d35ea00c99..6288b9747c0 100644 --- a/release/scripts/io/netrender/utils.py +++ b/release/scripts/io/netrender/utils.py @@ -19,7 +19,7 @@ import sys, os import re import http, http.client, http.server, urllib, socket -import subprocess, shutil, time, hashlib +import subprocess, shutil, time, hashlib, zlib import netrender.model @@ -28,7 +28,7 @@ try: except: bpy = None -VERSION = bytes("0.8", encoding='utf8') +VERSION = bytes("0.9", encoding='utf8') # Jobs status JOB_WAITING = 0 # before all data has been entered @@ -110,7 +110,7 @@ def clientConnection(address, port, report = None, scan = True): return None try: - conn = http.client.HTTPConnection(address, port) + conn = http.client.HTTPConnection(address, port, timeout = 5) if conn: if clientVerifyVersion(conn): @@ -154,18 +154,33 @@ def renderURL(job_id, frame_number): def cancelURL(job_id): return "/cancel_%s" % (job_id) -def prefixPath(prefix_directory, file_path, prefix_path): +def hashFile(path): + f = open(path, "rb") + value = hashData(f.read()) + f.close() + return value + +def hashData(data): + m = hashlib.md5() + m.update(data) + return m.hexdigest() + + +def prefixPath(prefix_directory, file_path, prefix_path, force = False): if os.path.isabs(file_path): # if an absolute path, make sure path exists, if it doesn't, use relative local path full_path = file_path - if not os.path.exists(full_path): + if force or not os.path.exists(full_path): p, n = os.path.split(full_path) if prefix_path and p.startswith(prefix_path): - directory = prefix_directory + p[len(prefix_path):] - full_path = directory + os.sep + n - if not os.path.exists(directory): - os.mkdir(directory) + if len(prefix_path) < len(p): + directory = prefix_directory + p[len(prefix_path)+1:] + os.sep # +1 to remove separator + if not os.path.exists(directory): + os.mkdir(directory) + else: + directory = prefix_directory + full_path = directory + n else: full_path = prefix_directory + n else: @@ -199,8 +214,8 @@ def thumbnail(filename): if bpy: scene = bpy.data.scenes[0] # FIXME, this is dodgy! scene.render.file_format = "JPEG" - scene.render.quality = 90 - bpy.ops.image.open(path = filename) + scene.render.file_quality = 90 + bpy.ops.image.open(filepath=filename) img = bpy.data.images[imagename] img.save_render(thumbname, scene=scene) |