From a85812a1b83be818de29d50d17631e4283cce821 Mon Sep 17 00:00:00 2001 From: Superredstone Date: Thu, 19 Feb 2026 16:44:54 +0100 Subject: [PATCH] refactor: move track download to a different function --- lib/download.go | 39 ++++++++++++++++++++++----------------- lib/metadata.go | 2 ++ lib/utils.go | 2 +- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/lib/download.go b/lib/download.go index 30c98b1..8bf2a95 100644 --- a/lib/download.go +++ b/lib/download.go @@ -23,12 +23,9 @@ type DownloadRequest struct { SpotifyID string } -func (app *App) Download(url string, outputFile string, serviceString string, quality string) error { - var downloadUrl string - var fileName string - - if serviceString == "" { - serviceString = DEFAULT_DOWNLOAD_SERVICE +func (app *App) Download(url string, outputFile string, service string, quality string) error { + if service == "" { + service = DEFAULT_DOWNLOAD_SERVICE } urlType, err := ParseUrlType(url) @@ -38,20 +35,28 @@ func (app *App) Download(url string, outputFile string, serviceString string, qu switch urlType { case UrlTypeTrack: - songlink, err := app.ConvertSongUrl(url) - if err != nil { + if err := app.DownloadTrack(url, outputFile, service, quality); err != nil { return err } + } - tidalId, err := app.GetTidalIdFromSonglink(songlink) - if err != nil { - return err - } + return nil +} - downloadUrl, err = app.GetTidalDownloadUrl(tidalId, quality) - if err != nil { - return err - } +func (app *App) DownloadTrack(url string, outputFile, service string, quality string) error { + songlink, err := app.ConvertSongUrl(url) + if err != nil { + return err + } + + tidalId, err := app.GetTidalIdFromSonglink(songlink) + if err != nil { + return err + } + + downloadUrl, err := app.GetTidalDownloadUrl(tidalId, quality) + if err != nil { + return err } metadata, err := app.GetTrackMetadata(url) @@ -64,7 +69,7 @@ func (app *App) Download(url string, outputFile string, serviceString string, qu return err } - outputFile, err = BuildFileOutput(outputFile, fileName, extension, metadata) + outputFile, err = BuildFileOutput(outputFile, extension, metadata) if err != nil { return err } diff --git a/lib/metadata.go b/lib/metadata.go index f5fed2c..0efc077 100644 --- a/lib/metadata.go +++ b/lib/metadata.go @@ -44,6 +44,8 @@ func (app *App) PrintMetadata(url string) error { } func (app *App) EmbedMetadata(file string, metadata TrackMetadata) error { + app.log("Embedding metadata") + tag, err := id3v2.Open(file, id3v2.Options{Parse: true}) if err != nil { return err diff --git a/lib/utils.go b/lib/utils.go index 8e823ab..900c2f6 100644 --- a/lib/utils.go +++ b/lib/utils.go @@ -71,7 +71,7 @@ func GetArtists(metadata TrackMetadata) (string, error) { return result, nil } -func BuildFileOutput(outputFile string, fileName string, extension string, metadata TrackMetadata) (string, error) { +func BuildFileOutput(outputFile string, extension string, metadata TrackMetadata) (string, error) { var result string fileName, err := BuildFileName(metadata, extension)