diff --git a/modules/netease_cloud_music/__init__.py b/modules/netease_cloud_music/__init__.py index 42c39571..0975c9fc 100644 --- a/modules/netease_cloud_music/__init__.py +++ b/modules/netease_cloud_music/__init__.py @@ -1,4 +1,4 @@ -from core.builtins import Bot +from core.builtins import Bot, Plain, Image from core.component import module from core.utils.http import get_url from config import Config @@ -30,30 +30,21 @@ async def search(msg: Bot.MessageSession): i += 1 img_path = await msgchain2image([Plain(send_msg)]) send = await msg.sendMessage(Image(img_path)) - await msg.sendMessage(send_msg) + await msg.finish(send_msg) @ncmusic.handle('info {{ncmusic.help.info}}') async def info(msg: Bot.MessageSession): ids = msg.parsed_msg[''] info_url = f"{api_address}song/detail?ids={ids}" result = await get_url(info_url, 200, fmt='text', request_private_ip=True) - result_json = json.loads(result) + info = json.loads(result)['songs'] - send_msg = [] - for k in result_json['songs']: - send_msg.append(Image(k['al']['picUrl'])) - send_msg_plain = '' - send_msg_plain += f"{msg.locale.t('ncmusic.message.info.name')}{k['name']}({k['id']})\n" - send_msg_plain += f"{msg.locale.t('ncmusic.message.info.album')}{k['al']['name']}({k['al']['id']})\n" - send_msg_plain += f"{msg.locale.t('ncmusic.message.info.artists')}" - send_msg_plain += ' & '.join([ar['name'] for ar in k['ar']]) - send_msg_plain += '\n' - song_page = f"https://music.163.com/#/song?id={k['id']}" - send_msg_plain += f"{msg.locale.t('ncmusic.message.info.song_page')}{song_page}\n" - url = f"{api_address}song/url?id={k['id']}" - song = await get_url(url, 200, fmt='text', request_private_ip=True) - song_url = json.loads(song) - send_msg_plain += f"{msg.locale.t('ncmusic.message.info.url')}{song_url['data'][0]['url']}" - send_msg.append(Plain(send_msg_plain)) + detail_url = f"https://music.163.com/#/song?id={info['id']}" + url = f"{api_address}song/url?id={k['id']}" + song = await get_url(url, 200, fmt='text', request_private_ip=True) + song_url = json.loads(song) - await msg.sendMessage(send_msg) + await message.finish([Plain(f"Image(f"{info['al']['picUrl']}"), + Plain(message.locale.t("ncmusic.message.info", name=info['name'], id=info['id'], + album=info['al']['name'], album_id=info['al']['id'], artists=' & '.join([ar['name'] for ar in info['ar']]), + detail=detail_url, url=song_url['data'][0]['url'])))]) diff --git a/modules/netease_cloud_music/locales/zh_cn.json b/modules/netease_cloud_music/locales/zh_cn.json index 01a3a7f5..f61a4fb2 100644 --- a/modules/netease_cloud_music/locales/zh_cn.json +++ b/modules/netease_cloud_music/locales/zh_cn.json @@ -3,9 +3,5 @@ "ncmusic.help.info":"获取音乐详细信息。", "ncmusic.message.character":"(${value})", "ncmusic.message.search.result":"搜索结果:", - "ncmusic.message.info.name":"歌名:", - "ncmusic.message.info.album":"专辑名:", - "ncmusic.message.info.artists":"歌手:", - "ncmusic.message.info.song_page":"歌曲详情页:", - "ncmusic.message.info.url":"歌曲链接:" + "ncmusic.message.info":"歌名:${name}(${id})\n专辑名:${album}(${album_id})\n歌手:${artists}\n歌曲详情页:${detail}\n歌曲链接:${url}" } \ No newline at end of file