59
59
)
60
60
61
61
from .speaker import (
62
- MopidyMedia ,
63
62
MopidyLibrary ,
64
63
MopidySpeaker ,
65
64
)
@@ -197,12 +196,12 @@ def youtube_uri_from_media_id(self, media_id):
197
196
"""Parse the youtube media_id and return a usable resource"""
198
197
url = urlparse .urlparse (media_id )
199
198
if "youtube" in self .speaker .supported_uri_schemes :
200
- _LOGGER .debug ("youtube detected" )
201
199
query_parsed = parse_qs (url .query )
202
200
media_id = f"youtube:video:{ query_parsed ['v' ][0 ]} "
201
+
203
202
elif "yt" in self .speaker .supported_uri_schemes :
204
- _LOGGER .debug ("yt detected" )
205
203
media_id = f"yt:{ media_id } "
204
+
206
205
else :
207
206
raise MissingMopidyExtension ("No Mopidy Extensions found for Youtube. If this incorrect, please open an issue." )
208
207
@@ -340,87 +339,51 @@ def _attr_is_volume_muted(self):
340
339
341
340
@property
342
341
def _attr_media_album_artist (self ):
343
- if self .media is None :
344
- return None
345
- else :
346
- return self .media .album_artist
342
+ return self .speaker .queue .current_track_album_artist
347
343
348
344
@property
349
345
def _attr_media_album_name (self ):
350
- if self .media is None :
351
- return None
352
- else :
353
- return self .media .album_name
346
+ return self .speaker .queue .current_track_album_name
354
347
355
348
@property
356
349
def _attr_media_artist (self ):
357
- if self .media is None :
358
- return None
359
- else :
360
- return self .media .artist
350
+ return self .speaker .queue .current_track_artist
361
351
362
352
@property
363
353
def _attr_media_content_id (self ):
364
- if self .media is None :
365
- return None
366
- else :
367
- return self .media .uri
354
+ return self .speaker .queue .current_track_uri
368
355
369
356
@property
370
357
def _attr_media_duration (self ):
371
- if self .media is None :
372
- return None
373
- else :
374
- return self .media .duration
358
+ return self .speaker .queue .current_track_duration
375
359
376
360
@property
377
361
def _attr_media_image_url (self ):
378
- if self .media is None :
379
- return None
380
- else :
381
- return self .media .image_url
362
+ return self .speaker .queue .current_track_image_url
382
363
383
364
@property
384
365
def _attr_media_image_remotely_accessible (self ):
385
- if self .media is None :
386
- return None
387
- else :
388
- return self .media .image_remotely_accessible
366
+ return self .speaker .queue .current_track_image_remotely_accessible
389
367
390
368
@property
391
369
def _attr_media_playlist (self ):
392
- if self .media is None :
393
- return None
394
- else :
395
- return self .media .playlist_name
370
+ return self .speaker .queue .current_track_playlist_name
396
371
397
372
@property
398
373
def _attr_media_position (self ):
399
- if self .media is None :
400
- return None
401
- else :
402
- return self .media .position
374
+ return self .speaker .queue .current_track_position
403
375
404
376
@property
405
377
def _attr_media_position_updated_at (self ):
406
- if self .media is None :
407
- return None
408
- else :
409
- return self .media .position_updated_at
378
+ return self .speaker .queue .current_track_position_updated_at
410
379
411
380
@property
412
381
def _attr_media_title (self ):
413
- if self .media is None :
414
- return None
415
- else :
416
- return self .media .title
382
+ return self .speaker .queue .current_track_title
417
383
418
384
@property
419
385
def _attr_media_track (self ):
420
- if self .media is None :
421
- return None
422
- else :
423
- return self .media .track_number
386
+ return self .speaker .queue .current_track_number
424
387
425
388
@property
426
389
def _attr_repeat (self ):
@@ -487,17 +450,17 @@ def extra_state_attributes(self) -> dict[str, Any]:
487
450
"""Return entity specific state attributes"""
488
451
attributes : dict [str , Any ] = {}
489
452
490
- if self .speaker .queue_position is not None :
491
- attributes ["queue_position" ] = self .speaker .queue_position
453
+ if self .speaker .queue . position is not None :
454
+ attributes ["queue_position" ] = self .speaker .queue . position
492
455
493
- if self .speaker .queue_size is not None :
494
- attributes ["queue_size" ] = self .speaker .queue_size
456
+ if self .speaker .queue . size is not None :
457
+ attributes ["queue_size" ] = self .speaker .queue . size
495
458
496
459
if self .speaker .consume_mode is not None :
497
460
attributes ["consume_mode" ] = self .speaker .consume_mode
498
461
499
- if self .media . extension is not None :
500
- attributes ["mopidy_extension" ] = self .media . extension
462
+ if self .speaker . queue . current_track_extension is not None :
463
+ attributes ["mopidy_extension" ] = self .speaker . queue . current_track_extension
501
464
502
465
if self .speaker .snapshot_taken_at is not None :
503
466
attributes ["snapshot_taken_at" ] = self .speaker .snapshot_taken_at
@@ -514,10 +477,10 @@ def library(self) -> MopidyLibrary:
514
477
"""Return the library object from the speaker"""
515
478
return self .speaker .library
516
479
517
- @property
518
- def media (self ) -> MopidyMedia :
519
- """Return the media object from the speaker"""
520
- return self .speaker .media
480
+ # @property
481
+ # def media(self) -> MopidyMedia:
482
+ # """Return the media object from the speaker"""
483
+ # return self.speaker.media
521
484
522
485
@property
523
486
def name (self ) -> str :
@@ -538,37 +501,6 @@ def update(self) -> None:
538
501
_LOGGER .error (f"{ self .entity_id } is unavailable" )
539
502
return
540
503
541
- if False :
542
- _LOGGER .debug ("is_volume_muted: %s" , self ._attr_is_volume_muted )
543
- _LOGGER .debug ("repeat: %s" , self ._attr_repeat )
544
- _LOGGER .debug ("shuffle: %s" , self ._attr_shuffle )
545
- _LOGGER .debug ("source_list: %s" , self ._attr_source_list )
546
- _LOGGER .debug ("supported_features: %s" , self ._attr_supported_features )
547
- _LOGGER .debug ("volume_level: %s" , self ._attr_volume_level )
548
- _LOGGER .debug ("media_artist: %s" , self ._attr_media_artist )
549
- _LOGGER .debug ("media_album_artist: %s" , self ._attr_media_album_artist )
550
- _LOGGER .debug ("media_album_name: %s" , self ._attr_media_album_name )
551
- _LOGGER .debug ("media_content_id: %s" , self ._attr_media_content_id )
552
- _LOGGER .debug ("media_duration: %s" , self ._attr_media_duration )
553
- _LOGGER .debug ("media_image_url: %s" , self ._attr_media_image_url )
554
- _LOGGER .debug ("media_playlist: %s" , self ._attr_media_playlist )
555
- _LOGGER .debug ("media_position: %s" , self ._attr_media_position )
556
- _LOGGER .debug (
557
- "media_position_updated_at: %s" ,
558
- self ._attr_media_position_updated_at
559
- )
560
- _LOGGER .debug ("media_title: %s" , self ._attr_media_title )
561
- _LOGGER .debug ("media_track: %s" , self ._attr_media_track )
562
-
563
- _LOGGER .debug ("state: %s" , self ._attr_state )
564
- _LOGGER .debug (
565
- "image_remotely_accessible: %s" ,
566
- self ._attr_media_image_remotely_accessible
567
- )
568
- _LOGGER .debug ("track_list: %s" , self .speaker .tracklist_uris )
569
- _LOGGER .debug ("track_list_index: %s" , self .speaker .queue_position )
570
- _LOGGER .debug ("self.speaker.api.wsclient.wsthread.is_alive(): %s" , self .speaker .api .wsclient .wsthread .is_alive ())
571
-
572
504
async def async_browse_media (
573
505
self ,
574
506
media_content_type = None ,
@@ -701,7 +633,7 @@ def _media_library_payload(self, payload):
701
633
i = self .library .get_images (uri_set )
702
634
for img_uri in i :
703
635
if len (i [img_uri ]) > 0 :
704
- CACHE_ART [img_uri ] = self .media .expand_url (mopidy_info ["source" ], i [img_uri ][0 ].uri )
636
+ CACHE_ART [img_uri ] = self .speaker . queue .expand_url (mopidy_info ["source" ], i [img_uri ][0 ].uri )
705
637
else :
706
638
CACHE_ART [img_uri ] = None
707
639
0 commit comments