mirror of
https://github.com/THIS-IS-NOT-A-BACKUP/zspotify.git
synced 2024-11-26 09:53:17 +01:00
added exception handling and retry-logic to zspotify
This commit is contained in:
parent
16c7ee5d51
commit
9a48746b79
@ -9,7 +9,7 @@ It's like youtube-dl, but for Spotify.
|
||||
import os
|
||||
import os.path
|
||||
from getpass import getpass
|
||||
|
||||
import time
|
||||
import requests
|
||||
from librespot.audio.decoders import VorbisOnlyAudioQuality
|
||||
from librespot.core import Session
|
||||
@ -19,7 +19,6 @@ from const import TYPE, \
|
||||
PLAYLIST_READ_PRIVATE, USER_LIBRARY_READ
|
||||
from config import Config
|
||||
|
||||
|
||||
class ZSpotify:
|
||||
SESSION: Session = None
|
||||
DOWNLOAD_QUALITY = None
|
||||
@ -82,10 +81,19 @@ class ZSpotify:
|
||||
return requests.get(url, headers=headers, params=params).json()
|
||||
|
||||
@classmethod
|
||||
def invoke_url(cls, url):
|
||||
def invoke_url(cls, url, tryCount = 0):
|
||||
headers = cls.get_auth_header()
|
||||
response = requests.get(url, headers=headers)
|
||||
return response.text, response.json()
|
||||
responseText = response.text
|
||||
responseJson = response.json()
|
||||
|
||||
if 'error' in responseJson and tryCount < 20:
|
||||
|
||||
print(f"Spotify API Error ({responseJson['error']['status']}): {responseJson['error']['message']}")
|
||||
time.sleep(5)
|
||||
return cls.invoke_url(url, tryCount + 1)
|
||||
|
||||
return responseText, responseJson
|
||||
|
||||
@classmethod
|
||||
def check_premium(cls) -> bool:
|
||||
|
Loading…
Reference in New Issue
Block a user