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