HisAtri / LrcApi

A Flask API For StreamMusic
https://docs.lrc.cx
GNU General Public License v3.0
325 stars 29 forks source link

Internal Server Error #65

Open yangc-vip opened 1 month ago

yangc-vip commented 1 month ago

提交Issue之前,你应当知道:

问题描述

UNRAID下安装后启动成功。

访问/src正常

访问/jsonapi与/cover出现如下HTTP页面报错: Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

DOCKER日志显示:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte 2024-08-08 21:22:52,203 - ERROR - Exception on /jsonapi [GET] Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 399, in decorated_function rv = self._call_fn(f, *args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 175, in _call_fn return ensure_sync(fn)(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/lyrics.py", line 70, in lrc_json match require_auth(request=request): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/mod/auth/authentication.py", line 18, in require_auth cookie_key: str = cookie.cookie_key(user_cookie) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/mod/auth/cookie.py", line 33, in cookie_key plain_text = crypto.decrypt(cookie_string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/mod/auth/crypto.py", line 35, in decrypt return aes.decrypt(bytes.fromhex(data)).decode(encoding='utf-8') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte 2024-08-08 21:23:35,302 - ERROR - Exception on /cover [GET] Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 399, in decorated_function rv = self._call_fn(f, *args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 175, in _call_fn return ensure_sync(fn)(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/cover.py", line 37, in cover_api title = unquote_plus(request.args.get('title')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/urllib/parse.py", line 810, in unquote_plus string = string.replace('+', ' ') ^^^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'replace'

以下是安装过程显示:

执行命令 docker run -d --name='lrcapi' --net='bridge' -e TZ="Asia/Shanghai" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Yangc" -e HOST_CONTAINERNAME="lrcapi" -e 'API_AUTH'='111' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.webui='http://10.10.10.190:28883/' -l net.unraid.docker.icon='http://10.10.10.190:8081/LrcApi.png' -p '28883:28883/tcp' -v '/mnt/user/Movies/Movies/音乐/音乐/':'/music':'rw' 'hisatri/lrcapi:latest' 61ff165b3a9a99f21ab7f6d42e452d820b13393bfa78769312e08e00bf25fa8e

命令成功完成!

请求与响应

No response

日志文件

No response

系统信息

UNRAID 6.12.10

补充信息

No response

theturtle626 commented 3 weeks ago

同樣錯誤

HisAtri commented 3 weeks ago

关于第一个错误:

File "/app/mod/auth/crypto.py", line 35, in decrypt return aes.decrypt(bytes.fromhex(data)).decode(encoding='utf-8') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte

错误原因为之前没有指定cookie编码,现在指定为utf-8,则之前的cookie可能无法解码。如果是网页端访问时出现,请清除Cookie并重新登录,新的cookie理应不会出现此错误。

关于第二个错误:

封面接口在想办法了

HisAtri commented 3 weeks ago

第二个错误见 #52

bxb100 commented 3 weeks ago

@HisAtri 还有个问题就是 http://cn.lrc.cx 这个接口现在好像不可用, 而且 timeout 30s 是不是有点大了