Source code for pylav.nodes.api.responses.plugins.lyrics
from __future__ import annotations
import dataclasses
from pylav.nodes.api.responses.shared import LyricsPluginInfo
__all__ = ("LyricsLine", "LyricsObject")
[docs]
@dataclasses.dataclass(repr=True, frozen=True, kw_only=True, slots=True)
class LyricsLine:
timestamp: int
duration: int | None
line: str
plugin: LyricsPluginInfo
def __post_init__(self):
if isinstance(self.plugin, dict) and (p := LyricsPluginInfo(**self.plugin)):
object.__setattr__(self, "plugin", p)
[docs]
@dataclasses.dataclass(repr=True, frozen=True, kw_only=True, slots=True)
class LyricsObject:
sourceName: str
provider: str
text: str | None = None
lines: list[LyricsLine]
plugin: LyricsPluginInfo
def __post_init__(self):
if isinstance(self.plugin, dict) and (p := LyricsPluginInfo(**self.plugin)):
object.__setattr__(self, "plugin", p)