import "pkg:/source/api/baserequest.bs" import "pkg:/source/utils/config.bs" sub init() m.top.functionName = "loadChannels" end sub sub loadChannels() results = [] sort_field = m.top.sortField if m.top.sortAscending = true sort_order = "Ascending" else sort_order = "Descending" end if params = { includeItemTypes: "LiveTvChannel", SortBy: sort_field, SortOrder: sort_order, recursive: m.top.recursive, UserId: m.global.session.user.id } ' Handle special case when getting names starting with numeral if m.top.NameStartsWith <> "" if m.top.NameStartsWith = "#" params.searchterm = "A" else params.searchterm = m.top.nameStartsWith end if end if 'Append voice search when there is text if m.top.searchTerm <> "" params.searchTerm = m.top.searchTerm end if if m.top.filter = "Favorites" params.append({ isFavorite: true }) end if url = Substitute("Users/{0}/Items/", m.global.session.user.id) resp = APIRequest(url, params) data = getJson(resp) if data.TotalRecordCount = invalid m.top.channels = results return end if for each item in data.Items channel = createObject("roSGNode", "ChannelData") channel.json = item if item.UserData <> invalid and item.UserData.isFavorite <> invalid channel.favorite = item.UserData.isFavorite if channel.favorite = true results.Unshift(channel) else results.push(channel) end if else results.push(channel) end if end for m.top.channels = results end sub