mirror of
https://github.com/hanxi/xiaomusic.git
synced 2026-03-15 08:13:16 +08:00
重构:api 接口验证统一化
This commit is contained in:
@@ -24,11 +24,11 @@ from xiaomusic.api.models import (
|
||||
MusicItem,
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(dependencies=[Depends(verification)])
|
||||
|
||||
|
||||
@router.get("/searchmusic")
|
||||
def searchmusic(name: str = "", Verifcation=Depends(verification)):
|
||||
def searchmusic(name: str = ""):
|
||||
"""搜索音乐"""
|
||||
return xiaomusic.searchmusic(name)
|
||||
|
||||
@@ -42,7 +42,6 @@ async def search_online_music(
|
||||
plugin: str = Query("all", description="指定插件名称,all表示搜索所有插件"),
|
||||
page: int = Query(1, description="页码"),
|
||||
limit: int = Query(20, description="每页数量"),
|
||||
Verifcation=Depends(verification),
|
||||
):
|
||||
"""在线音乐搜索API"""
|
||||
try:
|
||||
@@ -57,9 +56,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)
|
||||
):
|
||||
async def get_real_music_url(url: str = Query(..., description="原始url")):
|
||||
"""通过服务端代理获取真实的URL,不止是音频url,可能还有图片url"""
|
||||
try:
|
||||
# 获取真实的URL
|
||||
@@ -76,7 +73,6 @@ 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),
|
||||
):
|
||||
try:
|
||||
# 获取请求数据
|
||||
@@ -103,7 +99,7 @@ async def get_plugin_source_url(
|
||||
|
||||
|
||||
@router.post("/api/play/getMediaSource")
|
||||
async def get_media_source(request: Request, Verifcation=Depends(verification)):
|
||||
async def get_media_source(request: Request):
|
||||
"""获取音乐真实播放URL"""
|
||||
try:
|
||||
# 获取请求数据
|
||||
@@ -115,7 +111,7 @@ async def get_media_source(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/play/getLyric")
|
||||
async def get_media_lyric(request: Request, Verifcation=Depends(verification)):
|
||||
async def get_media_lyric(request: Request):
|
||||
"""获取音乐歌词"""
|
||||
try:
|
||||
# 获取请求数据
|
||||
@@ -127,7 +123,7 @@ async def get_media_lyric(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/device/pushUrl")
|
||||
async def device_push_url(request: Request, Verifcation=Depends(verification)):
|
||||
async def device_push_url(request: Request):
|
||||
"""推送url给设备端播放"""
|
||||
try:
|
||||
# 获取请求数据
|
||||
@@ -146,7 +142,7 @@ async def device_push_url(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/device/pushList")
|
||||
async def device_push_list(request: Request, Verifcation=Depends(verification)):
|
||||
async def device_push_list(request: Request):
|
||||
"""WEB前端推送歌单给设备端播放"""
|
||||
try:
|
||||
# 获取请求数据
|
||||
@@ -166,7 +162,7 @@ async def device_push_list(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.get("/playingmusic")
|
||||
def playingmusic(did: str = "", Verifcation=Depends(verification)):
|
||||
def playingmusic(did: str = ""):
|
||||
"""当前播放音乐"""
|
||||
if not xiaomusic.did_exist(did):
|
||||
return {"ret": "Did not exist"}
|
||||
@@ -187,15 +183,13 @@ def playingmusic(did: str = "", Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.get("/musiclist")
|
||||
async def musiclist(Verifcation=Depends(verification)):
|
||||
async def musiclist():
|
||||
"""音乐列表"""
|
||||
return xiaomusic.get_music_list()
|
||||
|
||||
|
||||
@router.get("/musicinfo")
|
||||
async def musicinfo(
|
||||
name: str, musictag: bool = False, Verifcation=Depends(verification)
|
||||
):
|
||||
async def musicinfo(name: str, musictag: bool = False):
|
||||
"""音乐信息"""
|
||||
url, _ = await xiaomusic._music_library.get_music_url(name)
|
||||
info = {
|
||||
@@ -212,7 +206,6 @@ async def musicinfo(
|
||||
async def musicinfos(
|
||||
name: list[str] = Query(None),
|
||||
musictag: bool = False,
|
||||
Verifcation=Depends(verification),
|
||||
):
|
||||
"""批量音乐信息"""
|
||||
ret = []
|
||||
@@ -229,14 +222,14 @@ async def musicinfos(
|
||||
|
||||
|
||||
@router.post("/setmusictag")
|
||||
async def setmusictag(info: MusicInfoObj, Verifcation=Depends(verification)):
|
||||
async def setmusictag(info: MusicInfoObj):
|
||||
"""设置音乐标签"""
|
||||
ret = xiaomusic._music_library.set_music_tag(info.musicname, info)
|
||||
return {"ret": ret}
|
||||
|
||||
|
||||
@router.post("/delmusic")
|
||||
async def delmusic(data: MusicItem, Verifcation=Depends(verification)):
|
||||
async def delmusic(data: MusicItem):
|
||||
"""删除音乐"""
|
||||
log.info(data)
|
||||
await xiaomusic.del_music(data.name)
|
||||
@@ -244,7 +237,7 @@ async def delmusic(data: MusicItem, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/playmusic")
|
||||
async def playmusic(data: DidPlayMusic, Verifcation=Depends(verification)):
|
||||
async def playmusic(data: DidPlayMusic):
|
||||
"""播放音乐"""
|
||||
did = data.did
|
||||
musicname = data.musicname
|
||||
|
||||
@@ -17,11 +17,11 @@ from xiaomusic.api.models import (
|
||||
PlayListUpdateObj,
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(dependencies=[Depends(verification)])
|
||||
|
||||
|
||||
@router.get("/curplaylist")
|
||||
async def curplaylist(did: str = "", Verifcation=Depends(verification)):
|
||||
async def curplaylist(did: str = ""):
|
||||
"""当前播放列表"""
|
||||
if not xiaomusic.did_exist(did):
|
||||
return ""
|
||||
@@ -29,7 +29,7 @@ async def curplaylist(did: str = "", Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/playmusiclist")
|
||||
async def playmusiclist(data: DidPlayMusicList, Verifcation=Depends(verification)):
|
||||
async def playmusiclist(data: DidPlayMusicList):
|
||||
"""播放音乐列表"""
|
||||
did = data.did
|
||||
listname = data.listname
|
||||
@@ -43,7 +43,7 @@ async def playmusiclist(data: DidPlayMusicList, Verifcation=Depends(verification
|
||||
|
||||
|
||||
@router.post("/playlistadd")
|
||||
async def playlistadd(data: PlayListObj, Verifcation=Depends(verification)):
|
||||
async def playlistadd(data: PlayListObj):
|
||||
"""新增歌单"""
|
||||
ret = xiaomusic.play_list_add(data.name)
|
||||
if ret:
|
||||
@@ -52,7 +52,7 @@ async def playlistadd(data: PlayListObj, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/playlistdel")
|
||||
async def playlistdel(data: PlayListObj, Verifcation=Depends(verification)):
|
||||
async def playlistdel(data: PlayListObj):
|
||||
"""移除歌单"""
|
||||
ret = xiaomusic.play_list_del(data.name)
|
||||
if ret:
|
||||
@@ -61,9 +61,7 @@ async def playlistdel(data: PlayListObj, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/playlistupdatename")
|
||||
async def playlistupdatename(
|
||||
data: PlayListUpdateObj, Verifcation=Depends(verification)
|
||||
):
|
||||
async def playlistupdatename(data: PlayListUpdateObj):
|
||||
"""修改歌单名字"""
|
||||
ret = xiaomusic.play_list_update_name(data.oldname, data.newname)
|
||||
if ret:
|
||||
@@ -72,7 +70,7 @@ async def playlistupdatename(
|
||||
|
||||
|
||||
@router.get("/playlistnames")
|
||||
async def getplaylistnames(Verifcation=Depends(verification)):
|
||||
async def getplaylistnames():
|
||||
"""获取所有自定义歌单"""
|
||||
names = xiaomusic.get_play_list_names()
|
||||
log.info(f"names {names}")
|
||||
@@ -83,7 +81,7 @@ async def getplaylistnames(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/playlistaddmusic")
|
||||
async def playlistaddmusic(data: PlayListMusicObj, Verifcation=Depends(verification)):
|
||||
async def playlistaddmusic(data: PlayListMusicObj):
|
||||
"""歌单新增歌曲"""
|
||||
ret = xiaomusic.play_list_add_music(data.name, data.music_list)
|
||||
if ret:
|
||||
@@ -92,7 +90,7 @@ async def playlistaddmusic(data: PlayListMusicObj, Verifcation=Depends(verificat
|
||||
|
||||
|
||||
@router.post("/playlistdelmusic")
|
||||
async def playlistdelmusic(data: PlayListMusicObj, Verifcation=Depends(verification)):
|
||||
async def playlistdelmusic(data: PlayListMusicObj):
|
||||
"""歌单移除歌曲"""
|
||||
ret = xiaomusic.play_list_del_music(data.name, data.music_list)
|
||||
if ret:
|
||||
@@ -101,9 +99,7 @@ async def playlistdelmusic(data: PlayListMusicObj, Verifcation=Depends(verificat
|
||||
|
||||
|
||||
@router.post("/playlistupdatemusic")
|
||||
async def playlistupdatemusic(
|
||||
data: PlayListMusicObj, Verifcation=Depends(verification)
|
||||
):
|
||||
async def playlistupdatemusic(data: PlayListMusicObj):
|
||||
"""歌单更新歌曲"""
|
||||
ret = xiaomusic.play_list_update_music(data.name, data.music_list)
|
||||
if ret:
|
||||
@@ -112,7 +108,7 @@ async def playlistupdatemusic(
|
||||
|
||||
|
||||
@router.get("/playlistmusics")
|
||||
async def getplaylist(name: str, Verifcation=Depends(verification)):
|
||||
async def getplaylist(name: str):
|
||||
"""获取歌单中所有歌曲"""
|
||||
ret, musics = xiaomusic.play_list_musics(name)
|
||||
return {
|
||||
|
||||
@@ -18,13 +18,12 @@ from xiaomusic.api.dependencies import (
|
||||
xiaomusic,
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(dependencies=[Depends(verification)])
|
||||
|
||||
|
||||
@router.get("/api/js-plugins")
|
||||
def get_js_plugins(
|
||||
enabled_only: bool = Query(False, description="是否只返回启用的插件"),
|
||||
Verifcation=Depends(verification),
|
||||
):
|
||||
"""获取插件列表"""
|
||||
try:
|
||||
@@ -45,7 +44,7 @@ def get_js_plugins(
|
||||
|
||||
|
||||
@router.put("/api/js-plugins/{plugin_name}/enable")
|
||||
def enable_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
def enable_js_plugin(plugin_name: str):
|
||||
"""启用插件"""
|
||||
try:
|
||||
if (
|
||||
@@ -62,7 +61,7 @@ def enable_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.put("/api/js-plugins/{plugin_name}/disable")
|
||||
def disable_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
def disable_js_plugin(plugin_name: str):
|
||||
"""禁用插件"""
|
||||
try:
|
||||
if (
|
||||
@@ -79,7 +78,7 @@ def disable_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.delete("/api/js-plugins/{plugin_name}/uninstall")
|
||||
def uninstall_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
def uninstall_js_plugin(plugin_name: str):
|
||||
"""卸载插件"""
|
||||
try:
|
||||
if (
|
||||
@@ -96,9 +95,7 @@ def uninstall_js_plugin(plugin_name: str, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/js-plugins/upload")
|
||||
async def upload_js_plugin(
|
||||
file: UploadFile = File(...), verification_dep=Depends(verification)
|
||||
):
|
||||
async def upload_js_plugin(file: UploadFile = File(...)):
|
||||
"""上传 JS 插件"""
|
||||
try:
|
||||
# 验证文件扩展名
|
||||
@@ -154,7 +151,7 @@ async def upload_js_plugin(
|
||||
|
||||
|
||||
@router.get("/api/openapi/load")
|
||||
def get_openapi_info(Verifcation=Depends(verification)):
|
||||
def get_openapi_info():
|
||||
"""获取开放接口配置信息"""
|
||||
try:
|
||||
openapi_info = xiaomusic.js_plugin_manager.get_openapi_info()
|
||||
@@ -164,7 +161,7 @@ def get_openapi_info(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/openapi/toggle")
|
||||
def toggle_openapi(Verifcation=Depends(verification)):
|
||||
def toggle_openapi():
|
||||
"""开放接口状态切换"""
|
||||
try:
|
||||
return xiaomusic.js_plugin_manager.toggle_openapi()
|
||||
@@ -173,7 +170,7 @@ def toggle_openapi(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/openapi/updateUrl")
|
||||
async def update_openapi_url(request: Request, Verifcation=Depends(verification)):
|
||||
async def update_openapi_url(request: Request):
|
||||
"""更新开放接口地址"""
|
||||
try:
|
||||
request_json = await request.json()
|
||||
@@ -189,7 +186,7 @@ async def update_openapi_url(request: Request, Verifcation=Depends(verification)
|
||||
|
||||
|
||||
@router.get("/api/plugin-source/load")
|
||||
def get_plugin_source_info(Verifcation=Depends(verification)):
|
||||
def get_plugin_source_info():
|
||||
"""获取插件源配置信息"""
|
||||
try:
|
||||
plugin_source = xiaomusic.js_plugin_manager.get_plugin_source()
|
||||
@@ -199,7 +196,7 @@ def get_plugin_source_info(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/plugin-source/refresh")
|
||||
def refresh_plugin_source(Verifcation=Depends(verification)):
|
||||
def refresh_plugin_source():
|
||||
"""更新订阅源"""
|
||||
try:
|
||||
return xiaomusic.js_plugin_manager.refresh_plugin_source()
|
||||
@@ -208,7 +205,7 @@ def refresh_plugin_source(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/plugin-source/updateUrl")
|
||||
async def update_plugin_source(request: Request, Verifcation=Depends(verification)):
|
||||
async def update_plugin_source(request: Request):
|
||||
"""更新插件源地址"""
|
||||
try:
|
||||
request_json = await request.json()
|
||||
|
||||
@@ -44,11 +44,11 @@ from xiaomusic.utils.system_utils import (
|
||||
update_version,
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(dependencies=[Depends(verification)])
|
||||
|
||||
|
||||
@router.get("/")
|
||||
async def read_index(Verifcation=Depends(verification)):
|
||||
async def read_index():
|
||||
"""首页"""
|
||||
folder = os.path.dirname(
|
||||
os.path.dirname(os.path.dirname(__file__))
|
||||
@@ -57,14 +57,14 @@ async def read_index(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.get("/getversion")
|
||||
def getversion(Verifcation=Depends(verification)):
|
||||
def getversion():
|
||||
"""获取版本"""
|
||||
log.debug("getversion %s", __version__)
|
||||
return {"version": __version__}
|
||||
|
||||
|
||||
@router.get("/getsetting")
|
||||
async def getsetting(need_device_list: bool = False, Verifcation=Depends(verification)):
|
||||
async def getsetting(need_device_list: bool = False):
|
||||
"""获取设置"""
|
||||
config_data = xiaomusic.getconfig()
|
||||
data = asdict(config_data)
|
||||
@@ -78,7 +78,7 @@ async def getsetting(need_device_list: bool = False, Verifcation=Depends(verific
|
||||
|
||||
|
||||
@router.post("/savesetting")
|
||||
async def savesetting(request: Request, Verifcation=Depends(verification)):
|
||||
async def savesetting(request: Request):
|
||||
"""保存设置"""
|
||||
try:
|
||||
data_json = await request.body()
|
||||
@@ -104,7 +104,7 @@ async def savesetting(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/api/system/modifiysetting")
|
||||
async def modifiysetting(request: Request, Verifcation=Depends(verification)):
|
||||
async def modifiysetting(request: Request):
|
||||
"""修改部分设置"""
|
||||
try:
|
||||
data_json = await request.body()
|
||||
@@ -152,7 +152,7 @@ async def modifiysetting(request: Request, Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.get("/downloadlog")
|
||||
def downloadlog(Verifcation=Depends(verification)):
|
||||
def downloadlog():
|
||||
"""下载日志"""
|
||||
file_path = config.log_file
|
||||
if os.path.exists(file_path):
|
||||
@@ -184,7 +184,7 @@ def downloadlog(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.get("/latestversion")
|
||||
async def latest_version(Verifcation=Depends(verification)):
|
||||
async def latest_version():
|
||||
"""获取最新版本"""
|
||||
version = await get_latest_version("xiaomusic")
|
||||
if version:
|
||||
@@ -194,9 +194,7 @@ async def latest_version(Verifcation=Depends(verification)):
|
||||
|
||||
|
||||
@router.post("/updateversion")
|
||||
async def updateversion(
|
||||
version: str = "", lite: bool = True, Verifcation=Depends(verification)
|
||||
):
|
||||
async def updateversion(version: str = "", lite: bool = True):
|
||||
"""更新版本"""
|
||||
import asyncio
|
||||
|
||||
@@ -209,19 +207,19 @@ async def updateversion(
|
||||
|
||||
|
||||
@router.get("/docs", include_in_schema=False)
|
||||
async def get_swagger_documentation(Verifcation=Depends(verification)):
|
||||
async def get_swagger_documentation():
|
||||
"""Swagger 文档"""
|
||||
return get_swagger_ui_html(openapi_url="/openapi.json", title="docs")
|
||||
|
||||
|
||||
@router.get("/redoc", include_in_schema=False)
|
||||
async def get_redoc_documentation(Verifcation=Depends(verification)):
|
||||
async def get_redoc_documentation():
|
||||
"""ReDoc 文档"""
|
||||
return get_redoc_html(openapi_url="/openapi.json", title="docs")
|
||||
|
||||
|
||||
@router.get("/openapi.json", include_in_schema=False)
|
||||
async def openapi(Verifcation=Depends(verification)):
|
||||
async def openapi():
|
||||
"""OpenAPI 规范"""
|
||||
from xiaomusic.api.app import app
|
||||
|
||||
|
||||
Reference in New Issue
Block a user