aboutsummaryrefslogtreecommitdiff
path: root/pandora/models/playlist.py
diff options
context:
space:
mode:
Diffstat (limited to 'pandora/models/playlist.py')
-rw-r--r--pandora/models/playlist.py36
1 files changed, 18 insertions, 18 deletions
diff --git a/pandora/models/playlist.py b/pandora/models/playlist.py
index 38afb00..8e0d22e 100644
--- a/pandora/models/playlist.py
+++ b/pandora/models/playlist.py
@@ -5,15 +5,15 @@ from ._base import Field, SyntheticField, PandoraModel, PandoraListModel
5 5
6 6
7class AdditionalAudioUrl(Enum): 7class AdditionalAudioUrl(Enum):
8 HTTP_40_AAC_MONO = 'HTTP_40_AAC_MONO' 8 HTTP_40_AAC_MONO = "HTTP_40_AAC_MONO"
9 HTTP_64_AAC = 'HTTP_64_AAC' 9 HTTP_64_AAC = "HTTP_64_AAC"
10 HTTP_32_AACPLUS = 'HTTP_32_AACPLUS' 10 HTTP_32_AACPLUS = "HTTP_32_AACPLUS"
11 HTTP_64_AACPLUS = 'HTTP_64_AACPLUS' 11 HTTP_64_AACPLUS = "HTTP_64_AACPLUS"
12 HTTP_24_AACPLUS_ADTS = 'HTTP_24_AACPLUS_ADTS' 12 HTTP_24_AACPLUS_ADTS = "HTTP_24_AACPLUS_ADTS"
13 HTTP_32_AACPLUS_ADTS = 'HTTP_32_AACPLUS_ADTS' 13 HTTP_32_AACPLUS_ADTS = "HTTP_32_AACPLUS_ADTS"
14 HTTP_64_AACPLUS_ADTS = 'HTTP_64_AACPLUS_ADTS' 14 HTTP_64_AACPLUS_ADTS = "HTTP_64_AACPLUS_ADTS"
15 HTTP_128_MP3 = 'HTTP_128_MP3' 15 HTTP_128_MP3 = "HTTP_128_MP3"
16 HTTP_32_WMA = 'HTTP_32_WMA' 16 HTTP_32_WMA = "HTTP_32_WMA"
17 17
18 18
19class PandoraType(Enum): 19class PandoraType(Enum):
@@ -28,14 +28,14 @@ class PandoraType(Enum):
28 28
29 @staticmethod 29 @staticmethod
30 def from_string(value): 30 def from_string(value):
31 return { 31 types = {
32 "TR": PandoraType.TRACK, 32 "TR": PandoraType.TRACK,
33 "AR": PandoraType.ARTIST, 33 "AR": PandoraType.ARTIST,
34 }.get(value, PandoraType.GENRE) 34 }
35 return types.get(value, PandoraType.GENRE)
35 36
36 37
37class AudioField(SyntheticField): 38class AudioField(SyntheticField):
38
39 def formatter(self, api_client, data, newval): 39 def formatter(self, api_client, data, newval):
40 """Get audio-related fields 40 """Get audio-related fields
41 41
@@ -61,9 +61,11 @@ class AudioField(SyntheticField):
61 elif not url_map: # No audio url available (e.g. ad tokens) 61 elif not url_map: # No audio url available (e.g. ad tokens)
62 return None 62 return None
63 63
64 valid_audio_formats = [BaseAPIClient.HIGH_AUDIO_QUALITY, 64 valid_audio_formats = [
65 BaseAPIClient.MED_AUDIO_QUALITY, 65 BaseAPIClient.HIGH_AUDIO_QUALITY,
66 BaseAPIClient.LOW_AUDIO_QUALITY] 66 BaseAPIClient.MED_AUDIO_QUALITY,
67 BaseAPIClient.LOW_AUDIO_QUALITY,
68 ]
67 69
68 # Only iterate over sublist, starting at preferred audio quality, or 70 # Only iterate over sublist, starting at preferred audio quality, or
69 # from the beginning of the list if nothing is found. Ensures that the 71 # from the beginning of the list if nothing is found. Ensures that the
@@ -84,7 +86,6 @@ class AudioField(SyntheticField):
84 86
85 87
86class AdditionalUrlField(SyntheticField): 88class AdditionalUrlField(SyntheticField):
87
88 def formatter(self, api_client, data, newval): 89 def formatter(self, api_client, data, newval):
89 """Parse additional url fields and map them to inputs 90 """Parse additional url fields and map them to inputs
90 91
@@ -94,7 +95,7 @@ class AdditionalUrlField(SyntheticField):
94 if newval is None: 95 if newval is None:
95 return None 96 return None
96 97
97 user_param = data['_paramAdditionalUrls'] 98 user_param = data["_paramAdditionalUrls"]
98 urls = {} 99 urls = {}
99 if isinstance(newval, str): 100 if isinstance(newval, str):
100 urls[user_param[0]] = newval 101 urls[user_param[0]] = newval
@@ -105,7 +106,6 @@ class AdditionalUrlField(SyntheticField):
105 106
106 107
107class PlaylistModel(PandoraModel): 108class PlaylistModel(PandoraModel):
108
109 def get_is_playable(self): 109 def get_is_playable(self):
110 if not self.audio_url: 110 if not self.audio_url:
111 return False 111 return False