def load_ui(): global params, APP, CONFIG_WINDOW # Initialize LOG items = mc.ListItems() item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(VERSION) items.append(item) CONFIG_WINDOW.GetList(700).SetItems(items) params = APP.GetLaunchedWindowParameters() CONFIG_WINDOW.GetEdit(9001).SetText(params['client_address']) CONFIG_WINDOW.GetEdit(9002).SetText(params['client_user']) CONFIG_WINDOW.GetEdit(9003).SetText(params['client_pass']) CONFIG_WINDOW.GetControl(7000).SetVisible(True) CONFIG_WINDOW.GetControl(3000).SetVisible(False) items = mc.ListItems() if params['client_name']: auth = params['client_user'] != '' item = create_client_item(params['client_name'], params['client_address'], auth) item.SetProperty('username', params['client_user']) item.SetProperty('password', params['client_pass']) items.append(item) else: item = create_client_item('Unknown', 'localhost', False) items.append(item) CONFIG_WINDOW.GetList(200).SetItems(items)
def _list(self, gui, gsapi): try: n = self.count() self.info = str(n) + ' ' + __language__(3023) listItems = mc.ListItems() handle = pickle.dumps(self, pickle.HIGHEST_PROTOCOL) for i in range(self.count()): song = self.get(i) try: durMin = int(song.duration / 60.0) durSec = int(song.duration - durMin * 60) if durSec < 10: durStr = '(' + str(durMin) + ':0' + str(durSec) + ')' else: durStr = '(' + str(durMin) + ':' + str(durSec) + ')' except: durStr = '' if gui.useCoverArt == True: path = song.coverart if path == None: path = 'Invalid cover path: ' + str(path) print path else: path = 'default-cover.png' l1 = song.name l2 = 'By ' + song.artistName + '\n From ' + song.albumName if song.year != None: try: lYear = ' (' + str(int(song.year)) + ')' except: lYear = '' else: lYear = '' l2 = l2 + lYear path2 = 'gs_smile.png' item = { 'label': l1, 'label2': l2, 'action': 'play', 'handle': handle, 'thumbnail': path, 'icon': path2, 'state': 'song' } listItem = createItem(item) listItems.append(listItem) gui.setInfoLabel(str(self.count()) + ' Songs') return [self, listItems] except: xbmc.log('GrooveShark Exception (listSongs): ' + str(sys.exc_info()[0])) traceback.print_exc() return [self, mc.ListItems()]
def standings(league): try: mc.ShowDialogWait() if (league == 'national'): league = 0 elif (league == 'american'): league = 1 data = getJson( 'http://mlb.mlb.com/lookup/json/named.standings_all_league_repeater.bam?sit_code=%27h0%27&league_id=104&league_id=103&season=2010' ) data = data.get('standings_all_league_repeater').get( 'standings_all')[league] stand = data.get('queryResults').get('row') east = mc.ListItems() west = mc.ListItems() central = mc.ListItems() for team in stand: item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(str(team.get('team_short'))) item.SetThumbnail( ('http://mlb.mlb.com/images/logos/200x200/200x200_%s.png' % str(team.get('team_abbrev')))) item.SetProperty('games-back', str(team.get('gb'))) item.SetProperty('wild-card', str(team.get('wild_card'))) item.SetProperty('elim-wildcard', str(team.get('elim_wildcard'))) details = ((( ((((((((((((('Steak (' + team.get('streak')) + '), Home (') + team.get('home')) + '), Away (') + team.get('away')) + '), Vs Division (') + team.get('vs_division')) + '), Last Ten (') + team.get('last_ten')) + ')[CR]Winning Percentage (') + team.get('pct')) + '%), Wildcard (') + team.get('wild_card')) + '), Elimination Wildcard (') + team.get('elim_wildcard')) + ')') item.SetDescription(str(details)) division = str(team.get('division')) if (('East' in division) and east.append(item)): pass mc.GetActiveWindow().GetList(3002).SetItems(west) mc.GetActiveWindow().GetList(3003).SetItems(central) mc.GetActiveWindow().GetList(3004).SetItems(east) mc.HideDialogWait() except Exception, e: return raiseError( message= 'There was a problem accessing standings. Please try again later.', log='league', error=e)
def createTVList(update=False): global tv_list, config, ipaddress # create new list itemList = mc.ListItems() epg_list = loadTVEpg(True) # iterate services for service in epg_list: item = mc.ListItem(mc.ListItem.MEDIA_VIDEO_OTHER) item.SetPath("http://" + ipaddress + ":8001/" + service['reference']) label = service['servicename'] try: label += " - " + datetime.fromtimestamp(float( service['start'])).strftime("%H:%M") label += " " + service['title'] item.SetDescription( service['description'] + ' ' + service['descriptionextended'], False) except ValueError: print "DREAMBOXEE: no descriptin aviable for: " + service[ 'servicename'] item.SetLabel(label) itemList.append(item) tv_list = itemList return tv_list
def getSharedLibraries(self): libraryListItems = mc.ListItems() for machineID in self.sharedServers: server = self.sharedServers[machineID] windowInformation = server.getListItems(server.getLibraryUrl()) for childListItem in windowInformation.childListItems: libraryListItems.append(childListItem) return libraryListItems
def getFeaturedMixes(count): mc.ShowDialogWait() featured_url = "http://8tracks.com/mixes.json?api_key=a07ee2f7cc1577f749ed10d2c796fc52515243cc&api_version=2&per_page=%s&page=1" % count fd = urllib.urlopen(featured_url) mix_sets = simplejson.loads(fd.read()) listItems = mc.ListItems() for mix in mix_sets["mixes"]: item = mc.ListItem(mc.ListItem.MEDIA_AUDIO_OTHER) item.SetArtist(str(mix["user"]["login"])) year = mix['first_published_at'][1:4] month = mix['first_published_at'][6:7] day=mix['first_published_at'][9:10] item.SetDate(int(year), int(month), int(day)) name = mix["name"].replace(u'\xbd', '') item.SetLabel(str(name)) item.SetThumbnail(str(mix['cover_urls']['original'])) item.SetIcon(str(mix['cover_urls']['sq100'])) # get the real track url, so default actions like play would work # this should not be here! trackD = urllib.urlopen("http://8tracks.com/sets/460486803/play.json?mix_id=%s&api_key=a07ee2f7cc1577f749ed10d2c796fc52515243cc&api_version=2" % mix["id"]) trackInformation = simplejson.loads(trackD.read()) item.SetPath(str(trackInformation['set']['track']['url'])) item.SetProperty("id", str(mix['id'])) listItems.append(item) mc.GetWindow(14000).GetList(201).SetItems(listItems) mc.GetWindow(14000).GetList(201).Refresh() mc.GetWindow(14000).GetList(201).SetFocusedItem(0) mc.HideDialogWait()
def sort_torrents(self, sort_type): items_dict = {} if sort_type == "alphabetical": for item in TORRENT_LIST.GetItems(): items_dict[item.GetLabel()] = item labels = items_dict.keys() labels.sort() ordered_list = [] for label in labels: ordered_list.append(items_dict[label]) elif sort_type == "status": down = [] seed = [] pause = [] for item in TORRENT_LIST.GetItems(): if item.GetProperty('transfer_status') == 'Downloading': down.append(item) if item.GetProperty('transfer_status') == 'Seeding': seed.append(item) if item.GetProperty('transfer_status') == 'Paused': pause.append(item) ordered_list = down + seed + pause WINDOW.GetLabel(104).SetLabel(sort_type.upper()) print ordered_list list_items = mc.ListItems() for item in ordered_list: list_items.append(item) TORRENT_LIST.SetItems(list_items)
def OnShowVideoResumeDialog(self, playItem, referenceItem, isPlaylist): self.playItem = playItem self.isPlaylistActive = isPlaylist timeToResumeInSeconds = 0 if referenceItem.GetProperty("timeToResume"): timeToResumeInSeconds = float( referenceItem.GetProperty("timeToResume")) mc.ActivateWindow(self.WINDOW_ID) actionItems = mc.ListItems() # first (default) iyem represents "continue from ..." actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) #timeStr = time.strftime("%H:%M:%S", timeToResumeInSeconds) #timeStr = datetime.timedelta(seconds=timeToResumeInSeconds) actionItem.SetLabel( mc.GetLocalizedString(12022) % self.GetInHMS(timeToResumeInSeconds)) actionItems.append(actionItem) # second item is "start from the beginning" actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) actionItem.SetLabel(mc.GetLocalizedString(12021)) actionItems.append(actionItem) self.GetList().SetItems(actionItems)
def update_list(self, firstrun=False): ''' Main function for updating the torrent list. Usually run in a loop. Gets torrents, makes ListItems out of them and populates the list. ''' # Schedule the next update timer = threading.Timer(REFRESH_EVERY, timer_update, [self]) timer.start() t1 = time.time() # Set true when the list needs to be refresh because of added torrents self.refresh_list = False torrents = self.get_torrents() # On the first run, create all torrent items. if firstrun: items = mc.ListItems() for torrent in torrents: item = self.create_item_from_torrent(torrent) items.append(item) # Update the global status items. status = self.get_status() try: WINDOW.GetControl(2000).SetVisible(True) WINDOW.GetLabel(2001).SetLabel(status['global_download']) WINDOW.GetLabel(2002).SetLabel(status['global_upload']) except Exception, e: raise Exception("Killing the TorrentUI thread.")
def UpdateNavigationContainerForLoadedPages(self, newCurrentNavItem, newNextNavItem, pushNavItem): #rebuild nav list for new items navList = mc.ListItems() for it in self.GetNavigationContainer().GetItems(): navList.append(it) # remove previosly stored next if any - it will be replaced by input new current item if len(navList) > 0: navList.pop() if pushNavItem: #moving to next navList.append(newCurrentNavItem) if newNextNavItem: navList.append(newNextNavItem) else: #moving to back - add next in case if list has inly one item that represents current item if len(navList) < 2 and newNextNavItem: navList.append(newNextNavItem) self.GetNavigationContainer().SetItems(navList) if newNextNavItem: indexToFocus = len(navList) - 2 else: indexToFocus = len(navList) - 1 if indexToFocus < 0: indexToFocus = 0 mc.LogInfo("focus index item: %s nav list len: %s" % (str(indexToFocus), str(len(navList)))) self.GetNavigationContainer().SetFocusedItem(indexToFocus)
def favoriteTeams(): try: mc.ShowDialogWait() data = getJson( 'http://mlb.mlb.com/lookup/json/named.team_all.bam?sport_code=%27mlb%27&active_sw=%27Y%27&all_star_sw=%27N%27' ) data = data.get('team_all').get('queryResults').get('row') teamList = mc.ListItems() for team in data: item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(str(team.get('name_display_full'))) item.SetThumbnail( ('http://mlb.mlb.com/images/logos/200x200/200x200_%s.png' % str(team.get('name_abbrev')))) item.SetProperty('team-id', str(team.get('team_id'))) item.SetProperty('team-abbrev', str(team.get('team_abbrev'))) teamList.append(item) favList = [] for ( index, team, ) in enumerate(teamList): if ((team.GetProperty('team-id') in favList) and teamList.SetSelected(index, True)): pass mc.HideDialogWait() return teamList except Exception, e: raiseError(log='favoriteteams', error=e)
def getMyOnDeck(self): libraryListItems = mc.ListItems() for machineID in self.myServers: server = self.myServers[machineID] windowInformation = server.getListItems(server.getOnDeckUrl()) for childListItem in windowInformation.childListItems: libraryListItems.append(childListItem) return libraryListItems
def _list(self, gui, gsapi): if self.getPlaylists(gsapi) == False: gui.notification(__language__(3027)) return [None, None] n = self.count() self.info = str(n) + ' ' + __language__(3042) listItems = mc.ListItems() playobj = PlaylistHandle(self) handle = pickle.dumps(playobj, pickle.HIGHEST_PROTOCOL) for i in range(self.count()): playlist = self.get(i) if playlist.about == None: l2 = '' else: l2 = str(playlist.about) item = { 'label': playlist.name, 'label2': l2, 'action': 'down', 'handle': handle, 'thumbnail': 'default-cover.png', 'icon': 'default-cover.png', 'state': 'playlist' } listItem = createItem(item) listItems.append(listItem) return [self, listItems]
def getPhotoList(self, listItem): #photoUrl = self.getUrl(self.getRootUrl(), fullUrl) url = self.getUrl(self.getRootUrl(), listItem.GetProperty('parentKey')) data = mc.Http().Get(url+'/children') if data: list = mc.ListItems() tree = ElementTree.fromstring(data) for photoNode in tree.findall("Photo"): title = photoNode.attrib.get("title", "Plex Photo") key = photoNode.attrib.get('key') for part in photoNode.findall("Media/Part"): li = mc.ListItem(mc.ListItem.MEDIA_PICTURE) li.SetProperty('key',key) li.SetTitle(title) li.SetLabel(title) li.SetPath(self.getUrl(self.getRootUrl(), key)) li.SetProperty('rotation','') li.SetProperty('zoom','') #Resize images li.SetImage(0, self.getThumbUrl(part.attrib.get('key'),1280,1280)) #li.SetImage(0, self.getUrl(self.getRootUrl(), part.attrib.get('key'))) list.append(li) return list else: return None
def getListItems(self, fullUrl): data = mc.Http().Get(fullUrl) if data: tree = ElementTree.fromstring(data) titleListItem = self._createListItem(tree, fullUrl) titleListItem.SetProperty("plexeeview", "grid") titleListItems = mc.ListItems() titleListItems.append(titleListItem) childListItems = mc.ListItems() for child in tree: childListItem = self._createListItem(child, fullUrl) childListItems.append(childListItem) return WindowInformation(titleListItems, childListItems) else: return None
def loadSecondaryItems(): global secondaryListItems if secondaryListItems: #mc.ShowDialogNotification("has secondary") mc.GetActiveWindow().GetList(200).SetItems(secondaryListItems) else: #mc.ShowDialogNotification("no secondary") mc.GetActiveWidnow().GetList(200).SetItems(mc.ListItems())
def EmptyEpisode(): targetcontrol = 52 targetwindow = 14000 list = mc.GetWindow(targetwindow).GetList(targetcontrol) list_items = mc.ListItems() list_item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) list_item.SetLabel('') list_item.SetPath('') list_items.append(list_item) list.SetItems(list_items)
def loadSports(): mc.ShowDialogWait() sportsList = mc.GetActiveWindow().GetList(9000) sportsItems = mc.ListItems() for sport in SPORTS: sportItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) sportItem.SetLabel(sport.get('title', 'Unknown')) sportItem.SetProperty("id", str(sport.get('id', -1))) sportsItems.append(sportItem) sportsList.SetItems(sportsItems) mc.HideDialogWait()
def OnDialogLoad(self): # external caller is responsible to prepare shared boxee video playlist # before show this dialog videoPlaylist = mc.PlayList(mc.PlayList.PLAYLIST_VIDEO) videos = mc.ListItems() for i in range(videoPlaylist.Size()): playlistItem = videoPlaylist.GetItem(i) item = mc.ListItem(mc.ListItem.MEDIA_VIDEO_EPISODE) item.SetLabel(playlistItem.GetLabel()) item.SetDescription(playlistItem.GetDescription()) item.SetPath(playlistItem.GetPath()) videos.append(item) self.GetPlaylistList().SetItems(videos) index = exPlayer.GetPlayer().GetLastViewedEpisodeIndexInPlaylist() self.GetPlaylistList().SetFocusedItem(index) self.GetPlaylistList().SetSelected(index, True) dialogTitle = mc.GetLocalizedString(559) + ": " + videoPlaylist.GetItem(0).GetTitle() self.GetDialogTitleLabel().SetLabel(dialogTitle) mc.LogInfo("Playlist thumbnail: %s" % videoPlaylist.GetItem(0).GetThumbnail()) self.GetFineArtImage().SetTexture(videoPlaylist.GetItem(0).GetThumbnail()) # fill up actions buttons list actionItems = mc.ListItems() actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) # localize with 'more info' # actionItem.SetLabel(mc.GetLocalizedString(53710)) actionItem.SetLabel(exlocalizer.GetSharedLocalizer().localizedString('Info')) actionItem.SetThumbnail('action_more.png') actionItems.append(actionItem) actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) # localize with 'add to favorites' #actionItem.SetLabel(mc.GetLocalizedString(53729)) actionItem.SetLabel(exlocalizer.GetSharedLocalizer().localizedString('Add to Favorites')) actionItem.SetThumbnail('action_queue_add.png') actionItems.append(actionItem) self.GetActionsList().SetItems(actionItems) mc.LogInfo("Select playlist window is loaded")
def getListItems(self, fullUrl): data = mc.Http().Get(fullUrl) if data: tree = ElementTree.fromstring(data) titleListItem = self._createListItem(tree, fullUrl) titleListItem.SetProperty("plexeeview", "grid") #Set title item art/thumb to display if needed titleListItem.SetProperty("art", tree.attrib.get("art","")) titleListItem.SetProperty("thumb", tree.attrib.get("thumb","")) titleListItems = mc.ListItems() titleListItems.append(titleListItem) childListItems = mc.ListItems() for child in tree: childListItem = self._createListItem(child, fullUrl) childListItems.append(childListItem) return WindowInformation(titleListItems, childListItems) else: return None
def OnDialogLoad(self): items = mc.ListItems() items.append(self.playItem) self.GetItemList().SetItems(items) self.GetItemList().SetFocusedItem(0) # fill up actions buttons list actionItems = mc.ListItems() actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) # localize with 'add to favorites' #actionItem.SetLabel(mc.GetLocalizedString(14086)) actionItem.SetLabel(exlocalizer.GetSharedLocalizer().localizedString('Playback')) actionItem.SetThumbnail('action_play.png') actionItems.append(actionItem) actionItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) # localize with 'add to favorites' actionItem.SetLabel(exlocalizer.GetSharedLocalizer().localizedString('Add to Favorites')) actionItem.SetThumbnail('action_queue_add.png') actionItems.append(actionItem) self.GetActionsList().SetItems(actionItems)
def BuildPanelItemsList(self, pagesDict): listItems = mc.ListItems() for page in pagesDict["pages"]: item = mc.ListItem(mc.ListItem.MEDIA_VIDEO_OTHER) item.SetLabel(page["name"]) item.SetPath(page["path"]) item.SetThumbnail(page["image"]) if page.has_key("isSearch"): item.SetProperty("isSearch", "true") if pagesDict.has_key("url"): item.SetProperty("panelurl", pagesDict["url"]) listItems.append(item) return listItems
def loadFavorites(): try: mc.ShowDialogWait() mc.GetActiveWindow().PushState() if isLoggedIn(): response = callService('teams') data = json.loads(response) data = data.get('teams') division = { '200': mc.ListItems(), '201': mc.ListItems(), '202': mc.ListItems(), '203': mc.ListItems(), '204': mc.ListItems(), '205': mc.ListItems() } for team in data: item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(str(team.get('title'))) item.SetThumbnail(str(team.get('thumb'))) item.SetProperty('team-id', str(team.get('team-id'))) item.SetProperty('team-abbrev', str(team.get('team-abbrev'))) item.SetProperty('team-leauge', str(team.get('team-leauge'))) item.SetProperty('team-division', str(team.get('team-division'))) item.SetProperty('team-fav', str(team.get('team-fav'))) div = str(team.get('team-division')) division[div].append(item) for div in division: mc.GetActiveWindow().GetList(int(div)).SetItems(division[div]) list = mc.GetActiveWindow().GetList(int(div)) for ( i, v, ) in enumerate(list.GetItems()): if ((v.GetProperty('team-fav') == '1') and list.SetSelected(i, True)): pass mc.GetActiveWindow().GetControl(3000).SetVisible(True) mc.GetActiveWindow().GetList(200).SetFocusedItem(0) mc.GetActiveWindow().GetControl(200).SetFocus() mc.GetActiveWindow().GetList(200).SetFocusedItem(0) else: return raiseError( 'You must be logged in to access your favorite teams!') mc.HideDialogWait() except Exception, e: mc.GetActiveWindow().PopState() return raiseError( 'An error occured while accessing your favorite team settings. Are you logged in?', log='loadfavorites', error=e)
def categories(): mc.ShowDialogWait() list = mc.ListItems() categories = playkanalerna.getCategories() for category in categories: item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(str(category['name'].encode('utf-8', 'ignore'))) item.SetPath(str(category['url'].encode('utf-8', 'ignore'))) list.append(item) mc.ActivateWindow(14000) window = mc.GetWindow(14000) window.GetList(51).SetItems(list) mc.HideDialogWait()
def getSubtitles(self, fullUrl): """ Return list of subtitles Jinxo: Only the default - and any SRT files are supported at present """ subItems = mc.ListItems() subItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) subItem.SetLabel("None") subItem.SetPath("") subItems.append(subItem) videoUrl = self.getUrl(self.getRootUrl(), fullUrl) data = mc.Http().Get(videoUrl) if data: tree = ElementTree.fromstring(data) videoNode = tree[0] foundDefault = False for stream in videoNode.findall("Media/Part/Stream"): if stream.attrib.get("streamType","0") != "3": continue subItem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) language = stream.attrib.get("language","Unknown") format = stream.attrib.get("format","?") path = stream.attrib.get("key","") source = "File" if path != "": subItem.SetPath(self.getUrl(self.getRootUrl(), path)) else: #Jinxo: Only default supported at the moment, as I haven't been able to switch to another.... source = "Embedded" default = stream.attrib.get("default","") if default == "": continue if foundDefault: continue foundDefault = True #Jinxo: The value doesn't matter - just enter something subItem.SetPath("1"); label = language + " (" + format.upper() + ":" + source + ")" subItem.SetLabel(label.encode('utf-8')) subItems.append(subItem) return subItems;
def _list(self, gui, gsapi): if self.queryText == None: return search = self handle = pickle.dumps( SearchHandle(self.songs, self.artists, self.albums)) dict = [\ {'label':__language__(3023), 'label2':str(search.countSongs()) + ' ' + __language__(3026), 'thumbnail':'gs_song.png', 'action':'down', 'handle':handle, 'state':'search'},\ {'label':__language__(3024), 'label2':str(search.countArtists()) + ' ' + __language__(3026), 'thumbnail':'gs_artist.png', 'action':'down', 'handle':handle, 'state':'search'},\ {'label':__language__(3025), 'label2':str(search.countAlbums()) + ' ' + __language__(3026), 'thumbnail':'gs_album.png', 'action':'down', 'handle':handle, 'state':'search'}\ #{'label':__language__(3042), 'label2':str(0) + ' ' + __language__(3026), 'thumbnail':'gs_playlist.png', 'action':'down', 'handle':handle, 'state':'search'} ] listItems = mc.ListItems() for item in dict: listItem = createItem(item) listItems.append(listItem) return [self, listItems]
def setLeftMenu(): cnt = __window__.GetControl(500) cnt.SetEnabled(True) dict = [\ {'label':__language__(106), 'action':'search', 'icon':'gs_search.png'},\ {'label':__language__(107), 'action':'playing', 'icon':'gs_playlist.png'},\ {'label':__language__(117), 'action':'playlist', 'icon':'gs_song.png'},\ {'label':__language__(109), 'action':'settings', 'icon':'gs_wrench.png'},\ {'label':__language__(121), 'action':'exit', 'icon':'gs_exit.png'}\ ] listItems = mc.ListItems() for item in dict: listItem = createItem(item) listItems.append(listItem) __window__.GetLabel(4100).SetLabel('') __window__.GetImage(410).SetTexture('gs_home.png') __window__.GetList(500).SetItems(listItems) cnt.SetFocus()
def programs(url, category): mc.ShowDialogWait() list = mc.ListItems() programs = playkanalerna.getPrograms(url) for program in programs: item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(str(program['name'].encode('utf-8', 'ignore'))) item.SetPath(str(program['url'].encode('utf-8', 'ignore'))) list.append(item) mc.ActivateWindow(14001) window = mc.GetWindow(14001) window.GetList(51).SetItems(list) window.GetLabel(30).SetLabel(category) mc.HideDialogWait()
def _list(self, gui, gsapi): n = self.count() self.info = str(n) + ' ' + __language__(3024) handle = pickle.dumps(self, pickle.HIGHEST_PROTOCOL) listItems = mc.ListItems() for i in range(self.count()): artist = self.get(i) item = { 'label': artist.name, 'action': 'down', 'handle': handle, 'thumbnail': 'default-cover.png', 'state': 'artist' } listItem = createItem(item) listItems.append(listItem) gui.setInfoLabel(str(self.count()) + ' Artists') return [self, listItems]
def RunPlayerForItemsFromDict(self, sourcePageItem, playDict): exPlayitemsList = playDict["playitems"] if 1 == len(exPlayitemsList): exItem = exPlayitemsList[0] playItem = self.GetPlayableItemForItemInDict(exItem, playDict) exPlayer.GetPlayer().PlayItemWithMenu(playItem, sourcePageItem) elif 2 == len(exPlayitemsList) and self.DoesPlaylistContainTrailer( exPlayitemsList): exItem = self.GetFullMovieItemFromList(exPlayitemsList) playItem = self.GetPlayableItemForItemInDict(exItem, playDict) exPlayer.GetPlayer().PlayItemWithMenu(playItem, sourcePageItem) else: eposodesList = mc.ListItems() for theItem in exPlayitemsList: playItem = self.GetPlayableItemForItemInDict(theItem, playDict) playItem.SetLabel(theItem["name"]) eposodesList.append(playItem) exPlayer.GetPlayer().PlayEpisodesWithMenu(sourcePageItem, eposodesList)