style: rename accessors to idiomatic names

This commit is contained in:
Mathis Maquenne
2026-08-05 11:47:53 +02:00
parent 88319ebb3c
commit f8b301e24c
16 changed files with 46 additions and 46 deletions
+4 -4
View File
@@ -26,11 +26,11 @@ type Album struct {
} `json:"results"`
}
func (a *Album) GetTitle() string {
func (a *Album) Title() string {
return a.Results.Data.Title
}
func (a *Album) GetTracks() []*Track {
func (a *Album) Tracks() []*Track {
return a.Results.Tracks.Data
}
@@ -38,12 +38,12 @@ func (a *Album) SetTracks(t []*Track) {
a.Results.Tracks.Data = t
}
func (a *Album) GetOutputDir(outputDir string) string {
func (a *Album) OutputDir(outputDir string) string {
base := fmt.Sprintf("%s - %s", a.Results.Data.Artist, a.Results.Data.Title)
base, _ = filenamify.Filenamify(base, filenamify.Options{})
return path.Join(outputDir, base)
}
func (a *Album) Unmarshal(data []byte) error {
func (a *Album) decode(data []byte) error {
return json.Unmarshal(data, a)
}
+4 -4
View File
@@ -18,11 +18,11 @@ type Artist struct {
} `json:"results"`
}
func (a *Artist) GetTitle() string {
func (a *Artist) Title() string {
return a.Results.Data.Name
}
func (a *Artist) GetTracks() []*Track {
func (a *Artist) Tracks() []*Track {
return a.Results.Tracks.Data
}
@@ -30,11 +30,11 @@ func (a *Artist) SetTracks(t []*Track) {
a.Results.Tracks.Data = t
}
func (a *Artist) GetOutputDir(outputDir string) string {
func (a *Artist) OutputDir(outputDir string) string {
base, _ := filenamify.Filenamify(a.Results.Data.Name, filenamify.Options{})
return path.Join(outputDir, base)
}
func (a *Artist) Unmarshal(data []byte) error {
func (a *Artist) decode(data []byte) error {
return json.Unmarshal(data, a)
}
+7 -7
View File
@@ -83,7 +83,7 @@ func (c *Client) FetchResource(ctx context.Context, kind Kind, id string) (Resou
return nil, err
}
resp, err := c.Session.HttpClient.Do(req)
resp, err := c.Session.HTTPClient.Do(req)
if err != nil {
return nil, err
}
@@ -117,7 +117,7 @@ func (c *Client) FetchResource(ctx context.Context, kind Kind, id string) (Resou
return nil, fmt.Errorf("unexpected response")
}
if err := resource.Unmarshal(body); err != nil {
if err := resource.decode(body); err != nil {
return nil, err
}
@@ -137,7 +137,7 @@ func (c *Client) FetchMedia(ctx context.Context, track *Track, quality string) (
return nil, err
}
resp, err := c.Session.HttpClient.Do(req)
resp, err := c.Session.HTTPClient.Do(req)
if err != nil {
return nil, err
}
@@ -185,7 +185,7 @@ func (c *Client) FetchCoverImage(ctx context.Context, track *Track) ([]byte, err
return nil, err
}
resp, err := c.Session.HttpClient.Do(req)
resp, err := c.Session.HTTPClient.Do(req)
if err != nil {
return nil, err
}
@@ -198,13 +198,13 @@ func (c *Client) FetchCoverImage(ctx context.Context, track *Track) ([]byte, err
return io.ReadAll(resp.Body)
}
func (c *Client) GetMediaStream(ctx context.Context, media *Media) (io.ReadCloser, error) {
req, err := http.NewRequestWithContext(ctx, "GET", media.GetURL(), nil)
func (c *Client) MediaStream(ctx context.Context, media *Media) (io.ReadCloser, error) {
req, err := http.NewRequestWithContext(ctx, "GET", media.URL(), nil)
if err != nil {
return nil, err
}
streamingClient := *c.Session.HttpClient
streamingClient := *c.Session.HTTPClient
streamingClient.Timeout = 0
resp, err := streamingClient.Do(req)
+2 -2
View File
@@ -18,10 +18,10 @@ type mediaError struct {
Message string `json:"message"`
}
func (m *Media) GetURL() string {
func (m *Media) URL() string {
return m.Data[0].Media[0].Sources[0].URL
}
func (m *Media) GetFormat() string {
func (m *Media) Format() string {
return m.Data[0].Media[0].Format
}
+4 -4
View File
@@ -20,11 +20,11 @@ type Playlist struct {
} `json:"results"`
}
func (p *Playlist) GetTitle() string {
func (p *Playlist) Title() string {
return p.Results.Data.Title
}
func (p *Playlist) GetTracks() []*Track {
func (p *Playlist) Tracks() []*Track {
return p.Results.Tracks.Data
}
@@ -32,11 +32,11 @@ func (p *Playlist) SetTracks(t []*Track) {
p.Results.Tracks.Data = t
}
func (p *Playlist) GetOutputDir(outputDir string) string {
func (p *Playlist) OutputDir(outputDir string) string {
base, _ := filenamify.Filenamify(p.Results.Data.Title, filenamify.Options{})
return path.Join(outputDir, base)
}
func (p *Playlist) Unmarshal(data []byte) error {
func (p *Playlist) decode(data []byte) error {
return json.Unmarshal(data, p)
}
+4 -4
View File
@@ -1,9 +1,9 @@
package deezer
type Resource interface {
GetTitle() string
GetTracks() []*Track
Title() string
Tracks() []*Track
SetTracks(tracks []*Track)
GetOutputDir(outputDir string) string
Unmarshal(data []byte) error
OutputDir(outputDir string) string
decode(data []byte) error
}
+2 -2
View File
@@ -13,7 +13,7 @@ import (
type Session struct {
APIToken string
LicenseToken string
HttpClient *http.Client
HTTPClient *http.Client
Premium bool
}
@@ -78,7 +78,7 @@ func authenticate(ctx context.Context, arlCookie string) (*Session, error) {
return &Session{
APIToken: res.Results.APIToken,
LicenseToken: opts.LicenseToken,
HttpClient: client,
HTTPClient: client,
Premium: opts.MobileOffline || opts.WebOffline,
}, nil
}
+5 -5
View File
@@ -11,14 +11,14 @@ type Single struct {
} `json:"results"`
}
func (s *Single) GetTitle() string {
func (s *Single) Title() string {
if s.Results.Data == nil {
return ""
}
return s.Results.Data.GetTitle()
return s.Results.Data.FullTitle()
}
func (s *Single) GetTracks() []*Track {
func (s *Single) Tracks() []*Track {
if s.Results.Data == nil {
return nil
}
@@ -27,10 +27,10 @@ func (s *Single) GetTracks() []*Track {
func (s *Single) SetTracks(tracks []*Track) {}
func (s *Single) GetOutputDir(outputDir string) string {
func (s *Single) OutputDir(outputDir string) string {
return path.Join(outputDir, "Singles")
}
func (s *Single) Unmarshal(data []byte) error {
func (s *Single) decode(data []byte) error {
return json.Unmarshal(data, s)
}
+2 -2
View File
@@ -40,7 +40,7 @@ type Track struct {
TrackToken string `json:"TRACK_TOKEN"`
}
func (t *Track) GetTitle() string {
func (t *Track) FullTitle() string {
if t.Version != "" {
return t.Title + " " + t.Version
}
@@ -62,7 +62,7 @@ func (t *Track) Filename(kind Kind, mediaFormat string) string {
}
}
fileName := fmt.Sprintf("%s%s - %s.%s", prefix, t.Artist, t.GetTitle(), ext)
fileName := fmt.Sprintf("%s%s - %s.%s", prefix, t.Artist, t.FullTitle(), ext)
fileName, _ = filenamify.Filenamify(fileName, filenamify.Options{MaxLength: 255})
return fileName
}
+3 -3
View File
@@ -65,7 +65,7 @@ func (d *Downloader) prepareResource(ctx context.Context, id string, opts Option
return nil, "", fmt.Errorf("failed to fetch resource: %w", err)
}
tracks := resource.GetTracks()
tracks := resource.Tracks()
if len(tracks) == 0 {
if d.kind == deezer.KindTrack {
return nil, "", fmt.Errorf("track with ID %s not found", id)
@@ -77,7 +77,7 @@ func (d *Downloader) prepareResource(ctx context.Context, id string, opts Option
resource.SetTracks(tracks[:opts.Limit])
}
outputDir := resource.GetOutputDir(d.appConfig.OutputDir)
outputDir := resource.OutputDir(d.appConfig.OutputDir)
if err := fsutil.EnsureDir(outputDir); err != nil {
return nil, "", fmt.Errorf("failed to create output directory: %w", err)
}
@@ -86,7 +86,7 @@ func (d *Downloader) prepareResource(ctx context.Context, id string, opts Option
}
func (d *Downloader) downloadAllTracks(ctx context.Context, resource deezer.Resource, opts Options, outputDir string) error {
tracks := resource.GetTracks()
tracks := resource.Tracks()
startTime := time.Now()
if d.kind != deezer.KindTrack {
+2 -2
View File
@@ -81,7 +81,7 @@ func artistInfo(a *deezer.Artist) string {
fmt.Fprintf(&b, "Top %d most popular tracks:\n", limit)
for i := 0; i < limit; i++ {
t := tracks[i]
fmt.Fprintf(&b, " %2d. %s %s\n", i+1, t.Artist, t.GetTitle())
fmt.Fprintf(&b, " %2d. %s %s\n", i+1, t.Artist, t.FullTitle())
}
fmt.Fprintf(&b, "===========================================\n")
@@ -104,7 +104,7 @@ Title: %s
Artist: %s
Duration: %s
==================================================`,
s.Results.Data.GetTitle(),
s.Results.Data.FullTitle(),
s.Results.Data.Artist,
time.Duration(duration)*time.Second,
)
+1 -1
View File
@@ -46,7 +46,7 @@ func fetchMetadata(httpClient *http.Client, ctx context.Context, track *deezer.T
if opts.Genre {
go func() {
genre, err := fetchGenre(ctx, httpClient, track.Artist, track.GetTitle())
genre, err := fetchGenre(ctx, httpClient, track.Artist, track.FullTitle())
genreChan <- genreResult{value: genre, err: err}
}()
}
+2 -2
View File
@@ -43,7 +43,7 @@ func (pt *progressTracker) startDownload(index int, track *deezer.Track) *spinne
sp := spinner.New(spinner.CharSets[14], 100*time.Millisecond)
sp.Writer = os.Stdout
sp.Prefix = trackProgress + " "
sp.Suffix = fmt.Sprintf(" Downloading: %s - %s", track.Artist, track.GetTitle())
sp.Suffix = fmt.Sprintf(" Downloading: %s - %s", track.Artist, track.FullTitle())
sp.Start()
return sp
@@ -51,7 +51,7 @@ func (pt *progressTracker) startDownload(index int, track *deezer.Track) *spinne
func (pt *progressTracker) handleResult(index int, track *deezer.Track, result downloadResult) {
trackProgress := fmt.Sprintf("[%d/%d]", index+1, pt.totalTracks)
trackTitle := track.GetTitle()
trackTitle := track.FullTitle()
if result.skipped {
pt.stats.skipped++
+1 -1
View File
@@ -9,7 +9,7 @@ import (
func buildTagMetadata(resource deezer.Resource, track *deezer.Track, cover []byte, bpm bpmKey, genre string) tag.Metadata {
m := tag.Metadata{
Title: track.GetTitle(),
Title: track.FullTitle(),
Artists: strings.Join(track.Contributors.MainArtists, ", "),
Composers: strings.Join(track.Contributors.Composers, ", "),
Lyricists: strings.Join(track.Contributors.Authors, ", "),
+3 -3
View File
@@ -20,7 +20,7 @@ func (d *Downloader) downloadTrack(ctx context.Context, resource deezer.Resource
return downloadResult{err: fmt.Errorf("failed to fetch media: %w", err)}
}
mediaFormat := media.GetFormat()
mediaFormat := media.Format()
if opts.Strict && strings.ToLower(mediaFormat) != opts.Quality {
return downloadResult{err: fmt.Errorf("requested quality '%s' not available", opts.Quality)}
}
@@ -31,10 +31,10 @@ func (d *Downloader) downloadTrack(ctx context.Context, resource deezer.Resource
metadataChan := make(chan metadataResult, 1)
go func() {
metadataChan <- fetchMetadata(d.deezerClient.Session.HttpClient, ctx, track, opts)
metadataChan <- fetchMetadata(d.deezerClient.Session.HTTPClient, ctx, track, opts)
}()
stream, err := d.deezerClient.GetMediaStream(ctx, media)
stream, err := d.deezerClient.MediaStream(ctx, media)
if err != nil {
return downloadResult{err: fmt.Errorf("failed to get media stream: %w", err)}
}