41 lines
1.1 KiB
Python
41 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()
|