jf-roku/components/ItemGrid/LoadItemsTask2.brs

153 lines
5.3 KiB
Plaintext
Raw Normal View History

sub init()
2021-07-09 20:08:32 +00:00
m.top.functionName = "loadItems"
m.top.limit = 60
usersettingLimit = get_user_setting("itemgrid.Limit")
if usersettingLimit <> invalid
m.top.limit = usersettingLimit
end if
end sub
sub loadItems()
2021-07-09 20:08:32 +00:00
results = []
sort_field = m.top.sortField
if m.top.sortAscending = true
sort_order = "Ascending"
else
2021-07-09 20:08:32 +00:00
sort_order = "Descending"
end if
params = {
limit: m.top.limit,
StartIndex: m.top.startIndex,
parentid: m.top.itemId,
SortBy: sort_field,
SortOrder: sort_order,
recursive: m.top.recursive,
Fields: "Overview",
StudioIds: m.top.studioIds,
genreIds: m.top.genreIds
2021-07-09 20:08:32 +00:00
}
2022-04-29 07:03:01 +00:00
' Handle special case when getting names starting with numeral
if m.top.NameStartsWith <> ""
if m.top.NameStartsWith = "#"
if m.top.ItemType = "LiveTV" or m.top.ItemType = "TvChannel"
params.searchterm = "A"
params.append({ parentid: " " })
else
params.NameLessThan = "A"
end if
2022-04-29 07:03:01 +00:00
else
if m.top.ItemType = "LiveTV" or m.top.ItemType = "TvChannel"
params.searchterm = m.top.nameStartsWith
params.append({ parentid: " " })
else
params.NameStartsWith = m.top.nameStartsWith
end if
2022-04-29 07:03:01 +00:00
end if
end if
2022-12-06 19:56:21 +00:00
'reset data
if m.top.searchTerm = tr("all")
params.searchTerm = " "
else if m.top.searchTerm <> ""
params.searchTerm = m.top.searchTerm
end if
2021-07-09 20:08:32 +00:00
filter = m.top.filter
if filter = "All" or filter = "all"
' do nothing
else if filter = "Favorites"
params.append({ Filters: "IsFavorite" })
2021-08-01 08:49:08 +00:00
params.append({ isFavorite: true })
end if
2021-07-09 20:08:32 +00:00
if m.top.ItemType <> ""
params.append({ IncludeItemTypes: m.top.ItemType })
end if
2021-07-09 20:08:32 +00:00
if m.top.ItemType = "LiveTV"
url = "LiveTv/Channels"
2022-05-14 10:13:28 +00:00
params.append({ UserId: get_setting("active_user") })
else if m.top.view = "Networks"
url = "Studios"
params.append({ UserId: get_setting("active_user") })
else if m.top.view = "Genres"
url = "Genres"
params.append({ UserId: get_setting("active_user") })
2022-09-27 01:26:17 +00:00
else if m.top.ItemType = "MusicArtist"
url = "Artists"
params.append({
UserId: get_setting("active_user")
})
params.IncludeItemTypes = ""
2022-10-02 18:23:42 +00:00
else if m.top.ItemType = "MusicAlbum"
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
params.append({ ImageTypeLimit: 1 })
params.append({ EnableImageTypes: "Primary,Backdrop,Banner,Thumb" })
2021-07-09 20:08:32 +00:00
else
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
end if
resp = APIRequest(url, params)
2022-05-21 15:45:38 +00:00
data = getJson(resp)
if data <> invalid
if data.TotalRecordCount <> invalid then m.top.totalRecordCount = data.TotalRecordCount
for each item in data.Items
tmp = invalid
2022-09-21 19:36:38 +00:00
if item.Type = "Movie" or item.Type = "MusicVideo"
tmp = CreateObject("roSGNode", "MovieData")
else if item.Type = "Series"
tmp = CreateObject("roSGNode", "SeriesData")
else if item.Type = "BoxSet" or item.Type = "ManualPlaylistsFolder"
tmp = CreateObject("roSGNode", "CollectionData")
else if item.Type = "TvChannel"
tmp = CreateObject("roSGNode", "ChannelData")
else if item.Type = "Folder" or item.Type = "ChannelFolderItem" or item.Type = "CollectionFolder"
tmp = CreateObject("roSGNode", "FolderData")
else if item.Type = "Video"
tmp = CreateObject("roSGNode", "VideoData")
2022-05-22 22:20:34 +00:00
else if item.Type = "Photo"
tmp = CreateObject("roSGNode", "PhotoData")
else if item.type = "PhotoAlbum"
tmp = CreateObject("roSGNode", "FolderData")
else if item.type = "Episode"
tmp = CreateObject("roSGNode", "TVEpisode")
else if item.Type = "Genre"
tmp = CreateObject("roSGNode", "FolderData")
else if item.Type = "Studio"
tmp = CreateObject("roSGNode", "FolderData")
2022-09-27 01:26:17 +00:00
else if item.Type = "MusicAlbum"
tmp = CreateObject("roSGNode", "MusicAlbumData")
2022-10-02 18:23:42 +00:00
tmp.type = "MusicAlbum"
if api_API().items.headimageurlbyname(item.id, "primary")
tmp.posterURL = ImageURL(item.id, "Primary")
else
tmp.posterURL = ImageURL(item.id, "backdrop")
end if
2022-09-27 01:26:17 +00:00
else if item.Type = "MusicArtist"
2022-05-14 02:35:50 +00:00
tmp = CreateObject("roSGNode", "MusicArtistData")
else if item.Type = "Audio"
tmp = CreateObject("roSGNode", "MusicSongData")
else
print "[LoadItems] Unknown Type: " item.Type
end if
if tmp <> invalid
tmp.parentFolder = m.top.itemId
tmp.json = item
2022-05-14 10:13:28 +00:00
if item.UserData <> invalid and item.UserData.isFavorite <> invalid
tmp.favorite = item.UserData.isFavorite
end if
results.push(tmp)
end if
end for
end if
2021-07-09 20:08:32 +00:00
m.top.content = results
2022-05-30 12:57:40 +00:00
end sub