diff --git a/addons/lyrics.py b/addons/lyrics.py index 34de9f9..aa71d53 100644 --- a/addons/lyrics.py +++ b/addons/lyrics.py @@ -49,6 +49,7 @@ Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-US) AppleWebKit/530.6 (KHTM Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/ Safari/530.5''' LYRIST_ENDPOINT = "https://lyrist.vercel.app/api/" +LRCLIB_ENDPOINT = "https://lrclib.net/api/" class LyricsPlatform(ABC): @abstractmethod @@ -196,8 +197,26 @@ class Lyrist(LyricsPlatform): except: return None +class Lrclib(LyricsPlatform): + async def get(self, url, params: dict = None) -> list[dict]: + try: + async with aiohttp.ClientSession() as session: + resp = await session.get(url=url, headers={'User-Agent': random.choice(userAgents)}, params=params) + if resp.status != 200: + return None + return await resp.json() + except: + return [] + + async def get_lyrics(self, title, artist): + params = {"q": f"{title} - {artist}"} + result = await self.get(LRCLIB_ENDPOINT + "search", params) + if result: + return {"default": result[0].get("plainLyrics", "")} + lyricsPlatform: dict[str, LyricsPlatform] = { "a_zlyrics": A_ZLyrics, "genius": Genius, - "lyrist": Lyrist + "lyrist": Lyrist, + "lrclib": Lrclib } \ No newline at end of file diff --git a/voicelink/__init__.py b/voicelink/__init__.py index d48084f..e14e65a 100644 --- a/voicelink/__init__.py +++ b/voicelink/__init__.py @@ -24,7 +24,7 @@ SOFTWARE. __version__ = "1.4" __author__ = 'Vocard Development, Choco' __license__ = "MIT" -__copyright__ = "Copyright 2023 (c) Vocard Development, Choco" +__copyright__ = "Copyright 2023 - present (c) Vocard Development, Choco" from .enums import SearchType, LoopType from .events import *