diff --git a/xiaomusic/config.py b/xiaomusic/config.py index 3e9b45f46..7ae848e6a 100644 --- a/xiaomusic/config.py +++ b/xiaomusic/config.py @@ -81,6 +81,8 @@ class Config: ) httpauth_username: str = os.getenv("XIAOMUSIC_HTTPAUTH_USERNAME", "admin") httpauth_password: str = os.getenv("XIAOMUSIC_HTTPAUTH_PASSWORD", "admin") + music_list_url: str = os.getenv("XIAOMUSIC_MUSIC_LIST_URL", "") + music_list_json: str = os.getenv("XIAOMUSIC_MUSIC_LIST_JSON", "") def __post_init__(self) -> None: if self.proxy: diff --git a/xiaomusic/httpserver.py b/xiaomusic/httpserver.py index 4629429b3..92ad4975d 100644 --- a/xiaomusic/httpserver.py +++ b/xiaomusic/httpserver.py @@ -12,6 +12,9 @@ from xiaomusic.config import ( KEY_WORD_DICT, ) +from xiaomusic.utils import ( + downloadfile, +) app = Flask(__name__) auth = HTTPBasicAuth() @@ -109,6 +112,8 @@ async def getsetting(): "mi_hardware_list": alldevices["hardware_list"], "xiaomusic_search": config.search_prefix, "xiaomusic_proxy": config.proxy, + "xiaomusic_music_list_url": config.music_list_url, + "xiaomusic_music_list_json": config.music_list_json, } return data @@ -143,6 +148,18 @@ def delmusic(): return "success" +@app.route("/downloadjson", methods=["POST"]) +@auth.login_required +def downloadjson(): + data = request.get_json() + log.info(data) + ret, content = downloadfile(data["url"]) + return { + "ret": ret, + "content": content, + } + + def static_path_handler(filename): log.debug(filename) log.debug(static_path) diff --git a/xiaomusic/static/setting.html b/xiaomusic/static/setting.html index 45ada77f6..3564c0ee2 100644 --- a/xiaomusic/static/setting.html +++ b/xiaomusic/static/setting.html @@ -22,9 +22,14 @@

小爱音箱设置面板(版本未知)

+ + + +
+