Skip to content

Commit fde1fb7

Browse files
committed
several fixes
fix search fix chromecast fix radio
1 parent 3ede6f7 commit fde1fb7

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

music_assistant/database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ async def search(self, searchquery, media_types: List[MediaType]):
181181
if MediaType.Playlist in media_types:
182182
sql_query = ' WHERE name LIKE "%s"' % searchquery
183183
result["playlists"] = [
184-
item async for item in self.library_playlists(sql_query)
184+
item async for item in self.playlists(sql_query)
185185
]
186186
return result
187187

music_assistant/http_streamer.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -333,15 +333,18 @@ def __get_audio_stream(
333333
""" get audio stream from provider and apply additional effects/processing where/if needed"""
334334
streamdetails = None
335335
# always request the full db track as there might be other qualities available
336-
full_track = self.mass.run_task(
337-
self.mass.music.track(
338-
queue_item.item_id,
339-
queue_item.provider,
340-
lazy=True,
341-
track_details=queue_item,
342-
),
343-
wait_for_result=True,
344-
)
336+
if queue_item.media_type == MediaType.Radio:
337+
full_track = queue_item
338+
else:
339+
full_track = self.mass.run_task(
340+
self.mass.music.track(
341+
queue_item.item_id,
342+
queue_item.provider,
343+
lazy=True,
344+
track_details=queue_item,
345+
),
346+
wait_for_result=True,
347+
)
345348
# sort by quality and check track availability
346349
for prov_media in sorted(
347350
full_track.provider_ids, key=operator.itemgetter("quality"), reverse=True

music_assistant/playerproviders/chromecast.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -287,22 +287,19 @@ def list_devices():
287287
for uuid, service in listener.services.items():
288288
LOGGER.debug(" {} {}".format(uuid, service))
289289

290-
def add_callback(name):
290+
def add_callback(uuid, name):
291291
"""Called when zeroconf has discovered a (new) chromecast."""
292-
discovery_info = listener.services[name]
293-
ip_address, port, uuid, model_name, friendly_name = discovery_info
292+
services = listener.services[uuid]
294293
player_id = str(uuid)
295294
if not player_id in self.mass.players._players:
296-
self.__chromecast_discovered(player_id, discovery_info)
295+
self.__chromecast_discovered(player_id, services, zconf)
297296
self.__update_group_players()
298297

299298
def remove_callback(uuid, name, service):
300299
LOGGER.debug("Lost mDNS service for cast device {} {}".format(uuid, service))
301-
list_devices()
302300

303301
def update_callback(uuid, name):
304302
LOGGER.debug("Updated mDNS service for cast device {}".format(uuid))
305-
list_devices()
306303

307304
listener = pychromecast.CastListener(add_callback, remove_callback, update_callback)
308305
zconf = zeroconf.Zeroconf()
@@ -313,15 +310,14 @@ def update_callback(uuid, name):
313310
LOGGER.debug("Chromecast discovery completed...")
314311
self._discovery_running = False
315312

316-
def __chromecast_discovered(self, player_id, discovery_info):
313+
def __chromecast_discovered(self, player_id, services, zconf):
317314
""" callback when a (new) chromecast device is discovered """
318-
from pychromecast import _get_chromecast_from_host, ChromecastConnectionError
319315

320316
try:
321-
chromecast = _get_chromecast_from_host(
322-
discovery_info, tries=2, timeout=5, retry_wait=5
317+
chromecast = pychromecast.get_chromecast_from_service(
318+
services, zconf, tries=2, retry_wait=5, timeout=5
323319
)
324-
except ChromecastConnectionError:
320+
except pychromecast.ChromecastConnectionError:
325321
LOGGER.warning("Could not connect to device %s" % player_id)
326322
return
327323
player = ChromecastPlayer(self.mass, player_id, self.prov_id)

0 commit comments

Comments
 (0)