-- vim:set ft=lua: dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua') dir=edcb.GetPrivateProfile('SET', 'ModulePath', '', 'Common.ini')..'\\Tools\\' ffprobe=edcb.GetPrivateProfile('SET','ffprobe',dir..'ffprobe.exe',ini) ct={title='録画結果'} page=GetVarInt(mg.request_info.query_string,'page',0,100000) or 0 id=GetVarInt(mg.request_info.query_string,'id') or 0 w=edcb.GetRecFileInfo(id) edcb.htmlEscape=15 v=edcb.GetRecFileInfo(id) if v then -- トランスコード済みのファイルがvideoフォルダにあればそっち使う fname=string.match(w.recFilePath, '[^\\]*$') or '' for i,ext in ipairs({'.mp4','.webm'}) do f=edcb.io.open(mg.document_root..'\\video\\'..fname..ext, 'rb') if f then video=PathToRoot()..'video/'..mg.url_encode(fname)..ext fpath=mg.document_root..'\\video\\'..fname..ext break end end if not video then f=edcb.io.open(w.recFilePath, 'rb') if f then video=PathToRoot()..'api/Movie?id='..v.id fpath=w.recFilePath ori=true end end if video then ct.js='
\n' dur,fsize=GetDurationSec(f, fpath) f:close() end RecInfo='
- 結果:' ..v.comment..'
- 録画ファイルパス:
- ドロップ:' ..v.drops..'
- スクランブル:' ..v.scrambles..'
' if #v.programInfo==0 and v.eid~=65535 then --過去番組情報を探してみる ev=edcb.EnumEventInfoArchive and edcb.EnumEventInfoArchive({{onid=v.onid,tsid=v.tsid,sid=v.sid}},{startTime=v.startTime,durationSecond=1}) if ev and #ev>0 then epgInfo, audio=ConvertEpgInfoText2(ev[1],RecInfo) else --番組情報を探してみる ev=edcb.SearchEpg(v.onid,v.tsid,v.sid,v.eid) if ev and ev.startTime and os.time(ev.startTime)==os.time(v.startTime) then epgInfo, audio=ConvertEpgInfoText2(ev,RecInfo) end end end if not epgInfo then if string.find(v.programInfo, '詳細情報') then info,extInfo,genreInfo,videoInfo,audioInfo,otherInfo=v.programInfo:match('^.-\r?\n\r?\n(.-)\r?\n\r?\n詳細情報\r?\n(.-)%s*ジャンル : \r?\n(.*)\r?\n\r?\n映像 : (.*)\r?\n音声 : (.-)\r?\n\r?\n(.*)\r?\n$') else info,genreInfo,videoInfo,audioInfo,otherInfo=v.programInfo:match('^.-\r?\n\r?\n(.-)\r?\nジャンル : \r?\n(.*)\r?\n\r?\n映像 : (.*)\r?\n音声 : (.-)\r?\n\r?\n(.*)\r?\n$') end audio={multi=audioInfo and audioInfo:find('ステレオ.*ステレオ'), dual=audioInfo and audioInfo:find('デュアルモノ')} epgInfo='
\n

#### ' ..ConvertTitle(v.title)..'\n' ..FormatTimeAndDuration(v.startTime, v.durationSecond)..'' ..v.serviceName..'

\n

' ..(info or '')..'

\n
\n
\n' ..(extInfo and '
'..DecorateUri(extInfo):gsub('\r?\n', '
\n')..'
\n' or '') ..'

'..RecInfo ..(genreInfo and '
- ジャンル
  - '..genreInfo:gsub('\r?\n', '
  - ')..'
' or '') ..(videoInfo and '
- 映像
  - '..videoInfo:gsub('\r?\n', '
  - ')..'
' or '') ..(audioInfo and '
- 音声
  - '..audioInfo:gsub('\r?\n', '
  - ')..'
' or '') ..(otherInfo and '
- その他
  - '..otherInfo:gsub('\r?\n\r?\n', '\n'):gsub('\r?\n', '
  \n
  - ')..'
\n' or '') ..'

' end --検索等のリンクを生成 ct.js=(ct.js or '')..'
\n' ct.main='
\n' ..'
\n
' ..epgInfo ..(video and '
\n
\n' ..player('\n', audio, not ori) ..'
\n
\n' or '') ..(#v.errInfo>0 and '
\n
\n

    '..v.errInfo..'

\n
\n
\n' or '') ..'
\n' ..'
\n' ..'
\n' ..'\n' ..'
\n' ..'
\n' ..'
\n' ct.tab='番組詳細\n' ..(video and '再生\n' or '') ..(#v.errInfo>0 and 'エラーログ\n' or '') end ct=template(ct) mg.write(ct:Pop(Response(200,'text/html','utf-8',ct.len)..(ct.gzip and 'Content-Encoding: gzip\r\n' or '')..'\r\n'))