35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from attrs import define
|
|
import aiohttp
|
|
|
|
|
|
@define
|
|
class SoundCloudEngine:
|
|
client_id: str
|
|
|
|
async def call(self, request_point: str, params: dict = None):
|
|
return await self.get(
|
|
url=f'https://api-v2.soundcloud.com/{request_point}',
|
|
params=params
|
|
)
|
|
|
|
async def get(self, url: str, params: dict = None):
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.get(
|
|
url,
|
|
params=(params or {}) | {
|
|
'client_id': self.client_id,
|
|
},
|
|
) as r:
|
|
return await r.json()
|
|
|
|
async def read_data(self, url: str, params: dict = None,
|
|
append_client_id: bool = True):
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.get(
|
|
url,
|
|
params=(params or {}) | ({
|
|
'client_id': self.client_id,
|
|
} if append_client_id else {}),
|
|
) as r:
|
|
return await r.content.read()
|