fix: 修复网页开启秘密验证无法播歌的问题 #149
This commit is contained in:
parent
faa452253c
commit
1ce324151e
@ -122,7 +122,8 @@ export XIAOMUSIC_SEARCH='bilisearch:'
|
|||||||
pdm run xiaomusic.py
|
pdm run xiaomusic.py
|
||||||
````
|
````
|
||||||
|
|
||||||
如果是开发前端界面,可以通过 <http://localhost:8090/docs> 查看有什么接口。
|
如果是开发前端界面,可以通过 <http://localhost:8090/docs>
|
||||||
|
查看有什么接口。目前的 web 控制台非常简陋,欢迎有兴趣的朋友帮忙实现一个漂亮的前端,需要什么接口可以随时提需求。
|
||||||
|
|
||||||
### 支持口令
|
### 支持口令
|
||||||
|
|
||||||
|
@ -72,7 +72,6 @@ def no_verification():
|
|||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
lifespan=app_lifespan,
|
lifespan=app_lifespan,
|
||||||
version=__version__,
|
version=__version__,
|
||||||
dependencies=[Depends(verification)],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -96,19 +95,19 @@ def HttpInit(_xiaomusic):
|
|||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
async def read_index():
|
async def read_index(Verifcation=Depends(verification)):
|
||||||
folder = os.path.dirname(__file__)
|
folder = os.path.dirname(__file__)
|
||||||
return FileResponse(f"{folder}/static/index.html")
|
return FileResponse(f"{folder}/static/index.html")
|
||||||
|
|
||||||
|
|
||||||
@app.get("/getversion")
|
@app.get("/getversion")
|
||||||
def getversion():
|
def getversion(Verifcation=Depends(verification)):
|
||||||
log.debug("getversion %s", __version__)
|
log.debug("getversion %s", __version__)
|
||||||
return {"version": __version__}
|
return {"version": __version__}
|
||||||
|
|
||||||
|
|
||||||
@app.get("/getvolume")
|
@app.get("/getvolume")
|
||||||
async def getvolume(did: str = ""):
|
async def getvolume(did: str = "", Verifcation=Depends(verification)):
|
||||||
if not xiaomusic.did_exist(did):
|
if not xiaomusic.did_exist(did):
|
||||||
return {"volume": 0}
|
return {"volume": 0}
|
||||||
|
|
||||||
@ -122,7 +121,7 @@ class DidVolume(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/setvolume")
|
@app.post("/setvolume")
|
||||||
async def setvolume(data: DidVolume):
|
async def setvolume(data: DidVolume, Verifcation=Depends(verification)):
|
||||||
did = data.did
|
did = data.did
|
||||||
volume = data.volume
|
volume = data.volume
|
||||||
if not xiaomusic.did_exist(did):
|
if not xiaomusic.did_exist(did):
|
||||||
@ -134,12 +133,12 @@ async def setvolume(data: DidVolume):
|
|||||||
|
|
||||||
|
|
||||||
@app.get("/searchmusic")
|
@app.get("/searchmusic")
|
||||||
def searchmusic(name: str = ""):
|
def searchmusic(name: str = "", Verifcation=Depends(verification)):
|
||||||
return xiaomusic.searchmusic(name)
|
return xiaomusic.searchmusic(name)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/playingmusic")
|
@app.get("/playingmusic")
|
||||||
def playingmusic(did: str = ""):
|
def playingmusic(did: str = "", Verifcation=Depends(verification)):
|
||||||
if not xiaomusic.did_exist(did):
|
if not xiaomusic.did_exist(did):
|
||||||
return {"ret": "Did not exist"}
|
return {"ret": "Did not exist"}
|
||||||
|
|
||||||
@ -158,7 +157,7 @@ class DidCmd(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/cmd")
|
@app.post("/cmd")
|
||||||
async def do_cmd(data: DidCmd):
|
async def do_cmd(data: DidCmd, Verifcation=Depends(verification)):
|
||||||
did = data.did
|
did = data.did
|
||||||
cmd = data.cmd
|
cmd = data.cmd
|
||||||
log.info(f"docmd. did:{did} cmd:{cmd}")
|
log.info(f"docmd. did:{did} cmd:{cmd}")
|
||||||
@ -177,7 +176,7 @@ async def do_cmd(data: DidCmd):
|
|||||||
|
|
||||||
|
|
||||||
@app.get("/getsetting")
|
@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()
|
config = xiaomusic.getconfig()
|
||||||
data = asdict(config)
|
data = asdict(config)
|
||||||
if need_device_list:
|
if need_device_list:
|
||||||
@ -188,7 +187,7 @@ async def getsetting(need_device_list: bool = False):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/savesetting")
|
@app.post("/savesetting")
|
||||||
async def savesetting(request: Request):
|
async def savesetting(request: Request, Verifcation=Depends(verification)):
|
||||||
try:
|
try:
|
||||||
data_json = await request.body()
|
data_json = await request.body()
|
||||||
data = json.loads(data_json.decode("utf-8"))
|
data = json.loads(data_json.decode("utf-8"))
|
||||||
@ -207,7 +206,7 @@ async def musiclist(Verifcation=Depends(verification)):
|
|||||||
|
|
||||||
|
|
||||||
@app.get("/curplaylist")
|
@app.get("/curplaylist")
|
||||||
async def curplaylist(did: str = ""):
|
async def curplaylist(did: str = "", Verifcation=Depends(verification)):
|
||||||
if not xiaomusic.did_exist(did):
|
if not xiaomusic.did_exist(did):
|
||||||
return ""
|
return ""
|
||||||
return xiaomusic.get_cur_play_list(did)
|
return xiaomusic.get_cur_play_list(did)
|
||||||
@ -218,7 +217,7 @@ class MusicItem(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/delmusic")
|
@app.post("/delmusic")
|
||||||
def delmusic(data: MusicItem):
|
def delmusic(data: MusicItem, Verifcation=Depends(verification)):
|
||||||
log.info(data)
|
log.info(data)
|
||||||
xiaomusic.del_music(data.name)
|
xiaomusic.del_music(data.name)
|
||||||
return "success"
|
return "success"
|
||||||
@ -229,7 +228,7 @@ class UrlInfo(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/downloadjson")
|
@app.post("/downloadjson")
|
||||||
async def downloadjson(data: UrlInfo):
|
async def downloadjson(data: UrlInfo, Verifcation=Depends(verification)):
|
||||||
log.info(data)
|
log.info(data)
|
||||||
url = data.url
|
url = data.url
|
||||||
content = ""
|
content = ""
|
||||||
@ -277,7 +276,7 @@ def downloadlog(Verifcation=Depends(verification)):
|
|||||||
|
|
||||||
|
|
||||||
@app.get("/playurl")
|
@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):
|
if not xiaomusic.did_exist(did):
|
||||||
return {"ret": "Did not exist"}
|
return {"ret": "Did not exist"}
|
||||||
|
|
||||||
@ -286,7 +285,7 @@ async def playurl(did: str, url: str):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/debug_play_by_music_url")
|
@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:
|
try:
|
||||||
data = await request.body()
|
data = await request.body()
|
||||||
data_dict = json.loads(data.decode("utf-8"))
|
data_dict = json.loads(data.decode("utf-8"))
|
||||||
|
@ -90,12 +90,6 @@ var vConsole = new window.VConsole();
|
|||||||
<label for="proxy">XIAOMUSIC_PROXY(ytsearch需要):</label>
|
<label for="proxy">XIAOMUSIC_PROXY(ytsearch需要):</label>
|
||||||
<input id="proxy" type="text" placeholder="http://192.168.2.5:8080"></input>
|
<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>
|
<label for="remove_id3tag">去除MP3 ID3v2和填充,减少播放前延迟:</label>
|
||||||
<select id="remove_id3tag">
|
<select id="remove_id3tag">
|
||||||
<option value="true">true</option>
|
<option value="true">true</option>
|
||||||
@ -108,6 +102,11 @@ var vConsole = new window.VConsole();
|
|||||||
<option value="false" selected>false</option>
|
<option value="false" selected>false</option>
|
||||||
</select>
|
</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>
|
<label for="httpauth_username">web控制台账户:</label>
|
||||||
<input id="httpauth_username" type="text" value=""></input>
|
<input id="httpauth_username" type="text" value=""></input>
|
||||||
<label for="httpauth_password">web控制台密码:</label>
|
<label for="httpauth_password">web控制台密码:</label>
|
||||||
|
Loading…
Reference in New Issue
Block a user