fix: 修复网页开启秘密验证无法播歌的问题 #149

This commit is contained in:
涵曦 2024-09-06 17:13:35 +00:00
parent faa452253c
commit 1ce324151e
3 changed files with 22 additions and 23 deletions

View File

@ -122,7 +122,8 @@ export XIAOMUSIC_SEARCH='bilisearch:'
pdm run xiaomusic.py
````
如果是开发前端界面,可以通过 <http://localhost:8090/docs> 查看有什么接口。
如果是开发前端界面,可以通过 <http://localhost:8090/docs>
查看有什么接口。目前的 web 控制台非常简陋,欢迎有兴趣的朋友帮忙实现一个漂亮的前端,需要什么接口可以随时提需求。
### 支持口令

View File

@ -72,7 +72,6 @@ def no_verification():
app = FastAPI(
lifespan=app_lifespan,
version=__version__,
dependencies=[Depends(verification)],
)
@ -96,19 +95,19 @@ def HttpInit(_xiaomusic):
@app.get("/")
async def read_index():
async def read_index(Verifcation=Depends(verification)):
folder = os.path.dirname(__file__)
return FileResponse(f"{folder}/static/index.html")
@app.get("/getversion")
def getversion():
def getversion(Verifcation=Depends(verification)):
log.debug("getversion %s", __version__)
return {"version": __version__}
@app.get("/getvolume")
async def getvolume(did: str = ""):
async def getvolume(did: str = "", Verifcation=Depends(verification)):
if not xiaomusic.did_exist(did):
return {"volume": 0}
@ -122,7 +121,7 @@ class DidVolume(BaseModel):
@app.post("/setvolume")
async def setvolume(data: DidVolume):
async def setvolume(data: DidVolume, Verifcation=Depends(verification)):
did = data.did
volume = data.volume
if not xiaomusic.did_exist(did):
@ -134,12 +133,12 @@ async def setvolume(data: DidVolume):
@app.get("/searchmusic")
def searchmusic(name: str = ""):
def searchmusic(name: str = "", Verifcation=Depends(verification)):
return xiaomusic.searchmusic(name)
@app.get("/playingmusic")
def playingmusic(did: str = ""):
def playingmusic(did: str = "", Verifcation=Depends(verification)):
if not xiaomusic.did_exist(did):
return {"ret": "Did not exist"}
@ -158,7 +157,7 @@ class DidCmd(BaseModel):
@app.post("/cmd")
async def do_cmd(data: DidCmd):
async def do_cmd(data: DidCmd, Verifcation=Depends(verification)):
did = data.did
cmd = data.cmd
log.info(f"docmd. did:{did} cmd:{cmd}")
@ -177,7 +176,7 @@ async def do_cmd(data: DidCmd):
@app.get("/getsetting")
async def getsetting(need_device_list: bool = False):
async def getsetting(need_device_list: bool = False, Verifcation=Depends(verification)):
config = xiaomusic.getconfig()
data = asdict(config)
if need_device_list:
@ -188,7 +187,7 @@ async def getsetting(need_device_list: bool = False):
@app.post("/savesetting")
async def savesetting(request: Request):
async def savesetting(request: Request, Verifcation=Depends(verification)):
try:
data_json = await request.body()
data = json.loads(data_json.decode("utf-8"))
@ -207,7 +206,7 @@ async def musiclist(Verifcation=Depends(verification)):
@app.get("/curplaylist")
async def curplaylist(did: str = ""):
async def curplaylist(did: str = "", Verifcation=Depends(verification)):
if not xiaomusic.did_exist(did):
return ""
return xiaomusic.get_cur_play_list(did)
@ -218,7 +217,7 @@ class MusicItem(BaseModel):
@app.post("/delmusic")
def delmusic(data: MusicItem):
def delmusic(data: MusicItem, Verifcation=Depends(verification)):
log.info(data)
xiaomusic.del_music(data.name)
return "success"
@ -229,7 +228,7 @@ class UrlInfo(BaseModel):
@app.post("/downloadjson")
async def downloadjson(data: UrlInfo):
async def downloadjson(data: UrlInfo, Verifcation=Depends(verification)):
log.info(data)
url = data.url
content = ""
@ -277,7 +276,7 @@ def downloadlog(Verifcation=Depends(verification)):
@app.get("/playurl")
async def playurl(did: str, url: str):
async def playurl(did: str, url: str, Verifcation=Depends(verification)):
if not xiaomusic.did_exist(did):
return {"ret": "Did not exist"}
@ -286,7 +285,7 @@ async def playurl(did: str, url: str):
@app.post("/debug_play_by_music_url")
async def debug_play_by_music_url(request: Request):
async def debug_play_by_music_url(request: Request, Verifcation=Depends(verification)):
try:
data = await request.body()
data_dict = json.loads(data.decode("utf-8"))

View File

@ -90,12 +90,6 @@ var vConsole = new window.VConsole();
<label for="proxy">XIAOMUSIC_PROXY(ytsearch需要):</label>
<input id="proxy" type="text" placeholder="http://192.168.2.5:8080"></input>
<label for="disable_httpauth">关闭密码验证:</label>
<select id="disable_httpauth">
<option value="true" selected>true</option>
<option value="false">false</option>
</select>
<label for="remove_id3tag">去除MP3 ID3v2和填充减少播放前延迟:</label>
<select id="remove_id3tag">
<option value="true">true</option>
@ -108,6 +102,11 @@ var vConsole = new window.VConsole();
<option value="false" selected>false</option>
</select>
<label for="disable_httpauth">关闭密码验证:</label>
<select id="disable_httpauth">
<option value="true" selected>true</option>
<option value="false">false</option>
</select>
<label for="httpauth_username">web控制台账户:</label>
<input id="httpauth_username" type="text" value=""></input>
<label for="httpauth_password">web控制台密码:</label>