-- vim:set ft=lua:
dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua')
ct=CreateContentBuilder(GZIP_THRESHOLD_BYTE)
ct:Append([=[
]=])
if INDEX_ENABLE_SUSPEND then
ct:Append([=[
]=])
end
ct:Append([=[
]=])
post=AssertPost()
edcbnosuspend=EdcbModulePath()..'\\Tools\\edcbnosuspend.exe'
if edcb.FindFile(edcbnosuspend,1) then
onstat=post and mg.get_var(post,'nosuspend')
if not onstat then
onstat,stat,code=edcb.os.execute('tasklist /fi "imagename eq edcbnosuspend.exe" /fo csv /nh | find /i "edcbnosuspend.exe"')
onstat=onstat and stat=='exit' and code==0 and 'y'
end
ct:Append([=[
]=])
end
if post then
if mg.get_var(post,'suspend') or mg.get_var(post,'hibernate') then
if INDEX_ENABLE_SUSPEND then
for i=1,100 do
f=edcb.io.open('\\\\.\\pipe\\EpgTimerSrvNoWaitPipe','r+b')
if f then
--CMD_EPG_SRV_SUSPEND(=1051)を送る
f:write(string.char(1051%256,math.floor(1051/256),0,0))
f:write(string.char(2,0,0,0,(mg.get_var(post,'hibernate') and 2 or 1),255))
f:flush()
--CMD_SUCCESS(=1)を確認
ok=(f:read(4) or '')=='\1\0\0\0'
f:close()
break
end
edcb.Sleep(10)
end
end
ct:Append('
スタンバイに移行'..(ok and 'します' or 'できません (もうすぐ予約が始まるなど)')..'
\n')
elseif mg.get_var(post,'epgcap') then
ct:Append('
EPG取得を開始'..(edcb.EpgCapNow() and 'しました' or 'できませんでした')..'
\n')
elseif mg.get_var(post,'epgreload') then
ct:Append('
EPG再読み込みを開始'..(edcb.ReloadEpg() and 'しました' or 'できませんでした')..'
\n')
elseif mg.get_var(post,'nosuspend')=='y' then
edcb.os.execute('start "" /b "'..edcbnosuspend..'" -')
ct:Append('
edcbnosuspend.exeを起動しました
\n')
elseif mg.get_var(post,'nosuspend')=='n' then
TerminateCommandlineLike('edcbnosuspend.exe','%')
ct:Append('
edcbnosuspend.exeを停止しました
\n')
end
end
ct:Append([=[
]=])
ct:Finish()
mg.write(ct:Pop(Response(200,'text/html','utf-8',ct.len)..(ct.gzip and 'Content-Encoding: gzip\r\n' or '')..'\r\n'))