Code Monkey home page Code Monkey logo

lrcapi's Introduction

Statistics

Repositories

lrcapi's People

Contributors

fuckubuntu avatar ghacglogin avatar hisatri avatar maytom2016 avatar satomatsuzaka avatar w0330t avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

lrcapi's Issues

可否增加API获取到的歌词直接写入音乐文件标签

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

每次都要重新获取歌词,而且获取的比较慢,建议把API获取到的歌词直接写入音乐文件标签。

解决方案

可以在音流APP上api获取到的歌词写入到音乐源文件标签,比如在音流APP歌词显示哪里添加一个歌词嵌入按钮。

补充信息

No response

chore: docker构建流程存在异常 && deploy应采用更健壮的HTTPServer

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

  1. .dockerignore 文件配置错误,应该为 .dockerignore 而不是 dockerignore
  2. 代码使用了 python3.10+ 支持的 match...case... 特性,但基础镜像为 3.9.17 版本
  3. 服务部署建议采用兼容支持 wsgihttp 服务器替换 flash 自带的 DebugServer

解决方案

No response

补充信息

No response

500错误

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

2024-02-07 16:48:00,513 - ERROR - Exception on /jsonapi [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1455, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 869, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 867, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 852, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask_caching/init.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask_caching/init.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/app.py", line 159, in lrc_json
i = lrc.standard(i)
^^^^^^^^^^^^^^^
File "/app/mod/lrc.py", line 9, in standard
matches = pattern.findall(lrc_text)
^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: expected string or bytes-like object, got 'NoneType'

请求与响应

No response

日志文件

No response

系统信息

docker

补充信息

No response

windows安装Navidrome获取不到文件路径同名的 .lrc 文件

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

windows安装Navidrome获取不到文件路径同名的 .lrc 文件

解决方案

判断一下路径是否带有盘符,如果带就去掉

补充信息

No response

500错误Internal Server Error

docker部署后,访问 /lyrics?title=雨一直下
页面显示: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.

日志错误记录:
2023-11-15 09:53:50,438 - ERROR - Exception on /lyrics [GET] Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/usr/local/lib/python3.9/site-packages/flask_caching/__init__.py", line 404, in decorated_function rv = self._call_fn(f, *args, **kwargs) File "/usr/local/lib/python3.9/site-packages/flask_caching/__init__.py", line 180, in _call_fn return ensure_sync(fn)(*args, **kwargs) File "/app/app.py", line 84, in lyrics path = unquote_plus(request.args.get('path')) File "/usr/local/lib/python3.9/urllib/parse.py", line 799, in unquote_plus string = string.replace('+', ' ') AttributeError: 'NoneType' object has no attribute 'replace'

request song list

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

可以request 歌曲嗎? 就是如果我搜一個歌名或歌手名就會返回一個list, 然後就可以從中選擇歌詞就像lrclib一樣可以search

解决方案

No response

补充信息

No response

作者写的东西真不错,不过我有个问题想请教下,有关浏览器的同源安全策略

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

现在默认情况是严格模式,我做了个小玩意是使用H5音乐播放器Aplayer去调用这个API,发现当我请求的这个页面和API所在服务器不相同时,就会触发跨站安全策略禁止访问(严格模式),只有手动在_init_.py里面去修改v1_bp.config的响应包头才能让其访问,比方如下

@v1_bp.after_request
def add_custom_headers(response):
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response

当然,应该存在修改前端代码也可以修复这个问题,不过那样可能要去伪造请求源,感觉是不是正路,黑客行为。

我的问题是公开的api有必要做跨站访问限制吗?限制完就是禁止几乎一切的浏览器被动调用这个api,毕竟h5音乐播放器就是放在个人博客一类中,一般不会和api是同个站点。

个人认为应该是没有必要限制,原因是使用歌词api一般是主动要用的这个功能,差别无非就是客户端是浏览器还是音流app,他们在这个过程中角色都是一样的。

解决方案

建议放开同源限制。

补充信息

No response

是否可以设置通过二级路由访问,不然每个服务需要一个子域名

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

是否可以设置通过二级路由访问,不然每个服务需要一个子域名

解决方案

No response

补充信息

No response

有没有大佬教教我改成ttplayer可以用的歌词源

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

有没有大佬教教我改成ttplayer可以用的歌词源

解决方案

No response

补充信息

No response

为什么我按照文档拉取镜像并启动容器后在音流里面调用接口,无法获取歌手和封面图片呢,是这个api失效了吗

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

为什么我按照文档拉取镜像并启动容器后在音流里面调用接口,无法获取歌手和封面图片呢,是这个api失效了吗,我的命令行:
docker run -d -p 28883:28883 -v /mnt/nvme1-1/音乐:/mnt/nvme1-1/音乐 -e API_AUTH=xiaohaha1523 hisatri/lrcapi:latest

请求与响应

No response

日志文件

No response

系统信息

openwrt

补充信息

No response

流音封面接口covers与lrcapi的cover接口不一致,怎么破呀

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

流音封面接口covers与lrcapi的cover接口不一致,怎么破呀

请求与响应

cover

日志文件

系统信息

iOS

补充信息

No response

mod/search.py 中异步代码未正确实现异步操作

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

search.py 中创建的异步获取参数代码存在 bug,未实现异步请求目标接口。
通过以下提供的demoserver以及demorequest代码可验证。

# demo server
import time
from http.server import BaseHTTPRequestHandler, HTTPServer
from socketserver import ThreadingMixIn


class HTTPRequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        time.sleep(1)
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"Hello World")


class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
    pass


server = ThreadedHTTPServer(("localhost", 8000), HTTPRequestHandler)
server.serve_forever()
# demo request
import time
import asyncio
import requests


def sync_block_function():
    requests.get("http://127.0.0.1:8000")


async def async_request(index: int):
    print(f"开始请求: url{index}")
    loop = asyncio.get_running_loop()
    await loop.run_in_executor(None, sync_block_function)
    print(f"请求结束: url{index}")


async def sync_request(index: int):
    print(f"开始请求: url{index}")
    sync_block_function()
    print(f"请求结束: url{index}")


async def correctly(task_num: int):
    tasks = [asyncio.create_task(async_request(i)) for i in range(task_num)]
    await asyncio.wait(tasks)


async def incorrect(task_num: int):
    tasks = [asyncio.create_task(sync_request(i)) for i in range(task_num)]
    await asyncio.wait(tasks)


if __name__ == '__main__':
    s_time = time.time()
    asyncio.run(correctly(5))
    print(f"正确的耗时: {time.time() - s_time}")
    s_time = time.time()
    asyncio.run(incorrect(5))
    print(f"错误的耗时: {time.time() - s_time}")

请求与响应

No response

日志文件

# 简易测试 log
开始请求: url0
开始请求: url1
开始请求: url2
开始请求: url3
开始请求: url4
请求结束: url1
请求结束: url0
请求结束: url3
请求结束: url4
请求结束: url2
正确的耗时: 1.0444190502166748
开始请求: url0
请求结束: url0
开始请求: url1
请求结束: url1
开始请求: url2
请求结束: url2
开始请求: url3
请求结束: url3
开始请求: url4
请求结束: url4
错误的耗时: 5.05975604057312

系统信息

系统无关

补充信息

No response

Internal Server Error

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

  • 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

cn.lrc.cx不能用了

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

提示Connection to cn.lrc.cx 错误。

请求与响应

No response

日志文件

No response

系统信息

debian12,python部署

补充信息

No response

多个版本报错无法使用

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

试了1.5.1/1.5.2/1.5.3都报同样的错误

请求与响应

No response

日志文件

2024-06-09 21:58:17,453 - ERROR - Exception on /jsonapi [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, 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 95, in lrc_json
lyrics_list = searchx.search_all(title, artist, album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/init.py", line 22, in search_all
future.result()
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/init.py", line 11, in request
res: list = task.search(title, artist, album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/kugou.py", line 104, in search
return asyncio.run(a_search(title=title, artist=artist, album=album))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 684, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/app/mod/searchx/kugou.py", line 75, in a_search
async with session.get(
File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 1194, in aenter
self._resp = await self._coro
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 605, in _request
await resp.start(conn)
File "/usr/local/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 966, in start
message, payload = await protocol.read() # type: ignore[union-attr]
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/streams.py", line 622, in read
await self._waiter
aiohttp.client_exceptions.ClientOSError: [Errno 104] Connection reset by peer

系统信息

qnap docker

补充信息

No response

歌词能保存到本地目录

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。
  • 不是所有的Feature都会被接受,合理且详细的Feature有更高的概率被接受。

问题描述

如果歌词能保存到docker本地映射的目录最好了,这样不用每次都要再次请求。

解决方案

如果歌词能保存到docker本地映射的目录最好了,这样不用每次都要再次请求。

补充信息

No response

Docker镜像改进

  1. 支持arm64,可以通过buildx交叉编译来实现,CI流程可以放在Github Action上面
  2. 使用Alpine作为基础镜像还可以大幅减少体积,但是需要在Alpine环境中编译二进制文件

docker部署后会一直存在100多KB的上传流量,即使在接口未使用的时候

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

docker部署会一直存在100多KB的上传流量,即使在接口未使用的时候,请问这个上传主要是在运行什么功能吗,按照我的理解应该仅在使用的时候调用了相应的接口才会产生上行流量,但是即使在未使用的时候也在持续产生上传流量

请求与响应

No response

日志文件

No response

系统信息

群晖7.0.1 docker部署最新版

补充信息

No response

linux版本二进制文件无法运行报错

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

版本1.5.3,linux架构如下文件运行有问题
arm7l
./lrcapi: cannot execute: required file not found
x86_64
-bash: ./lrcapi: No such file or directory

请求与响应

No response

日志文件

x86_64环境下:

root@dokcer:# ls|grep lrc
lrcapi
root@dokcer:
# ./lrcapi
-bash: ./lrcapi: No such file or directory
root@dokcer:# uname -a
Linux dokcer 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 GNU/Linux
root@dokcer:
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

armv7l环境下(termux app):

~/lrcapi $ uname -a
Linux localhost 3.4.113-perf-g9cd90d33e3a #1 SMP PREEMPT Wed Oct 19 16:15:37 CST 2022 armv7l Android
~/lrcapi $ ./lrcapi
bash: ./lrcapi: cannot execute: required file not found
~/lrcapi $ ./lrcapi --port 8080 --auth abc
bash: ./lrcapi: cannot execute: required file not found

系统信息

debian11&&android

补充信息

python对目录处理有问题

使用音流客户端时,保存歌词时弹出"歌词确认异常"

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

如标题所示

请求与响应

No response

日志文件

并未发现相关关键词日志,这个报错好像跟问题没什么关系

2024-06-21 10:55:35,375 - ERROR - Exception on /cover [HEAD]
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'
2024-06-21 10:55:35,551 - 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'
2024-06-21 11:50:29,565 - INFO - 正在启动服务器
2024-06-21 11:50:29,565 - INFO - 正在检查更新,当前版本
2024-06-21 11:50:29,579 - INFO - Serving on http://0.0.0.0:28883
2024-06-21 11:50:29,982 - INFO - 当前已是最新版本
2024-06-21 12:02:06,696 - INFO - Error: 

系统信息

环境使用docker搭建 + nginx proxy manager 反代 + 音流安卓客户端(ver: 1.29)

# docker-compose.yaml
version: "3"
services:
  navidrome:
    container_name: navidrome
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    environment:
      #程序默认语言
      - ND_DEFAULTLANGUAGE=zh-Hans
      #启用GRAVATAR头像
      - ND_ENABLEGRAVATAR=true
      #关闭转码,如需要转码请设置为true
      - ND_ENABLETRANSCODINGCONFIG=true
    volumes:
      - "/share/Container/navidrome:/data"
      - "/share/Video/Link/Music/Completed:/music:ro"
    restart: always
  lrcapi:
    image: hisatri/lrcapi:latest
    container_name: lrcapi
    ports:
      - 28883:28883
    volumes:
      - /share/Video/Link/Music/Completed:/music:ro
    restart: always

补充信息

请求歌词有最近一次请求得内容显示,但是确认接口没地方查看日志,docker并未发现与之相关的报错
是否可以加上类似日志得功能,以方便定位相关问题

docker部署的服务请求封面api会自动重定向

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

  • Issue是用于快速定位和解决问题的,而不是这个项目的评论区。
  • 一个简明扼要的标题可以快速定位关键信息,标题不需要长篇大论,也不应过于宽泛。

问题描述

使用docker部署的api服务:docker run -d -p 28883:28883 -v /root/music:/music hisatri/lrcapi:latest
在请求歌词api时正常,但是在请求封面api时异常,会重定向到:
https://api.lrc.cx/cover/album/title=xxx&artist=xxx
原始请求是http://ip:port/api/v1/cover/album?title=xxx&artist=xxx

请求与响应

No response

日志文件

No response

系统信息

ubuntu 22.04

补充信息

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.