-- vim:set ft=lua: dofile(mg.script_name:gsub('[^\\/]*$','')..'epg.lua') show=mg.get_var(mg.request_info.query_string,'show') tab=GetVarInt(mg.request_info.query_string,'tab',0,#NetworkIndex()) or 0 date=GetVarInt(mg.request_info.query_string,'date',-10000,1000) or 0 hour=GetVarInt(mg.request_info.query_string,'hour',-1,27) or -1 --hour=-1で現在時刻-MARGIN_HOUR時間を基準 interval=GetVarInt(mg.request_info.query_string,'interval',0,100) or DEF_interval CH_COUNT=GetVarInt(mg.request_info.query_string,'chcount') or DEF_CH_COUNT pageIndex=GetVarInt(mg.request_info.query_string,'page',0,100000) or 0 --UTC+9の今日の始まりの日付。現在時刻が深夜4時までは前日になることに注意 baseDate=math.floor((utc9Now-4*3600)/24/3600) if date==0 then m={(mg.get_var(mg.request_info.query_string,'date') or ''):match('^(%d%d%d%d)%-(%d?%d)%-(%d?%d)$')} if #m==3 then date=math.floor(TimeWithZone({year=m[1],month=m[2],day=m[3]})/24/3600)-baseDate end end Hour=hour<0 and math.floor(((utc9Now%(24*3600))/3600)-MARGIN_HOUR)%24 or hour if Hour<4-(hour<0 and MARGIN_HOUR or 0) then Hour=Hour+24 end pageDate=baseDate+date pageTime=(pageDate*24+Hour)*3600 Date=os.date('!*t', pageDate*24*3600) NOW=pageTimediv>div:first-child").each(function(){'..(date==0 and 'end($(this), true);});jump();' or 'end($(this));});')..'setInterval("line()", 1000);});' or ''),(NOW and pageTime+(interval-9)*3600 or false)), menu=epgMenuTemplate(true), progres=true, macro=sidePanel, searchlinks=true } ct.subheader='
\n' ..'
\n' ..'\n' ..'\n' table.insert(main, '\n\n') end ct.subheader=ct.subheader ..'\n' ..'\n\n' ct.side='\n' ..'\n' ..'\n' ..'\n' ..'\n' ..'\n
\n' table.insert(main, '
\n' ..(sidePanel and sidePanelTemplate() or '') ..'
' ..'
\n
\n'..table.concat(Head)..'
\n' ..'
\n' ..'
\n') for i=Hour,Hour+interval-1 do j=i%24 d=os.date('!*t', ((pageDate*24)+i)*3600) table.insert(main, '
'..(j==4 and Date.day~=d.day and d.day..'日' or '')..(j<4 and j+24 or j)..'時
\n') end ct.main=table.concat(main)..(NOW and '
' or '') ..'
\n' ..table.concat(ctt) ..'
\n
\n' ..'
\n' ..'\n' ..'\n' ..'\n' ..'
\n' 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'))