-- vim:set ft=lua:
dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua')

if GetVarInt(mg.request_info.query_string,'json',0,1)==1 then
  if edcb.GetServiceList() then
    ResponseJson(SortServiceListInplace(edcb.GetServiceList()))
  else
    ResponseJson({err='EPGデータを読み込み中、または存在しません'})
  end
else
  edcb.htmlEscape=15
  a=edcb.GetServiceList()
  ct=CreateContentBuilder()
  ct:Append('<?xml version="1.0" encoding="UTF-8" ?>')
  if not a then
    ct:Append('<entry><err>EPGデータを読み込み中、または存在しません</err></entry>')
  else
    ct:Append('<entry><total>'..#a..'</total><index>0</index><count>'..#a..'</count><items>\r\n')
    for i,v in ipairs(a) do
      ct:Append('<serviceinfo><ONID>'
        ..v.onid..'</ONID><TSID>'
        ..v.tsid..'</TSID><SID>'
        ..v.sid..'</SID><service_type>'
        ..v.service_type..'</service_type><partialReceptionFlag>'
        ..(v.partialReceptionFlag and 1 or 0)..'</partialReceptionFlag><service_provider_name>'
        ..v.service_provider_name..'</service_provider_name><service_name>'
        ..v.service_name..'</service_name><network_name>'
        ..v.network_name..'</network_name><ts_name>'
        ..v.ts_name..'</ts_name><remote_control_key_id>'
        ..v.remote_control_key_id..'</remote_control_key_id></serviceinfo>\r\n')
    end
    ct:Append('</items></entry>')
  end
  ct:Finish()
  mg.write(ct:Pop(Response(200,'text/xml','utf-8',ct.len)..'\r\n'))
end
