mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
refactor(media): unify media identity and chain responsibilities
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from typing import Optional, Union
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.core.context import MusicInfo, MusicLyrics
|
||||
from app.core.meta import MetaMusic
|
||||
|
||||
|
||||
class LrclibChain(ChainBase):
|
||||
"""LRCLIB 音乐歌词来源链。"""
|
||||
|
||||
def get_music_lyrics(
|
||||
self,
|
||||
music: Union[MetaMusic, MusicInfo],
|
||||
) -> Optional[MusicLyrics]:
|
||||
"""按单曲元数据获取标准化歌词。"""
|
||||
result = self.run_module("music_lyrics", music=music)
|
||||
if isinstance(result, MusicLyrics):
|
||||
return result
|
||||
return MusicLyrics.from_dict(result) if isinstance(result, dict) else None
|
||||
|
||||
async def async_get_music_lyrics(
|
||||
self,
|
||||
music: Union[MetaMusic, MusicInfo],
|
||||
) -> Optional[MusicLyrics]:
|
||||
"""异步按单曲元数据获取标准化歌词。"""
|
||||
result = await self.async_run_module("music_lyrics", music=music)
|
||||
if isinstance(result, MusicLyrics):
|
||||
return result
|
||||
return MusicLyrics.from_dict(result) if isinstance(result, dict) else None
|
||||
Reference in New Issue
Block a user