diff --git a/service/fileService.go b/service/fileService.go index c9857de..cd63bd9 100644 --- a/service/fileService.go +++ b/service/fileService.go @@ -26,13 +26,29 @@ func Download(link string, episodeTitle string, podcastName string, prefix strin if link == "" { return "", errors.New("Download path empty") } + + req, err := http.NewRequest("GET", link, nil) + if err != nil { + Logger.Errorw("Error getting response: "+link, err) + return "", err + } + req.Header.Add("Accept", "*/*") + req.Header.Add("User-Agent", "Go-http-client") + client := httpClient() - resp, err := client.Get(link) + resp, err := client.Do(req) + + //resp, err := client.Get(link) if err != nil { Logger.Errorw("Error getting response: "+link, err) return "", err } + if resp.StatusCode != 200 { + Logger.Errorw("Cannot download \"" + episodeTitle + "\" from the Podcast " + podcastName + ", http status: " + resp.Status) + return "", errors.New("Error while downloading file(" + link + "): " + resp.Status) + } + fileName := getFileName(link, episodeTitle, ".mp3") if prefix != "" { fileName = fmt.Sprintf("%s-%s", prefix, fileName) @@ -101,13 +117,28 @@ func DownloadPodcastCoverImage(link string, podcastName string) (string, error) if link == "" { return "", errors.New("Download path empty") } + + req, err := http.NewRequest("GET", link, nil) + if err != nil { + Logger.Errorw("Error getting response: "+link, err) + return "", err + } + req.Header.Add("Accept", "*/*") + req.Header.Add("User-Agent", "Go-http-client") + client := httpClient() - resp, err := client.Get(link) + resp, err := client.Do(req) + if err != nil { Logger.Errorw("Error getting response: "+link, err) return "", err } + if resp.StatusCode != 200 { + Logger.Errorw("Cannot download \"" + podcastName + "\" Cover Image, http status: " + resp.Status) + return "", errors.New("Error while downloading file(" + link + "): " + resp.Status) + } + fileName := getFileName(link, "folder", ".jpg") folder := createDataFolderIfNotExists(podcastName)