def makeListItem(self, replaceItems=False): colorItem = getSetting('item_default_color') colorPl = getSetting('item_section_color') label = self.get_label() image = self.get_image() owner = self.get_owner() url = self.make_url() if not self.is_my_playlist: label = '%s - %s' % (color(colorItem,owner), label) if self.b_is_current: label = '-o] %s [o-' % (color(colorPl, label)) #label = color(colorPl, label) item = xbmcgui.ListItem(label, owner, image, image, url) if not item: warn(self, "Error: Cannot make xbmc list item") return None item.setPath(url) ctxMenu = contextMenu() self.attach_context_menu(item, ctxMenu) item.addContextMenuItems(ctxMenu.getTuples(), replaceItems) return item
def getTuples(self): menuItems = [] def sectionSort(key): return self.data[key]['pos'] def itemSort(item): return item['pos'] for section in sorted(self.data, key=sectionSort): colorItem = self.color_section data = self.data[section] if 'color' in data and data['color']: colorItem = data['color'] label = self.format_section % (color(colorItem, data['label'])) #menuItems.append((label, data['cmd'])) for item in sorted(data['childs'], key=itemSort): colorItem = self.color_default if 'color' in item and item['color']: colorItem = item['color'] label = '%s' % (color(colorItem, item['label'])) menuItems.append((label, item['cmd'])) return menuItems
def gui_remove(self, playlist_id=None): if not playlist_id: playlist_id = self.nid if not playlist_id: notifyH(dialogHeading, 'Invalid playlist %s' % (str(playlist_id))) return False # import xbmcgui # @UnresolvedImport # import xbmc # @UnresolvedImport # cid = self.get_current_playlist() login = getSetting('username') offset = 0 limit = getSetting('pagination_limit') data = api.get('/playlist/get', playlist_id=playlist_id, limit=limit, offset=offset) name = '' if 'name' in data: name = data['name'] ok = xbmcgui.Dialog().yesno(lang(30166), lang(30054), color('FFFF0000', name)) if not ok: info(self, "Deleting playlist aborted...") return False res = False if data['owner']['name'] == login: info(self, "Deleting playlist: " + str(playlist_id)) res = api.playlist_delete(playlist_id=playlist_id) else: info(self, 'Unsuscribe playlist' + str(playlist_id)) res = api.playlist_unsubscribe(playlist_id=playlist_id) if not res: warn(self, "Cannot delete playlist with id " + str(playlist_id)) notifyH(lang(30183), lang(30186) + name, getImage('icon-error-256')) return False self.delete_cache(playlist_id) notifyH(lang(30183), (lang(30184) + "%s" + lang(30185)) % (name)) url = self.make_url(nt=Flag.USERPLAYLISTS, mode=Mode.VIEW, nm='', nid='') executeBuiltin(containerUpdate(url, True)) return False
def gui_remove(self, playlist_id=None): if not playlist_id: playlist_id = self.nid if not playlist_id: notifyH(dialogHeading, 'Invalid playlist %s' % (str(playlist_id))) return False import xbmcgui import xbmc cid = self.get_current_playlist() login = getSetting('username') offset = 0 limit = getSetting('pagination_limit') data = api.get('/playlist/get', playlist_id=playlist_id, limit=limit, offset=offset) name = '' if 'name' in data: name = data['name'] ok = xbmcgui.Dialog().yesno(lang(39010), lang(30052), color('FFFF0000', name)) if not ok: info(self, "Deleting playlist aborted...") return False res = False if data['owner']['name'] == login: info(self, "Deleting playlist: " + str(playlist_id)) res = api.playlist_delete(playlist_id=playlist_id) else: info(self, 'Unsuscribe playlist' + str(playlist_id)) res = api.playlist_unsubscribe(playlist_id=playlist_id) if not res: warn(self, "Cannot delete playlist with id " + str(playlist_id)) notifyH(lang(42001), lang(42004) + name, getImage('icon-error-256')) return False self.delete_cache(playlist_id) notifyH(lang(42001), (lang(42002) + "%s" + lang(42003)) % (name)) url = self.make_url(nt=Flag.USERPLAYLISTS, mode=Mode.VIEW, nm='', nid='') executeBuiltin(containerUpdate(url, True)) return False
def __add_pagination_node(self, Dir, lvl=1, whiteFlag=Flag.NODE): """Helper/Called by build_down to add special node when pagination is required """ if self.pagination_next: colorItem = getSetting('color_item') params = qobuz.boot.params params['offset'] = self.pagination_next_offset params['nid'] = self.nid node = getNode(self.nt, params) node.data = self.data label = self.get_label() if not label and self.parent: label = self.parent.get_label() if self.label2: label = self.label2 nextLabel = ('[ %s %s / %s ]') % (color( colorItem, label), self.pagination_next_offset, self.pagination_total) node.label = nextLabel node.label2 = label self.add_child(node)
def __add_pagination_node(self, Dir, lvl=1, whiteFlag=Flag.NODE): """Helper/Called by build_down to add special node when pagination is required """ if self.pagination_next: colorItem = getSetting('color_item') params = qobuz.boot.params params['offset'] = self.pagination_next_offset params['nid'] = self.nid node = getNode(self.nt, params) node.data = self.data label = self.get_label() if not label and self.parent: label = self.parent.get_label() if self.label2: label = self.label2 nextLabel = ( '[ %s %s / %s ]') % (color(colorItem, label), self.pagination_next_offset, self.pagination_total) node.label = nextLabel node.label2 = label self.add_child(node)
def set_label(self, label): colorItem = getSetting("color_item") self.label = color(colorItem, label)
def set_label(self, label): colorItem = getSetting('color_item') self.label = color(colorItem, label)