-- vim:set ft=lua:
dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua')
function AddReserve(onid,tsid,sid,eid,post)
local r={onid=onid,tsid=tsid,sid=sid,eid=eid}
local presetID=GetVarInt(post,'presetID',0,65534)
if presetID then
for i,v in ipairs(edcb.EnumRecPresetInfo()) do
if v.id==presetID then
r.recSetting=v.recSetting
break
end
end
end
if r.recSetting then
local useMargin=GetVarInt(post,'useDefMarginFlag')~=1 or nil
r.recSetting={
batFilePath=r.recSetting.batFilePath,
recFolderList=r.recSetting.recFolderList,
partialRecFolder=r.recSetting.partialRecFolder,
recMode=GetVarInt(post,'recEnabled')~=1 and 5 or GetVarInt(post,'recMode',0,4),
noRecMode=GetVarInt(post,'recMode',0,4),
tuijyuuFlag=GetVarInt(post,'tuijyuuFlag')==1,
priority=GetVarInt(post,'priority',1,5),
pittariFlag=GetVarInt(post,'pittariFlag')==1,
suspendMode=GetVarInt(post,'suspendMode',0,4),
rebootFlag=GetVarInt(post,'rebootFlag')==1,
startMargin=useMargin and GetVarInt(post,'startMargin',-6*3600,6*3600),
endMargin=useMargin and GetVarInt(post,'endMargin',-6*3600,6*3600),
serviceMode=GetVarInt(post,'serviceMode')==1 and 0 or
1+16*(GetVarInt(post,'serviceMode_1',0,1) or 0)+32*(GetVarInt(post,'serviceMode_2',0,1) or 0),
continueRecFlag=GetVarInt(post,'continueRecFlag')==1,
tunerID=GetVarInt(post,'tunerID'),
partialRecFlag=GetVarInt(post,'partialRecFlag',0,1) or 0
}
local ev=edcb.SearchEpg(onid,tsid,sid,eid)
if ev and ev.startTime and ev.durationSecond and
r.recSetting.recMode and
r.recSetting.priority and
r.recSetting.suspendMode and
(not useMargin or r.recSetting.startMargin and r.recSetting.endMargin) and
r.recSetting.tunerID
then
r.title=ev.shortInfo and ev.shortInfo.event_name or ''
r.startTime=ev.startTime
r.startTimeEpg=ev.startTime
r.durationSecond=ev.durationSecond
r.stationName=''
for i,v in ipairs(edcb.GetServiceList() or {}) do
if v.onid==onid and v.tsid==tsid and v.sid==sid then
r.stationName=v.service_name
break
end
end
return edcb.AddReserveData(r)
end
end
return false
end
ct=CreateContentBuilder(GZIP_THRESHOLD_BYTE)
ct:Append([=[
番組詳細 - EDCB
番組詳細
]=])
onid,tsid,sid,eid=(mg.get_var(mg.request_info.query_string,'id') or ''):match('^(%d?%d?%d?%d?%d)%-(%d?%d?%d?%d?%d)%-(%d?%d?%d?%d?%d)%-(%d?%d?%d?%d?%d)$')
onid=tonumber(onid) or 0
tsid=tonumber(tsid) or 0
sid=tonumber(sid) or 0
eid=tonumber(eid) or 0
presetID=GetVarInt(mg.request_info.query_string,'presetID') or 65535
post=AssertPost()
if post then
if mg.get_var(post,'addchg') then
ct:Append('
'..(AddReserve(onid,tsid,sid,eid,post) and '予約を追加しました' or '入力値不正')..'
\n')
end
end
r=nil
edcb.htmlEscape=15
for i,v in ipairs(edcb.GetReserveData()) do
if v.onid==onid and v.tsid==tsid and v.sid==sid and v.eid==eid then
r=v
break
end
end
if not r and presetID==65535 then
presetID=0
end
ct:Append('