xoceunder
5 years agoRoku Guru
Help with Poster Grid does not show all the information
Help with Poster Grid does not show all the information I am using this
GetEpisodes.brs
sub init() m.top.functionName = "go" end sub sub go() content = createObject("roSGNode", "ContentNode") episode = jsonCapitulos(m.top.season) if episode <> invalid then for each item in episode seasons = content.createChild("ContentNode") seasons.id = item.id.toStr() seasons.ContentType = "4" seasons.title = item.title seasons.EpisodeNumber = item.episode_num.toStr() seasons.url = m.global.serverURL + m.global.play + item.id.toStr()+"."+item.container_extension seasons.shortdescriptionline1 = "S" + item.season.toStr() + "E" + item.episode_num.toStr() if item.info <> invalid and item.info.count() <> 0 seasons.description = item.info.plot.toStr() seasons.releaseDate = item.info.releasedate seasons.hdgridposterurl = item.info.movie_image seasons.HDBackgroundImageUrl = item.info.movie_image seasons.shortdescriptionline2 = item.info.plot.toStr() end if end for end if m.top.content = content End sub sub jsonCapitulos(season As String) As Object url = m.global.serverURL + m.global.episode + m.top.cve data = requestData(url) json = ParseJSON(data) if json <> invalid and json.episodes <> invalid then return json.episodes[season] else return {} end if End sub
Seasons.brs
sub Init() 'print "[Seasons.brs] - init" m.top.observeField("visible", "onVisibleChange") m.loading = m.top.findNode("LoadingIndicator") m.buttons = m.top.findNode("Buttons") m.playbuttons = m.top.findNode("PlayButtons") m.videoPlayer = m.top.findNode("VideoPlayer") m.poster = m.top.findNode("Cover") m.description = m.top.findNode("lblDescription") m.background = m.top.findNode("Background") m.fadeIn = m.top.findNode("fadeinAnimation") m.fadeOut = m.top.findNode("fadeoutAnimation") m.tilte = m.top.findNode("lblTitle") m.date = m.top.findNode("lblDate") m.rating = m.top.findNode("lblRating") m.episodesgrid = m.top.findNode("EpisodesGrid") m.savePositionToReg = createObject("roSGNode", "WriteVideoPosition") m.savePositionToReg.section = "SerieResume" m.seasons = createObject("roSGNode", "GetSeasons") m.seasons.observeField("content", "createSeasons") m.episodes = createObject("roSGNode", "GetEpisodes") m.episodes.observeField("content", "setEpisodes") m.videoPlayer.observeField("state", "OnVideoPlayerStateChange") m.videoPlayer.observeField("position", "savePosition") m.episodesgrid.observeField("itemSelected", "onEpisodeSelected") End sub sub createSeasons() 'print "[Seasons.brs] - createseasons" m.buttons.content = m.seasons.content m.buttons.visible = true m.loading.control = "stop" end sub sub setEpisodes() 'print "[Seasons.brs] - setepisodes"; if m.episodes.content.getChild(0) = invalid then m.buttons.visible = true m.buttons.setFocus(true) m.loading.control = "stop" else print "SetEpisodes in grid"; m.episodesgrid.content = m.episodes.content m.episodesgrid.visible = true m.episodesgrid.setFocus(true) m.loading.control = "stop" end if end sub ' set proper focus to buttons if Details opened and stops Video if Details closed Sub onVisibleChange() 'print "Seasons.brs - [onVisibleChange]" if m.top.visible m.fadeIn.control="start" m.buttons.jumpToItem = 0 m.buttons.visible = true m.buttons.setFocus(true) checkFavorite() else m.fadeOut.control="start" m.buttons.visible = false m.poster.uri="" m.background.uri="" end if End Sub ' set proper focus on buttons and stops video if return from Playback to details Sub onVideoVisibleChange() 'print "Seasons.brs - [onVideoVisibleChange]" if m.videoPlayer.visible = false and m.top.visible = true m.episodesgrid.setFocus(true) m.episodesgrid.observeField("itemSelected", "onEpisodeSelected") m.videoPlayer.control = "stop" else m.episodesgrid.unobserveField("itemSelected") end if End Sub ' event handler of Video player msg Sub OnVideoPlayerStateChange() if m.videoPlayer.state = "error" m.videoPlayer.visible = false else if m.videoPlayer.state = "playing" ' playback handling else if m.videoPlayer.state = "finished" m.videoPlayer.visible = false end if End Sub Sub onEpisodeFocused() 'print "Seasons.brs - [onEpisodeFocused]" m.videoPlayer.content = m.episodesgrid.content.getChild(m.top.episodeFocused) m.videoPlayer.content.HttpHeaders = m.headers m.videoPlayer.control = "prebuffer" End Sub ' on Button press handler Sub onItemSelected() 'print "Seasons.brs - [onItemSelected] " m.loading.control = "start" m.episodes.cve = m.top.content.id m.episodes.season = m.buttons.content.getChild(m.buttons.itemSelected).id m.episodes.control = "RUN" m.buttons.visible = false End Sub sub onEpisodeSelected() 'print "Seasons.brs - [onEpisodeSelected]" m.resume = createObject("roSGNode", "ResumeVideo") m.resume.section = "SerieResume" m.resume.cve = m.videoPlayer.content.episodeNumber m.resume.control = "RUN" m.resume.observeField("state","resume") end sub sub resume() 'print "Seasons.brs - [Resume] Seconds in reg: " ; m.resume.pos if m.resume.state = "stop" if m.resume.pos >= 60 then m.dialog = createObject("roSGNode", "Dialog") m.dialog.title = "Resume" m.dialog.optionsDialog = true minutes = int(m.resume.pos/60) seconds = int(m.resume.pos MOD 60) secondsStr = seconds.toStr() if seconds < 10 then secondsStr = "0" + seconds.toStr() resumePos = "Resume from " + minutes.tostr() + ":" + secondsStr m.dialog.buttons = [resumePos,"Start from beginning"] m.top.getScene().dialog = m.dialog m.dialog.observeField("buttonSelected","resumeSelected") else playEpisode() end if end if 'm.resume.unobserveField("pos") end sub sub resumeSelected() 'print "Seasons.brs - [ResumeSelected]" if m.dialog.buttonSelected = 0 then m.videoPlayer.seek = m.resume.pos playEpisode() else playEpisode() end if m.dialog.close = true end sub sub playEpisode() 'print "[Seasons.brs] - playEpisode" 'print "Play episode: "; m.videoPlayer.content m.videoPlayer.visible = true m.videoPlayer.setFocus(true) m.videoPlayer.control = "play" end sub sub savePosition() if int(m.videoPlayer.position) MOD 2 = 0 and m.videoPlayer.position > 10 then 'print "Seasons.brs - [savePosition] Seconds:"; m.videoPlayer.position m.savePositionToReg.cve = m.videoPlayer.content.episodeNumber m.savePositionToReg.pos = m.videoPlayer.position - 10 m.savePositionToReg.control = "RUN" end if end sub ' Content change handler Sub OnContentChange() 'print "Seasons.brs - [OnContentChange]" m.description.text = m.top.content.description m.poster.uri = m.top.content.HDPosterUrl m.background.uri = m.top.content.hdBackgroundImageUrl m.tilte.text = m.top.content.title m.date.text = m.top.content.releasedate m.rating.text = m.top.content.rating if m.seasons.cve <> m.top.content.id then m.buttons.content = invalid m.loading.control = "start" m.seasons.cve = m.top.content.id m.seasons.control = "RUN" m.buttons.visible = false end if end Sub ' Called when a key on the remote is pressed function onKeyEvent(key as String, press as Boolean) as Boolean 'print ">>> Seasons >> OnkeyEvent" result = false 'print "in Seasons.xml onKeyEvent. Key pressed: ";key;" - Press: "; press if press then if key = "back" 'print "------ [back pressed] ------" 'back from episodes to seasons if m.buttons.visible = false and m.videoplayer.visible = false and m.episodesgrid.visible = true m.episodesgrid.visible = false m.episodes.observeField("content", "setEpisodes") m.buttons.visible = true m.buttons.setFocus(true) result = true end if else if key = "up" if m.top.visible and m.buttons.visible m.buttons.jumpToItem = 0 end if end if end if 'print "Handled event: "; result return result end function