feat: 支持配置音乐封面代理地址 (#6258)

* feat: 支持配置音乐封面代理地址

* fix: 规范化音乐封面代理地址,去除尾随斜杠
This commit is contained in:
LLL001a
2026-08-09 12:42:20 +08:00
committed by GitHub
parent 372b9bc60f
commit 391f7880f4
3 changed files with 23 additions and 4 deletions
+4
View File
@@ -226,6 +226,10 @@ class ConfigModel(BaseModel):
# TMDB API Key # TMDB API Key
TMDB_API_KEY: str = "db55323b8d3e4154498498a75642b381" TMDB_API_KEY: str = "db55323b8d3e4154498498a75642b381"
# ==================== 音乐配置 ====================
# 音乐封面代理地址(用于解决 coverartarchive.org 无法访问导致的封面不显示问题,留空则使用官方地址)
MUSIC_COVER_PROXY: str = ""
# ==================== TVDB配置 ==================== # ==================== TVDB配置 ====================
# TVDB API Key # TVDB API Key
TVDB_V4_API_KEY: str = "ed2aa66b-7899-4677-92a7-67bc9ce3d93a" TVDB_V4_API_KEY: str = "ed2aa66b-7899-4677-92a7-67bc9ce3d93a"
+16 -3
View File
@@ -243,7 +243,7 @@ class ListenBrainzModule(_ModuleBase):
album_artist=artist_name or None, album_artist=artist_name or None,
album_id=str(media_id), album_id=str(media_id),
cover_url=cls._release_cover(release_group.get("caa_release_mbid")) cover_url=cls._release_cover(release_group.get("caa_release_mbid"))
or f"{cls._release_group_cover_url}/{media_id}/front-500", or cls._release_group_cover(media_id),
names=[str(title)], names=[str(title)],
detail_link=f"{cls._album_detail_url}/{media_id}", detail_link=f"{cls._album_detail_url}/{media_id}",
listen_count=cls._optional_int(release_group.get("listen_count")), listen_count=cls._optional_int(release_group.get("listen_count")),
@@ -277,7 +277,7 @@ class ListenBrainzModule(_ModuleBase):
year=cls._year(release_date), year=cls._year(release_date),
release_date=release_date, release_date=release_date,
cover_url=cls._release_cover(release.get("caa_release_mbid")) cover_url=cls._release_cover(release.get("caa_release_mbid"))
or f"{cls._release_group_cover_url}/{media_id}/front-500", or cls._release_group_cover(media_id),
category=" / ".join(str(part) for part in category_parts if part), category=" / ".join(str(part) for part in category_parts if part),
genres=[str(tag) for tag in release.get("release_tags") or [] if tag], genres=[str(tag) for tag in release.get("release_tags") or [] if tag],
names=[str(title)], names=[str(title)],
@@ -289,7 +289,20 @@ class ListenBrainzModule(_ModuleBase):
@classmethod @classmethod
def _release_cover(cls, release_mbid: Any) -> Optional[str]: def _release_cover(cls, release_mbid: Any) -> Optional[str]:
"""根据发行版本 ID 构造 Cover Art Archive 封面地址。""" """根据发行版本 ID 构造 Cover Art Archive 封面地址。"""
return f"{cls._release_cover_url}/{release_mbid}/front-500" if release_mbid else None if not release_mbid:
return None
# 支持配置音乐封面代理地址,解决 coverartarchive.org 无法访问的问题
base = (settings.MUSIC_COVER_PROXY or "https://coverartarchive.org").rstrip("/")
return f"{base}/release/{release_mbid}/front-500"
@classmethod
def _release_group_cover(cls, release_group_id: Any) -> Optional[str]:
"""根据 Release Group ID 构造 Cover Art Archive 封面地址。"""
if not release_group_id:
return None
# 支持配置音乐封面代理地址,解决 coverartarchive.org 无法访问的问题
base = (settings.MUSIC_COVER_PROXY or "https://coverartarchive.org").rstrip("/")
return f"{base}/release-group/{release_group_id}/front-500"
@staticmethod @staticmethod
def _primary_artist_ids(artist_mbids: Any) -> list[str]: def _primary_artist_ids(artist_mbids: Any) -> list[str]:
+3 -1
View File
@@ -675,7 +675,9 @@ class MusicBrainzModule(_ModuleBase):
"""根据 Release Group ID 构造 Cover Art Archive 封面地址。""" """根据 Release Group ID 构造 Cover Art Archive 封面地址。"""
if not release_group_id: if not release_group_id:
return None return None
return f"{cls._cover_url}/{release_group_id}/front-500" # 支持配置音乐封面代理地址,解决 coverartarchive.org 无法访问的问题
base = (settings.MUSIC_COVER_PROXY or "https://coverartarchive.org").rstrip("/")
return f"{base}/release-group/{release_group_id}/front-500"
@classmethod @classmethod
def _wait_for_rate_limit(cls) -> None: def _wait_for_rate_limit(cls) -> None: