mirror of
https://github.com/Superredstone/spotiflac-cli.git
synced 2026-03-07 20:18:07 +01:00
fix: change package names
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
package pkg
|
||||
package lib
|
||||
|
||||
type App struct {
|
||||
|
||||
}
|
||||
|
||||
|
||||
func NewApp() App {
|
||||
return App{}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pkg
|
||||
package lib
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@@ -11,24 +11,37 @@ const (
|
||||
DEFAULT_DOWNLOAD_OUTPUT_FOLDER = "."
|
||||
)
|
||||
|
||||
func Download(app *App, url string, output_folder string, service string) error {
|
||||
if output_folder == "" {
|
||||
output_folder = DEFAULT_DOWNLOAD_OUTPUT_FOLDER
|
||||
type AvailableServices int
|
||||
|
||||
const (
|
||||
AvailableServicesTidal = iota
|
||||
)
|
||||
|
||||
func ParseAvailableServices(service string) (AvailableServices, error) {
|
||||
switch service {
|
||||
case "tidal":
|
||||
return AvailableServicesTidal, nil
|
||||
break
|
||||
}
|
||||
return AvailableServicesTidal, errors.New("Invalid service.")
|
||||
}
|
||||
|
||||
type DownloadRequest struct {
|
||||
Service AvailableServices
|
||||
}
|
||||
|
||||
func (app *App) Download(url string, outputFolder string, serviceString string) error {
|
||||
if outputFolder == "" {
|
||||
outputFolder = DEFAULT_DOWNLOAD_OUTPUT_FOLDER
|
||||
}
|
||||
|
||||
if service == "" {
|
||||
service = DEFAULT_DOWNLOAD_SERVICE
|
||||
if serviceString == "" {
|
||||
serviceString = DEFAULT_DOWNLOAD_SERVICE
|
||||
}
|
||||
|
||||
if service == "amazon" || service == "qobuz" {
|
||||
isInstalled, err := app.CheckFFmpegInstalled()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !isInstalled {
|
||||
return errors.New("FFmpeg is not installed.")
|
||||
}
|
||||
service, err := ParseAvailableServices(serviceString)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
url_type := GetUrlType(url)
|
||||
@@ -41,7 +54,7 @@ func Download(app *App, url string, output_folder string, service string) error
|
||||
}
|
||||
|
||||
track := metadata.Track
|
||||
downloadRequest := app.DownloadRequest{
|
||||
downloadRequest := DownloadRequest{
|
||||
Service: service,
|
||||
TrackName: track.Name,
|
||||
ArtistName: track.Artists,
|
||||
@@ -49,7 +62,7 @@ func Download(app *App, url string, output_folder string, service string) error
|
||||
AlbumArtist: track.AlbumArtist,
|
||||
ReleaseDate: track.ReleaseDate,
|
||||
CoverURL: track.Images,
|
||||
OutputDir: output_folder,
|
||||
OutputDir: outputFolder,
|
||||
SpotifyID: track.SpotifyID,
|
||||
}
|
||||
|
||||
@@ -65,7 +78,7 @@ func Download(app *App, url string, output_folder string, service string) error
|
||||
for idx, track := range metadata.TrackList {
|
||||
fmt.Println("[" + strconv.Itoa(idx+1) + "/" + trackListSize + "] " + track.Name + " - " + track.Artists)
|
||||
|
||||
downloadRequest := app.DownloadRequest{
|
||||
downloadRequest := DownloadRequest{
|
||||
Service: service,
|
||||
TrackName: track.Name,
|
||||
ArtistName: track.Artists,
|
||||
@@ -73,7 +86,7 @@ func Download(app *App, url string, output_folder string, service string) error
|
||||
AlbumArtist: track.AlbumArtist,
|
||||
ReleaseDate: track.ReleaseDate,
|
||||
CoverURL: track.Images,
|
||||
OutputDir: output_folder,
|
||||
OutputDir: outputFolder,
|
||||
SpotifyID: track.SpotifyID,
|
||||
PlaylistName: metadata.Info.Owner.Name,
|
||||
}
|
||||
@@ -89,3 +102,7 @@ func Download(app *App, url string, output_folder string, service string) error
|
||||
|
||||
return errors.New("Invalid URL.")
|
||||
}
|
||||
|
||||
func (app *App) DownloadTrack(dr DownloadRequest) {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pkg
|
||||
package lib
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@@ -73,7 +73,7 @@ func GetMetadata[T MetadataPlaylist | MetadataSong](app *App, url string) (T, er
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func PrintMetadata(app *App, url string) error {
|
||||
func (app *App) PrintMetadata(url string) error {
|
||||
switch GetUrlType(url) {
|
||||
case UrlTypeTrack:
|
||||
metadata, err := GetMetadata[MetadataSong](app, url)
|
||||
@@ -117,4 +117,3 @@ Cover: %s`
|
||||
|
||||
return errors.New("Invalid URL.")
|
||||
}
|
||||
|
||||
|
||||
1
lib/services.go
Normal file
1
lib/services.go
Normal file
@@ -0,0 +1 @@
|
||||
package lib
|
||||
@@ -1,4 +1,4 @@
|
||||
package pkg
|
||||
package lib
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
8
main.go
8
main.go
@@ -10,7 +10,7 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
var output_folder, service string
|
||||
var outputFolder, service string
|
||||
|
||||
app := lib.NewApp()
|
||||
|
||||
@@ -29,7 +29,7 @@ func main() {
|
||||
Name: "output",
|
||||
Aliases: []string{"o"},
|
||||
Usage: "set output folder",
|
||||
Destination: &output_folder,
|
||||
Destination: &outputFolder,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "service",
|
||||
@@ -40,7 +40,7 @@ func main() {
|
||||
},
|
||||
Action: func(ctx context.Context, cmd *cli.Command) error {
|
||||
song_url := cmd.Args().First()
|
||||
err := pkg.Download(app, song_url, output_folder, service)
|
||||
err := app.Download(song_url, outputFolder, service)
|
||||
return err
|
||||
},
|
||||
},
|
||||
@@ -50,7 +50,7 @@ func main() {
|
||||
Usage: "view song metadata",
|
||||
Action: func(ctx context.Context, cmd *cli.Command) error {
|
||||
url := cmd.Args().First()
|
||||
return pkg.PrintMetadata(app, url)
|
||||
return app.PrintMetadata(url)
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user