mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-15 11:04:12 +08:00
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
from typing import Optional, Union
|
|
|
|
from app.chain import ChainBase
|
|
from app.domain.context import MusicInfo, MusicLyrics
|
|
from app.domain.meta.metamusic 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
|