#!/usr/bin/python # -*- coding: utf-8 -*- ''' script.skin.helper.widgets artists.py all artists widgets provided by the script ''' from utils import create_main_entry from metadatautils import kodi_constants import xbmc class Artists(object): '''all artist widgets provided by the script''' def __init__(self, addon, metadatautils, options): '''Initializations pass our common classes and the widget options as arguments''' self.metadatautils = metadatautils self.addon = addon self.options = options self.enable_artwork = self.addon.getSetting("music_enable_artwork") == "true" def listing(self): '''main listing with all our artist nodes''' all_items = [ (self.addon.getLocalizedString(32063), "recent&mediatype=artists", "DefaultMusicArtists.png"), (self.addon.getLocalizedString(32065), "recommended&mediatype=artists", "DefaultMusicArtists.png"), (self.addon.getLocalizedString(32064), "random&mediatype=artists", "DefaultMusicArtists.png"), (xbmc.getLocalizedString(10134), "favourites&mediatype=artists", "DefaultMusicArtists.png") ] return self.metadatautils.process_method_on_list(create_main_entry, all_items) def favourites(self): '''get favourites''' from favourites import Favourites self.options["mediafilter"] = "artists" return Favourites(self.addon, self.metadatautils, self.options).favourites() def recommended(self): ''' get recommended artists - library artists sorted by rating ''' all_items = self.metadatautils.kodidb.artists(sort=kodi_constants.SORT_RATING, filters=[], limits=(0, self.options["limit"])) return self.metadatautils.process_method_on_list(self.process_artist, all_items) def recent(self): ''' get recently added artists ''' all_items = self.metadatautils.kodidb.artists(sort=kodi_constants.SORT_DATEADDED, filters=[], limits=(0, self.options["limit"])) return self.metadatautils.process_method_on_list(self.process_artist, all_items) def random(self): ''' get random artists ''' all_items = self.metadatautils.kodidb.artists(sort=kodi_constants.SORT_RANDOM, filters=[], limits=(0, self.options["limit"])) return self.metadatautils.process_method_on_list(self.process_artist, all_items) def process_artist(self, item): '''transform the json received from kodi into something we can use''' if self.enable_artwork: self.metadatautils.extend_dict(item, self.metadatautils.get_music_artwork(item["label"][0])) item["file"] = "musicdb://artists/%s" % item["artistid"] item["isFolder"] = True return item