When tracklist changes, clense unmatching metadata

This commit is contained in:
James Barnsley
2017-02-15 08:36:52 +13:00
parent 9401289802
commit 4ccc564442

View File

@ -85,6 +85,9 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
##
def track_playback_ended( self, tl_track, time_position ):
self.check_for_radio_update()
def tracklist_changed( self ):
self.clean_queue_metadata()
##
@ -212,9 +215,31 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
pusher.broadcast('queue_metadata', {'queue_metadata': self.queue_metadata})
return self.queue_metadata
# fetch our tracklist, and remove any metadata for tlids that don't exist anymore
def clean_queue_metadata( self ):
cleaned_queue_metadata = {}
# get and loop all tltracks
for tltrack in self.core.tracklist.get_tl_tracks().get():
# if we have metadata for this track, push it through to cleaned dictionary
if 'tlid_'+str(tltrack.tlid) in self.queue_metadata:
cleaned_queue_metadata['tlid_'+str(tltrack.tlid)] = self.queue_metadata['tlid_'+str(tltrack.tlid)]
# update our cleaned store
self.queue_metadata = cleaned_queue_metadata
# broadcast to all clients
pusher.broadcast('queue_metadata', {'queue_metadata': self.queue_metadata})
# get our config values
##
# System configuration
#
# This enables Iris to respect system config
##
def get_config( self ):
all_config = self.config
config = {