From 7911023dedefa59303b6119f100226ebe831bb3b Mon Sep 17 00:00:00 2001 From: hisatri Date: Mon, 18 Nov 2024 18:29:10 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#92=20=E4=BF=AE=E5=A4=8D=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E8=AF=B7=E6=B1=82=E7=BC=BA=E5=B0=91content-t?= =?UTF-8?q?ype=E5=AF=BC=E8=87=B4=E7=9A=84=E6=AD=8C=E8=AF=8D=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/tag.py | 11 +++++++++-- mod/auth/__init__.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/api/tag.py b/api/tag.py index 2326d0a..a615761 100644 --- a/api/tag.py +++ b/api/tag.py @@ -1,4 +1,5 @@ import os +import json from . import * @@ -13,8 +14,14 @@ @app.route('/confirm', methods=['POST', 'PUT'], endpoint='set_tag_endpoint') @require_auth_decorator(permission='rw') def set_tag(): - music_data = request.json - audio_path = music_data.get("path") + try: + music_data_json: str = request.data.decode('utf-8') + music_data: dict = json.loads(music_data_json) + except json.JSONDecodeError: + return "Invalid JSON.", 422 + except UnicodeError: + return "Invalid encoding.", 422 + audio_path: str = music_data.get("path") if not audio_path: return "Missing 'path' key in JSON.", 422 debugger.log("info", f"Editing file {audio_path}") diff --git a/mod/auth/__init__.py b/mod/auth/__init__.py index 48c4ea7..ca83fdd 100644 --- a/mod/auth/__init__.py +++ b/mod/auth/__init__.py @@ -19,4 +19,4 @@ def wrapper(*args, **kwargs): return render_template_string(webui.error()), 401 return func(*args, **kwargs) return wrapper - return decorator \ No newline at end of file + return decorator