Also note that I am new to Plex plugin development B)
So I tracked the problem down to this bit of code (specifically the for loop labeled with the comment!)...
def ExploreChannelsCallback(sender, lineupId):<br />
lineup = GetLineupById( lineupId )<br />
if not lineup:<br />
return MessageContainer(<br />
L('Error'),<br />
"%s (%s)" % ( L('NoLineupDataFound'), lineupId )<br />
)<br />
<br />
if len(lineup.channelList) < 1:<br />
return MessageContainer(<br />
L('NoChannels'),<br />
"%s %s" % ( L('NoChannelsFoundFor'), lineup.getTitle() )<br />
)<br />
<br />
dir = MediaContainer(viewGroup="ExploreChannelList", noCache=True)<br />
<br />
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
# THE PROBLEM IS WITH THIS FOR LOOP!!!<br />
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
for channel in lineup.channelList:<br />
if not channel.isVerified():<br />
title = "%s (%s)" % ( channel.getTitle(), L('NotVerifiedState'))<br />
else:<br />
if channel.isEnabled():<br />
title = channel.getTitle()<br />
else:<br />
title = "%s (%s)" % ( channel.getTitle(), L('DisabledState'))<br />
<br />
dir.Append( Function(<br />
DirectoryItem( ExploreOptionsCallback,<br />
title,<br />
subtitle=channel.getSubtitle(),<br />
summary=channel.getSummary(),<br />
thumb=R(EXPLORE_CHANNEL_ICON),<br />
art=R(ART)<br />
),<br />
lineupId=lineup.getId(),<br />
channelId=channel.getId() ))<br />
<br />
return dir
So I added some logging to the code above (not shown) and it seems the channel list is filled with valid data, but the Media container never actually gets populated despite the "Append" calls. What is real odd is that if I break out of the loop early (I've tried up to 10 iterations), the menu is populated properly and I can go on to view the channel streams. I ran out of time, but I was going to check if there is some magic number where it fails, or if the channel it fails on is corrupt somehow (unlikely as this same code works on the previous server version)? Anyways, if I don't break out early, the menu is blank, and attempting to back out to the previous menu will kick me out of the plugin and leave it in a funky state where I can't relaunch it until I either restart the Plex server app, or run a different plugin first.
Any ideas? Is this a known problem with the Beta server? I read there is a V2 framework out and I believe this plugin is still using V1. Perhaps this is using some deprecated functionality?