fix: first compilable version

This commit is contained in:
2026-02-15 17:34:48 +01:00
parent 9cdaf9851c
commit 1ce9feb5e6
2 changed files with 15 additions and 154 deletions

View File

@@ -2,8 +2,6 @@ package lib
import (
"errors"
"fmt"
"strconv"
)
const (
@@ -12,7 +10,15 @@ const (
)
type DownloadRequest struct {
Service AvailableServices
Service AvailableServices
Track string
Artist string
Album string
Artists string
ReleaseDate string
Cover string
OutputDir string
SpotifyID string
}
func (app *App) Download(url string, outputFolder string, serviceString string) error {
@@ -24,70 +30,11 @@ func (app *App) Download(url string, outputFolder string, serviceString string)
serviceString = DEFAULT_DOWNLOAD_SERVICE
}
service, err := ParseAvailableServices(serviceString)
if err != nil {
return err
}
url_type := GetUrlType(url)
switch url_type {
case UrlTypeTrack:
metadata, err := GetMetadata[MetadataSong](app, url)
if err != nil {
return err
}
track := metadata.Track
downloadRequest := DownloadRequest{
Service: service,
TrackName: track.Name,
ArtistName: track.Artists,
AlbumName: track.AlbumName,
AlbumArtist: track.AlbumArtist,
ReleaseDate: track.ReleaseDate,
CoverURL: track.Images,
OutputDir: outputFolder,
SpotifyID: track.SpotifyID,
}
_, err = app.DownloadTrack(downloadRequest)
return err
case UrlTypePlaylist:
metadata, err := GetMetadata[MetadataPlaylist](app, url)
if err != nil {
return err
}
trackListSize := strconv.Itoa(len(metadata.TrackList))
for idx, track := range metadata.TrackList {
fmt.Println("[" + strconv.Itoa(idx+1) + "/" + trackListSize + "] " + track.Name + " - " + track.Artists)
downloadRequest := DownloadRequest{
Service: service,
TrackName: track.Name,
ArtistName: track.Artists,
AlbumName: track.AlbumName,
AlbumArtist: track.AlbumArtist,
ReleaseDate: track.ReleaseDate,
CoverURL: track.Images,
OutputDir: outputFolder,
SpotifyID: track.SpotifyID,
PlaylistName: metadata.Info.Owner.Name,
}
_, err = app.DownloadTrack(downloadRequest)
if err != nil {
fmt.Println("Unable to download " + track.Name + " - " + track.Artists)
}
}
return nil
}
_ = GetUrlType(url)
return errors.New("Invalid URL.")
}
func (app *App) DownloadTrack(dr DownloadRequest) {
func (app *App) DownloadTrack(dr DownloadRequest) (bool, error) {
return false, nil
}