def get_fanart_path( database_id, type ): utils.log( "jsonrpc_calls.py - Retrieving Fanart Path for %s id: %s" % ( type, database_id ), xbmc.LOGDEBUG ) if type in ( "cover", "cdart", "album" ) and database_id: json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetAlbumDetails", "params": {"properties": ["fanart"], "albumid": %d}, "id": 1}''' % database_id json_fanart = retrieve_json_dict( json_query, items='albumdetails', force_log=False ) elif type in ( "fanart", "clearlogo", "artistthumb", "artist" ) and database_id: json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetArtistDetails", "params": {"properties": ["fanart"], "artistid": %d}, "id": 1}''' % database_id json_fanart = retrieve_json_dict( json_query, items='artistdetails', force_log=False ) else: utils.log( "jsonrpc_calls.py - Improper type or database_id", xbmc.LOGDEBUG ) return empty if json_fanart: return json_fanart["fanart"] else: return empty
def dirEntries( dir_name, media_type="files", recursive="FALSE", contains="" ): '''Returns a list of valid XBMC files from a given directory(folder) Method to call: dirEntries( dir_name, media_type, recursive ) dir_name - the name of the directory to be searched media_type - valid types: video, music, pictures, files, programs recursive - Setting to "TRUE" searches Parent and subdirectories, Setting to "FALSE" only search Parent Directory ''' xbmc.log( "[folder.py] - dirEntries Activated", level=xbmc.LOGDEBUG ) fileList = [] json_query = '{"jsonrpc": "2.0", "method": "Files.GetDirectory", "params": {"directory": "%s", "media": "%s"}, "id": 1}' % ( escapeDirJSON( dir_name ), media_type ) json_folder_detail = retrieve_json_dict(json_query, items='files', force_log=True) if json_folder_detail: for f in json_folder_detail: try: if recursive == "TRUE" and f["filetype"] == "directory": fileList.extend( dirEntries( f["file"], media_type, recursive, contains ) ) elif not contains or ( contains and (contains in f["file"] ) ): fileList.append( f["file"] ) #xbmc.log( "[folder.py] - File Path: %s" % f["file"], level=xbmc.LOGDEBUG ) else: continue except: continue return fileList
def dirEntries( dir_name, media_type="files", recursive="FALSE", contains="" ): '''Returns a list of valid XBMC files from a given directory(folder) Method to call: dirEntries( dir_name, media_type, recursive ) dir_name - the name of the directory to be searched media_type - valid types: video, music, pictures, files, programs recursive - Setting to "TRUE" searches Parent and subdirectories, Setting to "FALSE" only search Parent Directory ''' log( "[folder.py] - dirEntries Activated" ) fileList = [] json_query = '{"jsonrpc": "2.0", "method": "Files.GetDirectory", "params": {"directory": "%s", "media": "%s"}, "id": 1}' % ( escapeDirJSON( dir_name ), media_type ) json_folder_detail = retrieve_json_dict(json_query, items='files', force_log=True) if json_folder_detail: for f in json_folder_detail: try: if recursive == "TRUE" and f["filetype"] == "directory": fileList.extend( dirEntries( f["file"], media_type, recursive, contains ) ) elif not contains or ( contains and (contains in f["file"] ) ): fileList.append( f["file"] ) #log( "[folder.py] - File Path: %s" % f["file"] ) else: continue except: continue return fileList
def _movie_details(movie_id): movie_details = [] utils.log("Retrieving Movie Details", xbmc.LOGNOTICE) json_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieDetails", "params": {"movieid": %d, "properties": ["title", "file", "thumbnail", "streamdetails", "mpaa", "genre"]}, "id": 1}' % movie_id movie_details = retrieve_json_dict(json_query, items="moviedetails", force_log=False) return movie_details
def retrieve_album_list(): utils.log( "jsonrpc_calls.py - Retrieving Album List", xbmc.LOGDEBUG ) json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetAlbums", "params": { "limits": { "start": 0 }, "properties": ["title", "artist", "musicbrainzalbumid", "musicbrainzalbumartistid"], "sort": {"order":"ascending"}}, "id": 1}''' json_albums = retrieve_json_dict(json_query, items='albums', force_log=False ) if json_albums: return json_albums, len(json_albums) else: return empty, 0
def retrieve_artist_details( artist_id ): utils.log( "jsonrpc_calls.py - Retrieving Artist Details", xbmc.LOGDEBUG ) json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetArtistDetails", "params": {"properties": ["musicbrainzartistid"], "artistid": %d}, "id": 1}''' % artist_id json_artist_details = retrieve_json_dict(json_query, items='artistdetails', force_log=False ) if json_artist_details: return json_artist_details else: return empty
def _movie_details(movie_id): movie_details = [] utils.log("Retrieving Movie Details", xbmc.LOGNOTICE) json_query = ( '{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieDetails", "params": {"movieid": %d, "properties": ["title", "file", "thumbnail", "streamdetails", "mpaa", "genre"]}, "id": 1}' % movie_id ) movie_details = retrieve_json_dict(json_query, items="moviedetails", force_log=False) return movie_details
def retrieve_album_details( album_id ): utils.log( "jsonrpc_calls.py - Retrieving Album Details", xbmc.LOGDEBUG ) album_details = [] json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetAlbumDetails", "params": {"properties": ["artist", "title", "musicbrainzalbumid", "musicbrainzalbumartistid"], "albumid": %d}, "id": 1}''' % album_id json_album_details = retrieve_json_dict(json_query, items='albumdetails', force_log=False ) if json_album_details: album_details.append( json_album_details ) return album_details else: return empty
def get_all_local_artists( all_artists = True ): utils.log( "jsonrpc_calls.py - Retrieving all local artists", xbmc.LOGDEBUG ) if all_artists: json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetArtists", "params": { "albumartistsonly": false }, "id": 1}''' else: json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetArtists", "params": { "albumartistsonly": true }, "id": 1}''' json_artists = retrieve_json_dict(json_query, items='artists', force_log=False ) if json_artists: return json_artists else: return empty
def get_album_path( album_id ): utils.log( "jsonrpc_calls.py - Retrieving Album Path", xbmc.LOGDEBUG ) paths = [] albumartistmbids = [] albumreleasembids = [] json_query = '''{"jsonrpc": "2.0", "method": "AudioLibrary.GetSongs", "params": { "properties": ["file", "musicbrainzalbumartistid", "musicbrainzalbumid"], "filter": { "albumid": %d }, "sort": {"method":"path","order":"ascending"} }, "id": 1}''' % album_id json_songs_detail = retrieve_json_dict(json_query, items='songs', force_log=False ) if json_songs_detail: for song in json_songs_detail: path = os.path.dirname( song['file'] ) paths.append( path ) albumartistmbid = song['musicbrainzalbumartistid'] albumartistmbids.append( albumartistmbid ) albumreleasembid = song['musicbrainzalbumid'] albumreleasembids.append( albumreleasembid ) return paths, albumartistmbids, albumreleasembids else: return empty
def getFolders( dir_name, recursive="FALSE" ): '''Returns a list of valid XBMC files from a given directory(folder) Method to call: getFolders( dir_name, , recursive ) dir_name - the name of the directory to be searched recursive - Setting to "TRUE" searches Parent and subdirectories, Setting to "FALSE" only search Parent Directory ''' xbmc.log( "[folder.py] - getFolders Activated", level=xbmc.LOGDEBUG ) folderList = [] json_query = '{"jsonrpc": "2.0", "method": "Files.GetDirectory", "params": {"directory": "%s", "media": "files"}, "id": 1}' % ( escapeDirJSON( dir_name ) ) json_folder_detail = retrieve_json_dict(json_query, items='files', force_log=True) if json_folder_detail: for f in json_folder_detail: if f["filetype"] == "directory": folderList.append( match.group(1) ) #xbmc.log( "[folder.py] - Folder Path: %s" % f["file"], level=xbmc.LOGDEBUG ) if recursive == "TRUE": fileList.extend( getFolders( f["file"], recursive ) ) else: continue return folderList
def getFolders( dir_name, recursive="FALSE" ): '''Returns a list of valid XBMC files from a given directory(folder) Method to call: getFolders( dir_name, , recursive ) dir_name - the name of the directory to be searched recursive - Setting to "TRUE" searches Parent and subdirectories, Setting to "FALSE" only search Parent Directory ''' log( "[folder.py] - getFolders Activated" ) folderList = [] json_query = '{"jsonrpc": "2.0", "method": "Files.GetDirectory", "params": {"directory": "%s", "media": "files"}, "id": 1}' % ( escapeDirJSON( dir_name ) ) json_folder_detail = retrieve_json_dict(json_query, items='files', force_log=True) if json_folder_detail: for f in json_folder_detail: if f["filetype"] == "directory": folderList.append( match.group(1) ) #log( "[folder.py] - Folder Path: %s" % f["file"] ) if recursive == "TRUE": fileList.extend( getFolders( f["file"], recursive ) ) else: continue return folderList
def _store_playlist(): p_list = [] utils.log("Storing Playlist in memory", xbmc.LOGNOTICE) json_query = '{"jsonrpc": "2.0", "method": "Playlist.GetItems", "params": {"playlistid": 1, "properties": ["title", "file", "thumbnail", "streamdetails", "mpaa", "genre"] }, "id": 1}' p_list = retrieve_json_dict(json_query, items="items", force_log=False) return p_list
def _store_playlist(): p_list = [] log( "Storing Playlist in memory", xbmc.LOGNOTICE ) json_query = '{"jsonrpc": "2.0", "method": "Playlist.GetItems", "params": {"playlistid": 1, "properties": ["title", "file", "thumbnail", "streamdetails", "mpaa", "genre"] }, "id": 1}' p_list = retrieve_json_dict( json_query, items="items", force_log=False ) return p_list