Compare commits
3 Commits
b921cf9138
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e4807f95a | |||
| 88f6bbb7db | |||
| c7ffb2608d |
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "oxidespotify"
|
name = "oxidespotify"
|
||||||
version = "0.1.1"
|
version = "0.2.2"
|
||||||
description = "Client for Spotify API"
|
description = "Client for Spotify API"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [{ name = "Miwory", email = "miwory.uwu@gmail.com" }]
|
authors = [{ name = "Miwory", email = "miwory.uwu@gmail.com" }]
|
||||||
|
|||||||
@ -36,7 +36,9 @@ class SpotifyAPIClient(OxideHTTP):
|
|||||||
async def _process[T: BaseModel](
|
async def _process[T: BaseModel](
|
||||||
self, req: Response | CachedResponse, schema: type[T] | None
|
self, req: Response | CachedResponse, schema: type[T] | None
|
||||||
) -> T | None:
|
) -> T | None:
|
||||||
if req.status_code == 204:
|
if req.status_code == 204 or (
|
||||||
|
req.status_code == 200 and schema is None
|
||||||
|
):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if req.status_code >= 500:
|
if req.status_code >= 500:
|
||||||
@ -128,11 +130,27 @@ class SpotifyAPIClient(OxideHTTP):
|
|||||||
async def pause_playback(self) -> NoReturn:
|
async def pause_playback(self) -> NoReturn:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
async def skip_to_next(self) -> NoReturn:
|
async def skip_to_next(self, access_token: str, device_id: str) -> None:
|
||||||
raise NotImplementedError
|
req = self.post(
|
||||||
|
'/me/player/next',
|
||||||
|
params={'device_id': device_id},
|
||||||
|
headers=self._auth(access_token),
|
||||||
|
)
|
||||||
|
|
||||||
async def skip_to_previous(self) -> NoReturn:
|
req = await self._process_request(req)
|
||||||
raise NotImplementedError
|
return await self._process(req, None)
|
||||||
|
|
||||||
|
async def skip_to_previous(
|
||||||
|
self, access_token: str, device_id: str
|
||||||
|
) -> None:
|
||||||
|
req = self.post(
|
||||||
|
'/me/player/previous',
|
||||||
|
params={'device_id': device_id},
|
||||||
|
headers=self._auth(access_token),
|
||||||
|
)
|
||||||
|
|
||||||
|
req = await self._process_request(req)
|
||||||
|
return await self._process(req, None)
|
||||||
|
|
||||||
async def seek_to_position(self) -> NoReturn:
|
async def seek_to_position(self) -> NoReturn:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|||||||
@ -41,7 +41,8 @@ class SpotifyAuthClient(OxideHTTP):
|
|||||||
|
|
||||||
data = await req.json()
|
data = await req.json()
|
||||||
if req.status_code >= 400:
|
if req.status_code >= 400:
|
||||||
raise s.ClientError(req.status_code, data['error'])
|
err = f'{data["error"]}: {data["error_description"]}'
|
||||||
|
raise s.ClientError(req.status_code, err)
|
||||||
|
|
||||||
return schema.model_validate(data)
|
return schema.model_validate(data)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user