daily pastebin goal
22%
SHARE
TWEET

Untitled

a guest Sep 19th, 2011 106 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import nuke
  2.  
  3. import os
  4.  
  5. import socket
  6.  
  7. import platform
  8. import re
  9.  
  10.  
  11.  
  12. AUCKLAND_SUBNET = "9"
  13.  
  14. WELLINGTON_SUBNET = "4"
  15.  
  16.  
  17.  
  18. def makeWindowsPath(server, share, job, path):
  19.  
  20.         return "//" + server + "/" + share + "/" + job + "/" + path
  21.  
  22.        
  23.  
  24. def makeLinuxPath(server, share, job, path):
  25.  
  26.         return "/" + server + "/" + share + "/"  + job + "/" + path
  27.  
  28.  
  29.  
  30. def pathFixes():
  31.  
  32.         readNodes = []
  33.  
  34.         affectedNodes = []
  35.  
  36.         for n in nuke.allNodes():
  37.  
  38.                 if n.Class() == "Read":
  39.  
  40.                         readNodes.append(n)
  41.  
  42.                         affectedNodes.append(n)
  43.  
  44.                 elif n.Class() == "Write":
  45.  
  46.                         affectedNodes.append(n)
  47.  
  48.                        
  49.  
  50.         if len(affectedNodes) < 1:
  51.  
  52.                 return
  53.  
  54.        
  55.  
  56.         # Set server depending on Location by IP
  57.  
  58.         addr = socket.gethostbyname(socket.gethostname())
  59.  
  60.         if addr.split(".")[2] == AUCKLAND_SUBNET:
  61.  
  62.                 server = "sam"
  63.  
  64.                 altserver = "flash"
  65.  
  66.         else:
  67.  
  68.                 server = "flash"
  69.  
  70.                 altserver = "sam"
  71.  
  72.        
  73.  
  74.         for node in affectedNodes:
  75.  
  76.  
  77.  
  78.                 filename = nuke.filename(node).replace("\\", "/")
  79.  
  80.                 filenameSplit = filter(lambda x: x != "", filename.split("/"))
  81.  
  82.  
  83.  
  84.                
  85.  
  86.                 share = str.upper(filenameSplit[1])
  87.  
  88.                 job = str.upper(filenameSplit[2])
  89.  
  90.                 path = "/".join(filenameSplit[3:])
  91.  
  92.  
  93.  
  94.                 if platform.system() in ("Windows", "Microsoft"):
  95.  
  96.                         pathFunc = makeWindowsPath
  97.  
  98.                 elif platform.system() in ("Linux", "Ubuntu"):
  99.  
  100.                         pathFunc = makeLinuxPath
  101.  
  102.                 else:
  103.  
  104.                         node['file'].setValue(filename)
  105.  
  106.                         return
  107.  
  108.  
  109.  
  110.                 fixedFilename = pathFunc(server, share, job, path)
  111.  
  112.                 if node in readNodes:
  113.  
  114.                         if not os.path.exists(fixedFilename):
  115.  
  116.                                 fixedFilename = pathFunc(altserver, share, job, path)
  117.  
  118.                
  119.  
  120.                 node['file'].setValue(fixedFilename)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top