diff options
Diffstat (limited to 'pandora/models/pandora.py')
-rw-r--r-- | pandora/models/pandora.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/pandora/models/pandora.py b/pandora/models/pandora.py index 40b368a..6abd3a7 100644 --- a/pandora/models/pandora.py +++ b/pandora/models/pandora.py | |||
@@ -130,6 +130,8 @@ class PlaylistModel(PandoraModel): | |||
130 | return cls.get_audio_field(data, "bitrate", preferred_quality) | 130 | return cls.get_audio_field(data, "bitrate", preferred_quality) |
131 | 131 | ||
132 | def get_is_playable(self): | 132 | def get_is_playable(self): |
133 | if not self.audio_url: | ||
134 | return False | ||
133 | return self._api_client.transport.test_url(self.audio_url) | 135 | return self._api_client.transport.test_url(self.audio_url) |
134 | 136 | ||
135 | def prepare_playback(self): | 137 | def prepare_playback(self): |
@@ -223,11 +225,26 @@ class AdItem(PlaylistModel): | |||
223 | def is_ad(self): | 225 | def is_ad(self): |
224 | return True | 226 | return True |
225 | 227 | ||
226 | def register_ad(self, station_id): | 228 | def register_ad(self, station_id=None): |
227 | self._api_client.register_ad(station_id, self.tracking_tokens) | 229 | if not station_id: |
230 | station_id = self.station_id | ||
231 | if self.tracking_tokens: | ||
232 | self._api_client.register_ad(station_id, self.tracking_tokens) | ||
233 | else: | ||
234 | raise ValueError('No ad tracking tokens available for ' | ||
235 | 'registration.') | ||
228 | 236 | ||
229 | def prepare_playback(self): | 237 | def prepare_playback(self): |
230 | self.register_ad(self.station_id) | 238 | try: |
239 | self.register_ad(self.station_id) | ||
240 | except ValueError as e: | ||
241 | if not self.tracking_tokens: | ||
242 | # Ignore registration attempts if no ad tracking tokens are | ||
243 | # available | ||
244 | pass | ||
245 | else: | ||
246 | # Unexpected error, re-raise. | ||
247 | raise e | ||
231 | return super(AdItem, self).prepare_playback() | 248 | return super(AdItem, self).prepare_playback() |
232 | 249 | ||
233 | 250 | ||