diff --git a/xiaomusic/api/routers/music.py b/xiaomusic/api/routers/music.py index fe932d3..659e15d 100644 --- a/xiaomusic/api/routers/music.py +++ b/xiaomusic/api/routers/music.py @@ -1,7 +1,7 @@ """音乐管理路由""" -import json import base64 +import json import urllib.parse from fastapi import ( @@ -11,7 +11,6 @@ from fastapi import ( Query, Request, ) - from fastapi.responses import RedirectResponse from xiaomusic.api.dependencies import ( @@ -35,6 +34,8 @@ def searchmusic(name: str = "", Verifcation=Depends(verification)): """======================在线搜索相关接口=============================""" + + @router.get("/api/search/online") async def search_online_music( keyword: str = Query(..., description="搜索关键词"), @@ -57,7 +58,7 @@ async def search_online_music( @router.get("/api/proxy/real-url") async def get_real_music_url( - url: str = Query(..., description="原始url"), Verifcation=Depends(verification) + url: str = Query(..., description="原始url"), Verifcation=Depends(verification) ): """通过服务端代理获取真实的URL,不止是音频url,可能还有图片url""" try: @@ -74,8 +75,8 @@ async def get_real_music_url( @router.get("/api/proxy/plugin-url") async def get_plugin_source_url( - data: str = Query(..., description="json对象压缩的base64"), - Verifcation=Depends(verification), + data: str = Query(..., description="json对象压缩的base64"), + Verifcation=Depends(verification), ): try: # 获取请求数据 @@ -100,8 +101,8 @@ async def get_plugin_source_url( @router.get("/api/proxy/openapi-url") async def get_openapi_source_url( - urlb64: str = Query(..., description="原始url压缩的base64"), - Verifcation=Depends(verification), + urlb64: str = Query(..., description="原始url压缩的base64"), + Verifcation=Depends(verification), ): try: # 将Base64编码的URL解码为字符串 @@ -179,6 +180,7 @@ async def device_push_list(request: Request, Verifcation=Depends(verification)): except Exception as e: return {"success": False, "error": str(e)} + """======================在线搜索相关接口END=============================""" diff --git a/xiaomusic/music_url.py b/xiaomusic/music_url.py index 3e50306..4c37a7d 100644 --- a/xiaomusic/music_url.py +++ b/xiaomusic/music_url.py @@ -4,7 +4,6 @@ """ import base64 -import json import math import urllib.parse diff --git a/xiaomusic/online_music.py b/xiaomusic/online_music.py index 77acdec..010296f 100644 --- a/xiaomusic/online_music.py +++ b/xiaomusic/online_music.py @@ -4,9 +4,9 @@ """ import asyncio -import json import base64 import ipaddress +import json import socket from urllib.parse import urlparse @@ -104,7 +104,7 @@ class OnlineMusicService: return result_data async def get_music_list_mf( - self, plugin="all", keyword="", artist="", page=1, limit=20, **kwargs + self, plugin="all", keyword="", artist="", page=1, limit=20, **kwargs ): self.log.info("通过MusicFree插件搜索音乐列表!") """ @@ -226,7 +226,7 @@ class OnlineMusicService: # 处理推送的歌单 def _handle_music_list( - self, song_list=None, list_name="_online_play", append=False + self, song_list=None, list_name="_online_play", append=False ): """ 数据转换:将外部歌单格式转换为后端支持的格式 @@ -249,7 +249,9 @@ class OnlineMusicService: return {"success": False, "error": "没有有效的歌曲可以添加"} music_library = self.xiaomusic.music_library() # 更新配置中的音乐歌单Json - music_library.update_music_list_json(list_name, converted_music_list, append) + music_library.update_music_list_json( + list_name, converted_music_list, append + ) # 重新生成音乐列表 music_library.gen_all_music_list() except Exception as e: @@ -282,7 +284,7 @@ class OnlineMusicService: # 处理推送的歌单并播放 async def push_music_list_play( - self, did="web_device", song_list=None, list_name="_online_play", **kwargs + self, did="web_device", song_list=None, list_name="_online_play", **kwargs ): """ 处理推送的歌单信息 -> 添加歌单 -> 播放歌单 @@ -401,9 +403,7 @@ class OnlineMusicService: def _get_openapi_proxy_url(self, origin_url): """获取OpenApi源代理URL""" urlb64 = base64.b64encode(origin_url.encode("utf-8")).decode("utf-8") - proxy_url = ( - f"{self.xiaomusic.hostname}:{self.xiaomusic.public_port}/api/proxy/openapi-url?urlb64={urlb64}" - ) + proxy_url = f"{self.xiaomusic.hostname}:{self.xiaomusic.public_port}/api/proxy/openapi-url?urlb64={urlb64}" self.log.info(f"Using proxy url: {proxy_url}") return proxy_url @@ -411,9 +411,7 @@ class OnlineMusicService: """获取插件源代理URL""" origin_data = json.dumps(origin_data) datab64 = base64.b64encode(origin_data.encode("utf-8")).decode("utf-8") - plugin_source_url = ( - f"{self.xiaomusic.hostname}:{self.xiaomusic.public_port}/api/proxy/plugin-url?data={datab64}" - ) + plugin_source_url = f"{self.xiaomusic.hostname}:{self.xiaomusic.public_port}/api/proxy/plugin-url?data={datab64}" self.log.info(f"plugin_source_url : {plugin_source_url}") return plugin_source_url diff --git a/xiaomusic/utils/openai_utils.py b/xiaomusic/utils/openai_utils.py index 8becd47..c4343cf 100644 --- a/xiaomusic/utils/openai_utils.py +++ b/xiaomusic/utils/openai_utils.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 """用于AI大模型调用的工具类""" + import asyncio import json import logging diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index 88b0afa..f44d164 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -633,10 +633,8 @@ class XiaoMusic: self._music_library.gen_all_music_list() self.update_all_playlist() - # ===========================在线搜索函数================================ - def default_url(self): """委托给 online_music_service""" return self._online_music_service.default_url() @@ -686,9 +684,7 @@ class XiaoMusic: # 追加歌手歌曲 async def add_singer_song(self, list_name, name): """委托给 online_music_service""" - return await self._online_music_service.add_singer_song( - list_name, name - ) + return await self._online_music_service.add_singer_song(list_name, name) # 在线搜索搜索最符合的一首歌并播放 async def search_top_one_play(self, did, search_key, name): @@ -700,16 +696,12 @@ class XiaoMusic: # 在线播放:在线搜索、播放 async def online_play(self, did="", arg1="", **kwargs): """委托给 online_music_service""" - return await self._online_music_service.online_play( - did, arg1, **kwargs - ) + return await self._online_music_service.online_play(did, arg1, **kwargs) # 播放歌手:在线搜索歌手并存为列表播放 async def singer_play(self, did="", arg1="", **kwargs): """委托给 online_music_service""" - return await self._online_music_service.singer_play( - did, arg1, **kwargs - ) + return await self._online_music_service.singer_play(did, arg1, **kwargs) # 处理推送的歌单并播放 async def push_music_list_play(self, did, song_list, list_name): @@ -795,7 +787,6 @@ class XiaoMusic: did, name, search_key, exact=False, update_cur_list=False ) - # 后台搜索播放 async def do_play( self, did, name, search_key="", exact=False, update_cur_list=False