mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-28 06:57:56 +02:00
Move models to separate package
This allows easier reuse and better separation of code without introducing circular dependencies
This commit is contained in:
parent
cdddf89a3e
commit
9d97e324aa
8 changed files with 43 additions and 37 deletions
|
@ -27,6 +27,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"go.uploadedlobster.com/scotty/backends/listenbrainz"
|
||||
"go.uploadedlobster.com/scotty/models"
|
||||
)
|
||||
|
||||
type ListenBrainzApiBackend struct {
|
||||
|
@ -41,10 +42,10 @@ func (b ListenBrainzApiBackend) FromConfig(config *viper.Viper) Backend {
|
|||
return b
|
||||
}
|
||||
|
||||
func (b ListenBrainzApiBackend) ExportListens(oldestTimestamp time.Time) ([]Listen, error) {
|
||||
func (b ListenBrainzApiBackend) ExportListens(oldestTimestamp time.Time) ([]models.Listen, error) {
|
||||
maxTime := time.Now()
|
||||
minTime := time.Unix(0, 0)
|
||||
listens := make([]Listen, 0)
|
||||
listens := make([]models.Listen, 0)
|
||||
|
||||
out:
|
||||
for {
|
||||
|
@ -63,7 +64,7 @@ out:
|
|||
|
||||
for _, listen := range result.Payload.Listens {
|
||||
if listen.ListenedAt > oldestTimestamp.Unix() {
|
||||
listens = append(listens, Listen{}.FromListenBrainz(listen))
|
||||
listens = append(listens, ListenFromListenBrainz(listen))
|
||||
} else {
|
||||
// result contains listens older then oldestTimestamp,
|
||||
// we can stop requesting more
|
||||
|
@ -76,20 +77,20 @@ out:
|
|||
return listens, nil
|
||||
}
|
||||
|
||||
func (l Listen) FromListenBrainz(lbListen listenbrainz.Listen) Listen {
|
||||
func ListenFromListenBrainz(lbListen listenbrainz.Listen) models.Listen {
|
||||
track := lbListen.TrackMetadata
|
||||
listen := Listen{
|
||||
listen := models.Listen{
|
||||
ListenedAt: time.Unix(lbListen.ListenedAt, 0),
|
||||
UserName: lbListen.UserName,
|
||||
Track: Track{
|
||||
Track: models.Track{
|
||||
TrackName: track.TrackName,
|
||||
ReleaseName: track.ReleaseName,
|
||||
ArtistNames: []string{track.ArtistName},
|
||||
Duration: track.Duration(),
|
||||
TrackNumber: track.TrackNumber(),
|
||||
RecordingMbid: MBID(track.RecordingMbid()),
|
||||
ReleaseMbid: MBID(track.ReleaseMbid()),
|
||||
ReleaseGroupMbid: MBID(track.ReleaseGroupMbid()),
|
||||
RecordingMbid: models.MBID(track.RecordingMbid()),
|
||||
ReleaseMbid: models.MBID(track.ReleaseMbid()),
|
||||
ReleaseGroupMbid: models.MBID(track.ReleaseGroupMbid()),
|
||||
Isrc: track.Isrc(),
|
||||
AdditionalInfo: track.AdditionalInfo,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue