Files
godeez/internal/deezer/single.go
T

66 lines
1.1 KiB
Go

package deezer
import (
"encoding/json"
"fmt"
"path"
"strconv"
"time"
)
type Single struct {
Results struct {
Data *Track `json:"DATA"`
} `json:"results"`
}
func (s *Single) String() string {
if s.Results.Data == nil {
return "Track: No data available"
}
duration, err := strconv.Atoi(s.Results.Data.Duration)
if err != nil {
duration = 0
}
return fmt.Sprintf(
`================= [ Track Info ] =================
Title: %s
Artist: %s
Duration: %s
==================================================`,
s.Results.Data.GetTitle(),
s.Results.Data.Artist,
time.Duration(duration)*time.Second,
)
}
func (s *Single) GetType() string {
return "Track"
}
func (s *Single) GetTitle() string {
if s.Results.Data == nil {
return ""
}
return s.Results.Data.GetTitle()
}
func (s *Single) GetTracks() []*Track {
if s.Results.Data == nil {
return nil
}
return []*Track{s.Results.Data}
}
func (s *Single) SetTracks(tracks []*Track) {}
func (s *Single) GetOutputDir(outputDir string) string {
return path.Join(outputDir, "Singles")
}
func (s *Single) Unmarshal(data []byte) error {
return json.Unmarshal(data, s)
}