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