28 lines
755 B
Python
28 lines
755 B
Python
from attrs import define
|
|
|
|
from .engine import DeezerEngine
|
|
from .util import clean_query
|
|
|
|
|
|
@define
|
|
class DeezerDriver:
|
|
engine: DeezerEngine
|
|
|
|
async def get_track(self, track_id: int | str):
|
|
data = await self.engine.call_legacy_api(f"track/{track_id}")
|
|
|
|
return data
|
|
|
|
async def reverse_get_track(self, track_id: str):
|
|
return await self.engine.call_api("song.getData", params={"SNG_ID": track_id})
|
|
|
|
async def search(self, query: str, limit: int = 30):
|
|
data = await self.engine.call_legacy_api(
|
|
"search/track", params={"q": clean_query(query), "limit": limit}
|
|
)
|
|
|
|
return data["data"]
|
|
|
|
async def renew_engine(self):
|
|
self.engine = await self.engine.from_arl(self.engine.arl)
|