From cb7cff18c2f0fa29ac766c67bc1ce730e42f76c4 Mon Sep 17 00:00:00 2001 From: WorldObservationLog Date: Wed, 24 Apr 2024 12:22:23 +0800 Subject: [PATCH] fix: panic when the resp data of resp is empty --- main.go | 8 ++++++-- main_atmos.go | 6 +++++- main_select.go | 8 ++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 864a392..16d7236 100644 --- a/main.go +++ b/main.go @@ -1013,7 +1013,11 @@ func getSongLyrics(songId string, storefront string, token string, userToken str defer do.Body.Close() obj := new(SongLyrics) err = json.NewDecoder(do.Body).Decode(&obj) - return obj.Data[0].Attributes.Ttml, nil + if obj.Data != nil { + return obj.Data[0].Attributes.Ttml, nil + } else { + return "", errors.New("failed to get lyrics") + } } func writeCover(sanAlbumFolder, url string) error { @@ -1159,7 +1163,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro fmt.Sprintf("cover=%s/cover.jpg", sanAlbumFolder), } tagsString := strings.Join(tags, ":") - cmd := exec.Command("MP4Box","-itags", tagsString, trackPath) + cmd := exec.Command("MP4Box", "-itags", tagsString, trackPath) if err := cmd.Run(); err != nil { fmt.Printf("Embed failed: %v\n", err) continue diff --git a/main_atmos.go b/main_atmos.go index ba1a668..b8ff14b 100644 --- a/main_atmos.go +++ b/main_atmos.go @@ -1019,7 +1019,11 @@ func getSongLyrics(songId string, storefront string, token string, userToken str defer do.Body.Close() obj := new(SongLyrics) err = json.NewDecoder(do.Body).Decode(&obj) - return obj.Data[0].Attributes.Ttml, nil + if obj.Data != nil { + return obj.Data[0].Attributes.Ttml, nil + } else { + return "", errors.New("failed to get lyrics") + } } func writeCover(sanAlbumFolder, url string) error { diff --git a/main_select.go b/main_select.go index adcb048..4a0074c 100644 --- a/main_select.go +++ b/main_select.go @@ -1012,7 +1012,11 @@ func getSongLyrics(songId string, storefront string, token string, userToken str defer do.Body.Close() obj := new(SongLyrics) err = json.NewDecoder(do.Body).Decode(&obj) - return obj.Data[0].Attributes.Ttml, nil + if obj.Data != nil { + return obj.Data[0].Attributes.Ttml, nil + } else { + return "", errors.New("failed to get lyrics") + } } func writeCover(sanAlbumFolder, url string) error { @@ -1194,7 +1198,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro fmt.Sprintf("cover=%s/cover.jpg", sanAlbumFolder), } tagsString := strings.Join(tags, ":") - cmd := exec.Command("MP4Box","-itags", tagsString, trackPath) + cmd := exec.Command("MP4Box", "-itags", tagsString, trackPath) if err := cmd.Run(); err != nil { fmt.Printf("Embed failed: %v\n", err) continue