forked from platypush/platypush
Use session.playlist instead of session.user.playlist to query playlists
This commit is contained in:
parent
61cda60751
commit
36dd645209
1 changed files with 6 additions and 42 deletions
|
@ -1,10 +1,8 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
import requests
|
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from urllib.parse import urljoin
|
|
||||||
from typing import Iterable, Optional, Union
|
from typing import Iterable, Optional, Union
|
||||||
|
|
||||||
from platypush.config import Config
|
from platypush.config import Config
|
||||||
|
@ -133,32 +131,6 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
assert user, 'Not logged in'
|
assert user, 'Not logged in'
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def _api_request(self, url, *args, method='get', **kwargs):
|
|
||||||
method = getattr(requests, method.lower())
|
|
||||||
url = urljoin(self._base_url, url)
|
|
||||||
kwargs['headers'] = kwargs.get('headers', {})
|
|
||||||
kwargs['params'] = kwargs.get('params', {})
|
|
||||||
kwargs['params'].update(
|
|
||||||
{
|
|
||||||
'sessionId': self.session.session_id,
|
|
||||||
'countryCode': self.session.country_code,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
rs = None
|
|
||||||
kwargs['headers']['Authorization'] = '{type} {token}'.format(
|
|
||||||
type=self.session.token_type, token=self.session.access_token
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
rs = method(url, *args, **kwargs)
|
|
||||||
rs.raise_for_status()
|
|
||||||
return rs
|
|
||||||
except requests.HTTPError as e:
|
|
||||||
if rs:
|
|
||||||
self.logger.error(rs.text)
|
|
||||||
raise e
|
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def create_playlist(self, name: str, description: Optional[str] = None):
|
def create_playlist(self, name: str, description: Optional[str] = None):
|
||||||
"""
|
"""
|
||||||
|
@ -168,16 +140,8 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
:param description: Optional playlist description.
|
:param description: Optional playlist description.
|
||||||
:return: .. schema:: tidal.TidalPlaylistSchema
|
:return: .. schema:: tidal.TidalPlaylistSchema
|
||||||
"""
|
"""
|
||||||
ret = self._api_request(
|
ret = self.user.create_playlist(name, description)
|
||||||
url=f'users/{self.user.id}/playlists',
|
return TidalPlaylistSchema().dump(ret)
|
||||||
method='post',
|
|
||||||
data={
|
|
||||||
'title': name,
|
|
||||||
'description': description,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
return TidalPlaylistSchema().dump(ret.json())
|
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def delete_playlist(self, playlist_id: str):
|
def delete_playlist(self, playlist_id: str):
|
||||||
|
@ -186,7 +150,7 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
|
|
||||||
:param playlist_id: ID of the playlist to delete.
|
:param playlist_id: ID of the playlist to delete.
|
||||||
"""
|
"""
|
||||||
pl = self.user.playlist(playlist_id)
|
pl = self.session.playlist(playlist_id)
|
||||||
pl.delete()
|
pl.delete()
|
||||||
|
|
||||||
@action
|
@action
|
||||||
|
@ -197,7 +161,7 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
:param name: New name.
|
:param name: New name.
|
||||||
:param description: New description.
|
:param description: New description.
|
||||||
"""
|
"""
|
||||||
pl = self.user.playlist(playlist_id)
|
pl = self.session.playlist(playlist_id)
|
||||||
pl.edit(title=title, description=description)
|
pl.edit(title=title, description=description)
|
||||||
|
|
||||||
@action
|
@action
|
||||||
|
@ -314,7 +278,7 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
:param playlist_id: Target playlist ID.
|
:param playlist_id: Target playlist ID.
|
||||||
:param track_ids: List of track IDs to append.
|
:param track_ids: List of track IDs to append.
|
||||||
"""
|
"""
|
||||||
pl = self.user.playlist(playlist_id)
|
pl = self.session.playlist(playlist_id)
|
||||||
pl.add(track_ids)
|
pl.add(track_ids)
|
||||||
|
|
||||||
@action
|
@action
|
||||||
|
@ -337,7 +301,7 @@ class MusicTidalPlugin(RunnablePlugin):
|
||||||
track_id is None and index is None
|
track_id is None and index is None
|
||||||
), 'Please specify either track_id or index'
|
), 'Please specify either track_id or index'
|
||||||
|
|
||||||
pl = self.user.playlist(playlist_id)
|
pl = self.session.playlist(playlist_id)
|
||||||
if index:
|
if index:
|
||||||
pl.remove_by_index(index)
|
pl.remove_by_index(index)
|
||||||
if track_id:
|
if track_id:
|
||||||
|
|
Loading…
Reference in a new issue