-- vim:set ft=lua: dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua') function AddOrChange(dataID,post) local aa={dataID=dataID} local presetID=GetVarInt(post,'presetID',0,65534) if presetID then for i,v in ipairs(edcb.EnumRecPresetInfo()) do if v.id==presetID then aa.recSetting=v.recSetting break end end elseif dataID~=0 then for i,v in ipairs(edcb.EnumAutoAdd()) do if v.dataID==dataID then aa.recSetting=v.recSetting break end end end if aa.recSetting then local useMargin=GetVarInt(post,'useDefMarginFlag')~=1 or nil aa.recSetting={ batFilePath=aa.recSetting.batFilePath, recFolderList=aa.recSetting.recFolderList, partialRecFolder=aa.recSetting.partialRecFolder, recMode=GetVarInt(post,'recMode',0,5), 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 } if aa.recSetting.recMode and aa.recSetting.priority and aa.recSetting.suspendMode and (not useMargin or aa.recSetting.startMargin and aa.recSetting.endMargin) and aa.recSetting.tunerID then aa.searchInfo={ --制御文字は消す andKey=(GetVarInt(post,'disableFlag')==1 and '^!{999}' or '') ..(GetVarInt(post,'caseFlag')==1 and 'C!{999}' or '') ..(mg.get_var(post,'andKey') or ''):gsub('%c',''), notKey=(mg.get_var(post,'notKey') or ''):gsub('%c',''), regExpFlag=GetVarInt(post,'regExpFlag')==1, titleOnlyFlag=GetVarInt(post,'titleOnlyFlag')==1, aimaiFlag=GetVarInt(post,'aimaiFlag')==1, notContetFlag=GetVarInt(post,'notContetFlag')==1, notDateFlag=GetVarInt(post,'notDateFlag')==1, freeCAFlag=GetVarInt(post,'freeCAFlag',0,2) or 0, chkRecEnd=GetVarInt(post,'chkRecEnd')==1, chkRecDay=GetVarInt(post,'chkRecDay') or 0, chkRecNoService=GetVarInt(post,'chkRecNoService')==1, chkDurationMin=GetVarInt(post,'chkDurationMin') or 0, chkDurationMax=GetVarInt(post,'chkDurationMax') or 0 } aa.searchInfo.contentList={} for i=0,10000 do local v=GetVarInt(post,'contentList',0,65535,i) if not v then break end table.insert(aa.searchInfo.contentList,{content_nibble=v}) end aa.searchInfo.serviceList={} for i=0,10000 do local v=mg.get_var(post,'serviceList',i) if not v then break end local m={v:match('^(%d?%d?%d?%d?%d)%-(%d?%d?%d?%d?%d)%-(%d?%d?%d?%d?%d)$')} if #m==3 then table.insert(aa.searchInfo.serviceList,{onid=0+m[1],tsid=0+m[2],sid=0+m[3]}) end end aa.searchInfo.dateList={} for v in (mg.get_var(post,'dateList') or ''):gmatch('[^,]+') do local m={v:match('^ *([a-z][a-z])[a-z](%d?%d):(%d?%d)%-([a-z][a-z])[a-z](%d?%d):(%d?%d) *$')} if #m==6 then local dateInfo={ startDayOfWeek=({su=0,mo=1,tu=2,we=3,th=4,fr=5,sa=6})[m[1]], startHour=0+m[2], startMin=0+m[3], endDayOfWeek=({su=0,mo=1,tu=2,we=3,th=4,fr=5,sa=6})[m[4]], endHour=0+m[5], endMin=0+m[6] } if dateInfo.startDayOfWeek and dateInfo.startHour<24 and dateInfo.startMin<60 and dateInfo.endDayOfWeek and dateInfo.endHour<24 and dateInfo.endMin<60 then table.insert(aa.searchInfo.dateList,dateInfo) end end end return edcb.AddOrChgAutoAdd(aa) end end return false end ct=CreateContentBuilder(GZIP_THRESHOLD_BYTE) ct:Append([=[ EPG予約 - EDCB ]=]) aa={dataID=GetVarInt(mg.request_info.query_string,'id') or 0} if aa.dataID==0 then ct:Append('

EPG予約 新規条件追加

\n
\n') post=AssertPost() if post then if mg.get_var(post,'addchg') then ct:Append('
'..(AddOrChange(0,post) and '追加しました' or '入力値不正')..'
\n') end else aa.searchInfo={ andKey='', notKey='', regExpFlag=false, titleOnlyFlag=false, aimaiFlag=false, notContetFlag=false, notDateFlag=false, freeCAFlag=0, chkRecEnd=false, chkRecDay=6, chkRecNoService=false, chkDurationMin=0, chkDurationMax=0, contentList={}, dateList={}, serviceList={} } end edcb.htmlEscape=15 else ct:Append('

EPG予約 条件変更

\n
\n') post=AssertPost() if post then if mg.get_var(post,'addchg') then ct:Append('
'..(AddOrChange(aa.dataID,post) and '変更しました' or '入力値不正')..'
\n') elseif mg.get_var(post,'del') then edcb.DelAutoAdd(aa.dataID) ct:Append('
削除しました
\n') end end edcb.htmlEscape=15 for i,v in ipairs(edcb.EnumAutoAdd()) do if v.dataID==aa.dataID then aa=v break end end end if aa.searchInfo then si=aa.searchInfo ct:Append('
\n' ..'
プリセット
\n' ..'
\n' ..'
\n' ..'
条件
\n' ..'
\n' ..'
\n' ..'\n' ..'
\n' ..'

検索条件

\n' ..'検索キーワード

\n' ..'NOTキーワード

\n' ..'正規表現モード \n' ..'あいまい検索モード
\n' ..'番組名のみ検索対象にする
\n' ..'大小文字区別
\n' ..'自動登録を無効にする

\n' ..'ジャンル絞り込み(Ctrl+複数選択) NOT扱い
\n' ..'

\n' ..'サービス絞り込み(Ctrl+複数選択)


\n' ..'時間絞り込み NOT扱い
\n' ..'
\n書式: (sun|mon|tue|wed|thu|fri|sat)H:M-(...)H:M, (例: sun23:0-mon5:0, wed3:0-wed5:0)

\n' ..'スクランブル放送:\n
\n' ..'番組長で絞り込み: 分以上 ' ..'分以下(0で無制限)

\n' ..'同一番組名の録画結果があれば無効で登録する
\n' ..' 全てのサービスで無効にする
\n' ..' 確認対象期間 日前まで
\n' ..'

録画設定

\n'..RecSettingTemplate(rs)..'
\n' ..'
\n') if aa.dataID~=0 then ct:Append('
-
\n' ..'
\n' ..'\n' ..'\n' ..'
\n') end ct:Append('
\n') 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'))