41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package download
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/mathismqn/godeez/internal/deezer"
|
|
"github.com/mathismqn/godeez/internal/tag"
|
|
)
|
|
|
|
func buildTagMetadata(resource deezer.Resource, track *deezer.Track, cover []byte, bpm bpmKey, genre string) tag.Metadata {
|
|
m := tag.Metadata{
|
|
Title: track.FullTitle(),
|
|
Artists: strings.Join(track.Contributors.MainArtists, ", "),
|
|
Composers: strings.Join(track.Contributors.Composers, ", "),
|
|
Lyricists: strings.Join(track.Contributors.Authors, ", "),
|
|
Genre: genre,
|
|
BPM: bpm.BPM,
|
|
Key: bpm.Key,
|
|
TrackNumber: track.TrackNumber,
|
|
Duration: track.Duration,
|
|
Gain: track.Gain,
|
|
ISRC: track.ISRC,
|
|
Cover: cover,
|
|
}
|
|
|
|
if album, ok := resource.(*deezer.Album); ok {
|
|
data := album.Results.Data
|
|
m.Album = &tag.AlbumMetadata{
|
|
Artist: data.Artist,
|
|
Title: data.Title,
|
|
Label: data.Label,
|
|
OriginalReleaseDate: data.OriginalReleaseDate,
|
|
ReleaseDate: data.PhysicalReleaseDate,
|
|
ProducerLine: data.ProducerLine,
|
|
Copyright: data.Copyright,
|
|
}
|
|
}
|
|
|
|
return m
|
|
}
|