def _fetch_music_info( self ):
# sql statement
if ( self.RANDOM_ORDER ):
sql_music = "select * from albumview order by RANDOM() limit %d" % ( self.LIMIT, )
else:
sql_music = "select * from albumview order by idAlbum desc limit %d" % ( self.LIMIT, )
# query the database for recently added albums
music_xml = xbmc.executehttpapi( "QueryMusicDatabase(%s)" % quote_plus( sql_music ), )
# separate the records
items = re.findall( "<record>(.+?)</record>", music_xml, re.DOTALL )
# enumerate thru our records and set our properties
for count, item in enumerate( items ):
# separate individual fields
fields = re.findall( "<field>(.*?)</field>", item, re.DOTALL )
# set properties
self.WINDOW.setProperty( "LatestSong.%d.Genre" % ( count + 1, ), fields[ 7 ] )
self.WINDOW.setProperty( "LatestSong.%d.Year" % ( count + 1, ), fields[ 8 ] )
self.WINDOW.setProperty( "LatestSong.%d.Artist" % ( count + 1, ), fields[ 6 ] )
self.WINDOW.setProperty( "LatestSong.%d.Album" % ( count + 1, ), fields[ 1 ] )
self.WINDOW.setProperty( "LatestSong.%d.Plot" % ( count + 1, ), fields[ 14 ] )
# Album Path (ID)
path = 'XBMC.RunScript(' + CWD + 'extras.py,albumid=' + fields[ 0 ] + ')'
self.WINDOW.setProperty( "LatestSong.%d.Path" % ( count + 1, ), path )
# get cache name of path to use for fanart
cache_name = xbmc.getCacheThumbName( fields[ 6 ] )
self.WINDOW.setProperty( "LatestSong.%d.Fanart" % ( count + 1, ), "special://profile/Thumbnails/Music/%s/%s" % ( "Fanart", cache_name, ) )
self.WINDOW.setProperty( "LatestSong.%d.Thumb" % ( count + 1, ), fields[ 9 ] )
def _Play_Album( self, ID ):
playlist=xbmc.PlayList(0)
playlist.clear()
# sql statements
sql_song = "select * from songview where idAlbum='%s' order by iTrack " % ( ID )
# query the databases
songs_xml = xbmc.executehttpapi( "QueryMusicDatabase(%s)" % quote_plus( sql_song ), )
# separate the records
songs = re.findall( "<record>(.+?)</record>", songs_xml, re.DOTALL )
# enumerate thru our records and set our properties
for count, movie in enumerate( songs ):
# separate individual fields
fields = re.findall( "<field>(.*?)</field>", movie, re.DOTALL )
# set album name
path = fields[ 22 ] + fields[ 8 ]
listitem = ListItem( fields[ 7 ] )
xbmc.PlayList(0).add (path, listitem )
xbmc.Player().play(playlist)
xbmc.executebuiltin('XBMC.ActivateWindow(10500)')