Merge pull request #348 from pylast/rm-deprecations
Remove deprecated Artist.get_cover_image, User.get_artist_tracks and STATUS_TOKEN_ERROR
This commit is contained in:
commit
3a4ad741bd
|
@ -27,7 +27,6 @@ import shelve
|
||||||
import ssl
|
import ssl
|
||||||
import tempfile
|
import tempfile
|
||||||
import time
|
import time
|
||||||
import warnings
|
|
||||||
import xml.dom
|
import xml.dom
|
||||||
from http.client import HTTPSConnection
|
from http.client import HTTPSConnection
|
||||||
from urllib.parse import quote_plus
|
from urllib.parse import quote_plus
|
||||||
|
@ -49,9 +48,7 @@ STATUS_AUTH_FAILED = 4
|
||||||
STATUS_INVALID_FORMAT = 5
|
STATUS_INVALID_FORMAT = 5
|
||||||
STATUS_INVALID_PARAMS = 6
|
STATUS_INVALID_PARAMS = 6
|
||||||
STATUS_INVALID_RESOURCE = 7
|
STATUS_INVALID_RESOURCE = 7
|
||||||
# DeprecationWarning: STATUS_TOKEN_ERROR is deprecated and will be
|
STATUS_OPERATION_FAILED = 8
|
||||||
# removed in a future version. Use STATUS_OPERATION_FAILED instead.
|
|
||||||
STATUS_OPERATION_FAILED = STATUS_TOKEN_ERROR = 8
|
|
||||||
STATUS_INVALID_SK = 9
|
STATUS_INVALID_SK = 9
|
||||||
STATUS_INVALID_API_KEY = 10
|
STATUS_INVALID_API_KEY = 10
|
||||||
STATUS_OFFLINE = 11
|
STATUS_OFFLINE = 11
|
||||||
|
@ -1715,32 +1712,6 @@ class Artist(_BaseObject, _Taggable):
|
||||||
|
|
||||||
return _extract(self._request(self.ws_prefix + ".getCorrection"), "name")
|
return _extract(self._request(self.ws_prefix + ".getCorrection"), "name")
|
||||||
|
|
||||||
def get_cover_image(self, size=SIZE_EXTRA_LARGE):
|
|
||||||
"""
|
|
||||||
Returns a URI to the cover image
|
|
||||||
size can be one of:
|
|
||||||
SIZE_MEGA
|
|
||||||
SIZE_EXTRA_LARGE
|
|
||||||
SIZE_LARGE
|
|
||||||
SIZE_MEDIUM
|
|
||||||
SIZE_SMALL
|
|
||||||
"""
|
|
||||||
|
|
||||||
warnings.warn(
|
|
||||||
"Artist.get_cover_image is deprecated and will be removed in a future "
|
|
||||||
"version. In the meantime, only default star images are available. "
|
|
||||||
"See https://github.com/pylast/pylast/issues/317 and "
|
|
||||||
"https://support.last.fm/t/api-announcement/202",
|
|
||||||
DeprecationWarning,
|
|
||||||
stacklevel=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
if "image" not in self.info:
|
|
||||||
self.info["image"] = _extract_all(
|
|
||||||
self._request(self.ws_prefix + ".getInfo", cacheable=True), "image"
|
|
||||||
)
|
|
||||||
return self.info["image"][size]
|
|
||||||
|
|
||||||
def get_playcount(self):
|
def get_playcount(self):
|
||||||
"""Returns the number of plays on the network."""
|
"""Returns the number of plays on the network."""
|
||||||
|
|
||||||
|
@ -2251,40 +2222,6 @@ class User(_BaseObject, _Chartable):
|
||||||
|
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def get_artist_tracks(self, artist, cacheable=False):
|
|
||||||
"""
|
|
||||||
Deprecated by Last.fm.
|
|
||||||
Get a list of tracks by a given artist scrobbled by this user,
|
|
||||||
including scrobble time.
|
|
||||||
"""
|
|
||||||
|
|
||||||
warnings.warn(
|
|
||||||
"User.get_artist_tracks is deprecated and will be removed in a future "
|
|
||||||
"version. User.get_track_scrobbles is a partial replacement. "
|
|
||||||
"See https://github.com/pylast/pylast/issues/298",
|
|
||||||
DeprecationWarning,
|
|
||||||
stacklevel=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
params = self._get_params()
|
|
||||||
params["artist"] = artist
|
|
||||||
|
|
||||||
seq = []
|
|
||||||
for track in _collect_nodes(
|
|
||||||
None, self, self.ws_prefix + ".getArtistTracks", cacheable, params
|
|
||||||
):
|
|
||||||
title = _extract(track, "name")
|
|
||||||
artist = _extract(track, "artist")
|
|
||||||
date = _extract(track, "date")
|
|
||||||
album = _extract(track, "album")
|
|
||||||
timestamp = track.getElementsByTagName("date")[0].getAttribute("uts")
|
|
||||||
|
|
||||||
seq.append(
|
|
||||||
PlayedTrack(Track(artist, title, self.network), album, date, timestamp)
|
|
||||||
)
|
|
||||||
|
|
||||||
return seq
|
|
||||||
|
|
||||||
def get_friends(self, limit=50, cacheable=False):
|
def get_friends(self, limit=50, cacheable=False):
|
||||||
"""Returns a list of the user's friends. """
|
"""Returns a list of the user's friends. """
|
||||||
|
|
||||||
|
|
|
@ -241,16 +241,12 @@ class TestPyLastArtist(TestPyLastWithLastFm):
|
||||||
url = artist1.get_url()
|
url = artist1.get_url()
|
||||||
mbid = artist1.get_mbid()
|
mbid = artist1.get_mbid()
|
||||||
|
|
||||||
with pytest.warns(DeprecationWarning):
|
|
||||||
image = artist1.get_cover_image()
|
|
||||||
|
|
||||||
playcount = artist1.get_playcount()
|
playcount = artist1.get_playcount()
|
||||||
streamable = artist1.is_streamable()
|
streamable = artist1.is_streamable()
|
||||||
name = artist1.get_name(properly_capitalized=False)
|
name = artist1.get_name(properly_capitalized=False)
|
||||||
name_cap = artist1.get_name(properly_capitalized=True)
|
name_cap = artist1.get_name(properly_capitalized=True)
|
||||||
|
|
||||||
# Assert
|
# Assert
|
||||||
assert "https" in image
|
|
||||||
assert playcount > 1
|
assert playcount > 1
|
||||||
assert artist1 != artist2
|
assert artist1 != artist2
|
||||||
assert name.lower() == name_cap.lower()
|
assert name.lower() == name_cap.lower()
|
||||||
|
|
|
@ -6,7 +6,6 @@ import calendar
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import warnings
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -475,15 +474,3 @@ class TestPyLastUser(TestPyLastWithLastFm):
|
||||||
|
|
||||||
# Assert
|
# Assert
|
||||||
self.helper_validate_results(result1, result2, result3)
|
self.helper_validate_results(result1, result2, result3)
|
||||||
|
|
||||||
def test_get_artist_tracks_deprecated(self):
|
|
||||||
# Arrange
|
|
||||||
lastfm_user = self.network.get_user(self.username)
|
|
||||||
|
|
||||||
# Act / Assert
|
|
||||||
with warnings.catch_warnings(), pytest.raises(
|
|
||||||
pylast.WSError,
|
|
||||||
match="Deprecated - This type of request is no longer supported",
|
|
||||||
):
|
|
||||||
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
|
||||||
lastfm_user.get_artist_tracks(artist="Test Artist")
|
|
||||||
|
|
Loading…
Reference in a new issue