From 6b42b73da65d4c6be2552543b4bdda6f3ed9365d Mon Sep 17 00:00:00 2001 From: shaonianzhetnan <5294022+shaonianzhentan@users.noreply.github.com> Date: Sun, 5 Mar 2023 22:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=92=AD=E6=94=BE=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- custom_components/ha_cloud_music/browse_media.py | 11 +++++++++++ custom_components/ha_cloud_music/cloud_music.py | 7 +++++++ custom_components/ha_cloud_music/manifest.json | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/custom_components/ha_cloud_music/browse_media.py b/custom_components/ha_cloud_music/browse_media.py index 2fc1a9c..f14e8c7 100644 --- a/custom_components/ha_cloud_music/browse_media.py +++ b/custom_components/ha_cloud_music/browse_media.py @@ -71,6 +71,7 @@ fm_protocol = 'cloudmusic://fm/' qq_protocol = 'cloudmusic://qq/' ting_protocol = 'cloudmusic://ting/' search_protocol = 'cloudmusic://search/' +play_protocol = 'cloudmusic://play/' # 云音乐路由表 class CloudMusicRouter(): @@ -104,6 +105,13 @@ class CloudMusicRouter(): search_name = f'{search_protocol}name' search_play = f'{search_protocol}play' + # 播放 + play_list = f'{play_protocol}list' + play_radio = f'{play_protocol}radio' + play_xmly = f'{play_protocol}xmly' + play_fm = f'{play_protocol}fm' + + async def async_browse_media(media_player, media_content_type, media_content_id): print(media_content_type, media_content_id) @@ -708,6 +716,9 @@ async def async_play_media(media_player, cloud_music, media_content_id): playlist = await cloud_music.async_search_song(keywords) elif media_content_id.startswith(CloudMusicRouter.search_play): playlist = await cloud_music.async_play_song(keywords) + elif media_content_id.startswith(CloudMusicRouter.play_list): + playlist = await cloud_music.async_play_playlist(keywords) + if playlist is not None: media_player.playindex = playindex diff --git a/custom_components/ha_cloud_music/cloud_music.py b/custom_components/ha_cloud_music/cloud_music.py index 0de133f..996068d 100644 --- a/custom_components/ha_cloud_music/cloud_music.py +++ b/custom_components/ha_cloud_music/cloud_music.py @@ -322,6 +322,13 @@ class CloudMusic(): music_info = MusicInfo(id, song, singer, album, duration, url, picUrl, MusicSource.URL.value) return [ music_info ] + # 歌单 + async def async_play_playlist(self, name): + res = await self.netease_cloud_music(f'/search?limit=1&keywords={name}&type=1000') + if res['code'] == 200: + playlists = res['result']['playlists'] + return await self.async_get_playlist(playlists[0]['id']) + # 音乐搜索 async def async_search_song(self, name): ha_music_source = self.hass.data.get('ha_music_source') diff --git a/custom_components/ha_cloud_music/manifest.json b/custom_components/ha_cloud_music/manifest.json index b47b741..506f82f 100644 --- a/custom_components/ha_cloud_music/manifest.json +++ b/custom_components/ha_cloud_music/manifest.json @@ -1,7 +1,7 @@ { "domain": "ha_cloud_music", "name": "\u4E91\u97F3\u4E50", - "version": "2023.2.26", + "version": "2023.3.5", "config_flow": true, "documentation": "https://github.com/shaonianzhentan/ha_cloud_music", "requirements": [],