fix json fetching
This commit is contained in:
parent
fcb823a474
commit
fb1dae5400
|
@ -92,7 +92,10 @@ def get_song_lyrics(song_id: str, file_save: str) -> None:
|
||||||
raw, lyrics = Zotify.invoke_url(f'https://spclient.wg.spotify.com/color-lyrics/v2/track/{song_id}')
|
raw, lyrics = Zotify.invoke_url(f'https://spclient.wg.spotify.com/color-lyrics/v2/track/{song_id}')
|
||||||
|
|
||||||
if lyrics:
|
if lyrics:
|
||||||
formatted_lyrics = lyrics['lyrics']['lines']
|
try:
|
||||||
|
formatted_lyrics = lyrics['lyrics']['lines']
|
||||||
|
except KeyError:
|
||||||
|
raise ValueError(f'Failed to fetch lyrics: {song_id}')
|
||||||
if(lyrics['lyrics']['syncType'] == "UNSYNCED"):
|
if(lyrics['lyrics']['syncType'] == "UNSYNCED"):
|
||||||
with open(file_save, 'w') as file:
|
with open(file_save, 'w') as file:
|
||||||
for line in formatted_lyrics:
|
for line in formatted_lyrics:
|
||||||
|
@ -107,7 +110,7 @@ def get_song_lyrics(song_id: str, file_save: str) -> None:
|
||||||
ts_millis = str(math.floor(timestamp % 1000))[:2].zfill(2)
|
ts_millis = str(math.floor(timestamp % 1000))[:2].zfill(2)
|
||||||
file.writelines(f'[{ts_minutes}:{ts_seconds}.{ts_millis}]' + line['words'] + '\n')
|
file.writelines(f'[{ts_minutes}:{ts_seconds}.{ts_millis}]' + line['words'] + '\n')
|
||||||
return
|
return
|
||||||
raise ValueError(f'Filed to fetch lyrics: {song_id}')
|
raise ValueError(f'Failed to fetch lyrics: {song_id}')
|
||||||
|
|
||||||
|
|
||||||
def get_song_duration(song_id: str) -> float:
|
def get_song_duration(song_id: str) -> float:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pwinput import pwinput
|
from pwinput import pwinput
|
||||||
import time
|
import time
|
||||||
|
@ -88,10 +89,10 @@ class Zotify:
|
||||||
responsetext = response.text
|
responsetext = response.text
|
||||||
try:
|
try:
|
||||||
responsejson = response.json()
|
responsejson = response.json()
|
||||||
except requests.exceptions.JSONDecodeError:
|
except json.decoder.JSONDecodeError:
|
||||||
responsejson = {}
|
responsejson = {"error": {"status": "unknown", "message": "received an empty response"}}
|
||||||
|
|
||||||
if 'error' in responsejson:
|
if not responsejson or 'error' in responsejson:
|
||||||
if tryCount < (cls.CONFIG.get_retry_attempts() - 1):
|
if tryCount < (cls.CONFIG.get_retry_attempts() - 1):
|
||||||
Printer.print(PrintChannel.WARNINGS, f"Spotify API Error (try {tryCount + 1}) ({responsejson['error']['status']}): {responsejson['error']['message']}")
|
Printer.print(PrintChannel.WARNINGS, f"Spotify API Error (try {tryCount + 1}) ({responsejson['error']['status']}): {responsejson['error']['message']}")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
|
|
Loading…
Reference in New Issue