#!"D:\Program Files\Fusion\eyeonScript.exe" -q
master='192.168.11.50'
function unescape (str)
str = string.gsub(str, "+", " ")
return string.gsub(str, "%%(%x%x)", function (x)
return strchar(tonumber(x, 16))
end)
end
function decode (s)
cgi={}
string.gsub(s, "([^&=]*)=([^&=]*)&?",
function (key, value)
key=unescape(key)
value=unescape(value)
cgi[key]=value
end)
end
function getfilename(path)
for i = string.len(path), 1, -1 do
teststring = string.sub(path, i, i)
if teststring == "\\" or teststring == "/" then
return string.sub(path, i+1)
end
end
end
decode(os.getenv("QUERY_STRING"))
if cgi["master"] then
master=cgi["master"]
end
f = Fusion(master)
if not f then
print()
print('No Fusion manager is running at '..master)
end
rm = f.RenderManager
jobs = rm:GetJobList()
slaves = rm:GetSlaveList()
if tonumber(cgi['show']) == 1 then short=nil else short=true end
function parseFilename(filename)
local seq = {}
seq.FullPath = filename
string.gsub(seq.FullPath, "^(.+[/\\])(.+)", function(path, name) seq.Path = path seq.FullName = name end)
string.gsub(seq.FullName, "^(.+)(%..+)$", function(name, ext) seq.Name = name seq.Extension = ext end)
if not seq.Name then -- no extension?
seq.Name = seq.FullName
end
string.gsub(seq.Name, "^(.-)(%d+)$", function(name, SNum) seq.CleanName = name seq.SNum = SNum end)
if seq.SNum then
seq.Number = tonumber( seq.SNum )
seq.Padding = string.len( seq.SNum )
else
seq.SNum = ""
seq.CleanName = seq.Name
end
if seq.Extension == nil then seq.Extension = "" end
seq.UNC = ( string.sub(seq.Path, 1, 2) == [[\\]] )
return seq
end
print("Content-type: text/html\n\n")
print([[
Render Status ]]..master..[[
reloading in:
]])
if table.getn(slaves) == 0 then
print("No Slaves on "..master)
else
print([[
| Slave |
Status |
job |
Groups |
v |
|---|
]])
for i, v in slaves do
slv = v:GetAttrs()
job=''
if(slv.RSLVN_Status==9) then
job =getfilename(v:GetJob():GetAttrs().RJOBS_Name)
end
print( [[
| ]]..slv.RSLVS_Name..[[ | ]]..slv.RSLVS_Status..[[ | ]]..job..[[ | ]]..slv.RSLVS_Groups..[[ | ]]..slv.RSLVS_Version..[[ |
]])
end
print([[
]])
end
print([[
| ## | Render job | Groups | Status | Done/Total-(Left) | Queued By |
]])
if table.getn(jobs) == 0 then
print('| No Jobs In Queue |
')
else
for i,v in jobs do
a = v:GetAttrs()
print([[ | ]]..i..[[ | ]])
-- print(td.."remove")
--print("up")
--print("down")
--print(td_e)
--dump(a.RJOBS_Name)
print(parseFilename(a.RJOBS_Name).FullName..[[ | ]]..a.RJOBS_Groups..[[ | ]]..a.RJOBS_Status)
if a.RJOBN_RenderingFrames > 0 then
print(a.RJOBN_RenderingFrames)
end
print([[ | ]]..a.RJOBN_RenderedFrames..[[ / ]]..(a.RJOBN_UnrenderedFrames + a.RJOBN_RenderedFrames + a.RJOBN_RenderingFrames)..[[ - (]]..a.RJOBN_UnrenderedFrames..[[)]]..''..[[ | ]]..a.RJOBS_QueuedBy..[[ |
]])
end
end
print([[
]])