def add_track_listitems(self, tracks, append_artist_to_label=False):
list_items = []
for count, track in enumerate(tracks):
if append_artist_to_label:
label = "%s - %s" % (track["artist"], track['name'])
else:
label = track['name']
duration = track["duration_ms"] / 1000
if KODI_VERSION > 17:
li = xbmcgui.ListItem(label, offscreen=True)
else:
li = xbmcgui.ListItem(label)
if self.local_playback and self.connect_id:
# local playback by using proxy on a remote machine
url = "http://%s:%s/track/%s/%s" % (self.connect_id, PROXY_PORT, track['id'], duration)
li.setProperty("isPlayable", "true")
elif self.local_playback:
# local playback by using proxy on this machine
url = "http://localhost:%s/track/%s/%s" % (PROXY_PORT, track['id'], duration)
li.setProperty("isPlayable", "true")
else:
# connect controlled playback
li.setProperty("isPlayable", "false")
if self.playlistid:
url = "plugin://plugin.audio.spotify/?action=connect_playback&trackid=%s&playlistid=%s&ownerid=%s&offset=%s" % (
track['id'], self.playlistid, self.ownerid, count)
elif self.albumid:
url = "plugin://plugin.audio.spotify/?action=connect_playback&trackid=%s&albumid=%s&offset=%s" % (track[
'id'], self.albumid, count)
else:
url = "plugin://plugin.audio.spotify/?action=connect_playback&trackid=%s" % (track['id'])
if self.append_artist_to_title:
title = label
else:
title = track['name']
li.setInfo('music', {
"title": title,
"genre": track["genre"],
"year": track["year"],
"tracknumber": track["track_number"],
"album": track['album']["name"],
"artist": track["artist"],
"rating": track["rating"],
"duration": duration
})
li.setArt({"thumb": track['thumb']})
li.setProperty("spotifytrackid", track['id'])
li.setContentLookup(False)
li.addContextMenuItems(track["contextitems"], True)
li.setProperty('do_not_analyze', 'true')
li.setMimeType("audio/wave")
list_items.append((url, li, False))
xbmcplugin.addDirectoryItems(self.addon_handle, list_items, totalItems=len(list_items))
plugin_content.py 文件源码
python
阅读 19
收藏 0
点赞 0
评论 0
评论列表
文章目录