-- vim:set ft=lua:
dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua')
if GetVarInt(mg.request_info.query_string,'json',0,1)==1 then
  ResponseJson(edcb.GetTunerReserveAll())
else
  edcb.htmlEscape=15
  a=edcb.GetTunerReserveAll()
  ct=CreateContentBuilder()
  ct:Append('<?xml version="1.0" encoding="UTF-8" ?><entry><total>'..#a..'</total><index>0</index><count>'..#a..'</count><items>\r\n')
  for i,v in ipairs(a) do
    ct:Append('<tuner><total>'
      ..#v.reserveList..'</total><tunerID>'
      ..v.tunerID..'</tunerID><tunerName>'
      ..v.tunerName..'</tunerName><reserveList>')
    for j,w in ipairs(v.reserveList) do
      r=edcb.GetReserveData(w)
      if r then
        size=GetPredictionSize(r)
        ct:Append('<reserveinfo><ID>'
          ..r.reserveID..'</ID><title>'
          ..r.title..'</title><startDate>'
          ..string.format('%d/%02d/%02d</startDate><startTime>%02d:%02d:%02d</startTime><startDayOfWeek>',
                          r.startTime.year, r.startTime.month, r.startTime.day, r.startTime.hour, r.startTime.min, r.startTime.sec)
          ..(r.startTime.wday-1)..'</startDayOfWeek><duration>'
          ..r.durationSecond..'</duration><service_name>'
          ..r.stationName..'</service_name><ONID>'
          ..r.onid..'</ONID><TSID>'
          ..r.tsid..'</TSID><SID>'
          ..r.sid..'</SID><eventID>'
          ..r.eid..'</eventID><comment>'
          ..r.comment..'</comment><overlapMode>'
          ..r.overlapMode..'</overlapMode><size>'
          ..(size and ConvertSize(size,1) or '-')..'</size>'
          ..XmlRecSetting(r.recSetting)
          ..'</reserveinfo>\r\n')
      end
    end
    ct:Append('</reserveList></tuner>')
  end
  ct:Append('</items></entry>')
  ct:Finish()
  mg.write(ct:Pop(Response(200,'text/xml','utf-8',ct.len)..'\r\n'))
end
