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