예제 #1
0
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)
예제 #2
0
    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()]
예제 #3
0
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)
예제 #4
0
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
예제 #5
0
	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
예제 #6
0
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()
예제 #7
0
    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)
예제 #9
0
    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.")
예제 #10
0
    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)
예제 #11
0
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)
예제 #12
0
	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
예제 #13
0
 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]
예제 #14
0
	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
예제 #15
0
    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
예제 #16
0
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())
예제 #17
0
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)
예제 #18
0
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")
예제 #20
0
	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)
예제 #22
0
 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
예제 #23
0
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)
예제 #24
0
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()
예제 #25
0
	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;
예제 #26
0
    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]
예제 #27
0
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()
예제 #28
0
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()
예제 #29
0
 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]
예제 #30
0
 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)