From b2a3cda7b52ac80183aace30fa4505c00e87c13b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B6=B5=E6=9B=A6?= Date: Tue, 25 Jun 2024 11:13:46 +0000 Subject: [PATCH] =?UTF-8?q?#78=20=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BD=91=E7=BB=9C=E6=AD=8C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/config.py | 2 + xiaomusic/httpserver.py | 17 +++++ xiaomusic/static/setting.html | 5 ++ xiaomusic/static/setting.js | 40 ++++++++++ xiaomusic/static/style.css | 6 ++ xiaomusic/utils.py | 48 ++++++++++++ xiaomusic/xiaomusic.py | 138 +++++++++++++++++++++++++--------- 7 files changed, 220 insertions(+), 36 deletions(-) diff --git a/xiaomusic/config.py b/xiaomusic/config.py index 3e9b45f..7ae848e 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 4629429..92ad497 100644 --- a/xiaomusic/httpserver.py +++ b/xiaomusic/httpserver.py @@ -12,6 +12,9 @@ from xiaomusic import ( 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 45ada77..3564c0e 100644 --- a/xiaomusic/static/setting.html +++ b/xiaomusic/static/setting.html @@ -22,9 +22,14 @@ + + + +
+