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)