@@ -230,10 +230,12 @@ def expand_url(self, extension, url):
230
230
parsed_url = urlparse .urlparse (url )
231
231
if parsed_url .netloc == "" :
232
232
url = f"{ self .local_url_base } { url } "
233
+
234
+ # Force the browser to reload the image once per day
233
235
query = dict (urlparse .parse_qsl (parsed_url .query ))
234
- if query .get ("t " ) is None :
236
+ if query .get ("mopt " ) is None :
235
237
url_parts = list (urlparse .urlparse (url ))
236
- query ["t " ] = int ( time . time () * 1000 )
238
+ query ["mopt " ] = datetime . datetime . now (). strftime ( "%Y%m%d" )
237
239
url_parts [4 ] = urlencode (query )
238
240
url = urlparse .urlunparse (url_parts )
239
241
@@ -267,16 +269,16 @@ def parse_track_info(self, track, tlid=None, current=False):
267
269
self .__set_track_info (tlid , track_info )
268
270
if current :
269
271
self ._current_track_tlid = tlid
270
- self ._current_track_uri = track_info .get ("uri" )
271
- self ._current_track_album_artist = track_info .get ("album_artist" )
272
- self ._current_track_album_name = track_info .get ("album_name" )
273
- self ._current_track_artist = track_info .get ("artist" )
274
- self ._current_track_duration = track_info .get ("duration" )
275
- self ._current_track_extension = track_info .get ("source" )
276
- self ._current_track_playlist_name = track_info .get ("playlist_name" )
277
- self ._current_track_title = track_info .get ("title" )
278
- self ._current_track_is_stream = track_info .get ("is_stream" )
279
- self ._current_track_number = track_info .get ("number" )
272
+ self ._current_track_uri = self . queue [ tlid ] .get ("uri" )
273
+ self ._current_track_album_artist = self . queue [ tlid ] .get ("album_artist" )
274
+ self ._current_track_album_name = self . queue [ tlid ] .get ("album_name" )
275
+ self ._current_track_artist = self . queue [ tlid ] .get ("artist" )
276
+ self ._current_track_duration = self . queue [ tlid ] .get ("duration" )
277
+ self ._current_track_extension = self . queue [ tlid ] .get ("source" )
278
+ self ._current_track_playlist_name = self . queue [ tlid ] .get ("playlist_name" )
279
+ self ._current_track_title = self . queue [ tlid ] .get ("title" )
280
+ self ._current_track_is_stream = self . queue [ tlid ] .get ("is_stream" )
281
+ self ._current_track_number = self . queue [ tlid ] .get ("number" )
280
282
281
283
return track_info
282
284
@@ -385,7 +387,7 @@ def update_queued_tracks(self, media_id, media_type, **kwargs):
385
387
"playlist_name" : res .name ,
386
388
"playlist_uri" : res .uri ,
387
389
}
388
- self .__set_track_info (tl_track .tlid , ** track_info )
390
+ self .__set_track_info (tl_track .tlid , track_info )
389
391
390
392
def update_queue_information (self , updater = None ):
391
393
"""Get the Mopidy Instance queue information"""
@@ -478,6 +480,11 @@ def current_track_uri(self):
478
480
"""Return the mopidy uri of the current track"""
479
481
return self ._current_track_uri
480
482
483
+ @property
484
+ def uri_list (self ):
485
+ """Return a list of uris of the current queue"""
486
+ return [ self .queue [x ]["uri" ] for x in self .queue ]
487
+
481
488
@property
482
489
def size (self ):
483
490
"""Return the size of the current queue"""
@@ -549,6 +556,7 @@ def __init__(self,
549
556
self .entity = None
550
557
self .queue .api = self .api
551
558
self .library .api = self .api
559
+ self ._attr_snapshot_at = None
552
560
553
561
def __clear (self ):
554
562
"""Reset all Values"""
@@ -561,7 +569,6 @@ def __clear(self):
561
569
self ._attr_state = None
562
570
self ._attr_repeat = None
563
571
self ._attr_shuffle = None
564
- self ._attr_snapshot_at = None
565
572
self ._attr_is_available = False
566
573
567
574
def __connect (self ):
@@ -802,14 +809,14 @@ def play_media(self, media_type, media_id, **kwargs):
802
809
803
810
elif enqueue == MediaPlayerEnqueue .NEXT :
804
811
# Add media uris to queue after current playing track
805
- index = self .queue_position
812
+ index = self .queue . position
806
813
queued = self .queue_tracks (media_uris , at_position = index + 1 )
807
814
if self .state != MediaPlayerState .PLAYING :
808
815
self .media_play ()
809
816
810
817
elif enqueue == MediaPlayerEnqueue .PLAY :
811
818
# Insert media uris before current playing track into queue and play first of new uris
812
- index = self .queue_position
819
+ index = self .queue . position
813
820
queued = self .queue_tracks (media_uris , at_position = index )
814
821
self .media_play (index )
815
822
@@ -841,13 +848,13 @@ def restore_snapshot(self):
841
848
return
842
849
self .media_stop ()
843
850
self .clear_queue ()
844
- self .queue_tracks (self .snapshot .get ("tracklist " ,[]))
851
+ self .queue_tracks (self .snapshot .get ("queue_list " ,[]))
845
852
self .set_volume (self .snapshot .get ("volume" ))
846
853
self .set_mute (self .snapshot .get ("muted" ))
847
854
if self .snapshot .get ("state" , MediaPlayerState .IDLE ) in [MediaPlayerState .PLAYING , MediaPlayerState .PAUSED ]:
848
855
current_tracks = self .api .tracklist .get_tl_tracks ()
849
856
self .api .playback .play (
850
- tlid = current_tracks [self .snapshot .get ("tracklist_index " )].tlid
857
+ tlid = current_tracks [self .snapshot .get ("queue_index " )].tlid
851
858
)
852
859
853
860
count = 0
@@ -930,13 +937,13 @@ def take_snapshot(self):
930
937
self .update ()
931
938
self ._attr_snapshot_at = dt_util .utcnow ()
932
939
self .snapshot = {
933
- "mediaposition" : self .media . position ,
940
+ "mediaposition" : self .queue . current_track_position ,
934
941
"muted" : self .is_muted ,
935
942
"repeat_mode" : self .repeat ,
936
943
"shuffled" : self .is_shuffled ,
937
944
"state" : self .state ,
938
- "tracklist " : self .tracklist_uris ,
939
- "tracklist_index " : self .queue_position ,
945
+ "queue_list " : self .queue . uri_list ,
946
+ "queue_index " : self .queue . position ,
940
947
"volume" : self .volume_level ,
941
948
}
942
949
0 commit comments