components_liveTv_LoadSheduleTask.bs

import "pkg:/source/api/baserequest.bs"
import "pkg:/source/data/JellyfinDataTransformer.bs"
import "pkg:/source/utils/config.bs"
import "pkg:/source/utils/misc.bs"

sub init()
  m.top.functionName = "loadSchedule"
end sub

sub loadSchedule()

  results = []

  params = {
    UserId: m.global.user.id,
    SortBy: "startDate",
    EnableImages: false,
    EnableTotalRecordCount: false,
    EnableUserData: false,
    channelIds: m.top.channelIds,
    MaxStartDate: m.top.endTime,
    MinEndDate: m.top.startTime
  }

  url = "LiveTv/Programs"

  resp = APIRequest(url)
  data = postJson(resp, FormatJson(params))

  if not isValid(data)
    m.top.schedule = results
    return
  end if

  results = []

  transformer = JellyfinDataTransformer()
  for each item in data.Items
    node = transformer.transformBaseItem(item)
    ' Set hdSmallIconUrl for TimeGrid recording indicator (ContentNode built-in read by Roku TimeGrid)
    if isValidAndNotEmpty(node.timerId)
      node.hdsmalliconurl = "pkg:/images/red.png"
    else
      node.hdsmalliconurl = ""
    end if
    results.push(node)
  end for


  m.top.schedule = results

end sub