Reduced redundancy in model conversions and consistent naming

This commit is contained in:
Philipp Wolfer 2023-11-22 17:53:09 +01:00
parent e29d8e2a63
commit cac88f316b
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
10 changed files with 107 additions and 107 deletions

View file

@ -66,7 +66,7 @@ out:
}
for _, fwListen := range result.Results {
listen := fwListen.ToListen()
listen := fwListen.AsListen()
if listen.ListenedAt.Unix() > oldestTimestamp.Unix() {
p.Elapsed += 1
listens = append(listens, listen)
@ -118,7 +118,7 @@ out:
}
for _, favorite := range result.Results {
love := favorite.ToLove()
love := favorite.AsLove()
if love.Created.Unix() > oldestTimestamp.Unix() {
p.Elapsed += 1
loves = append(loves, love)
@ -142,24 +142,10 @@ out:
results <- models.LovesResult{Loves: loves}
}
func (l Listening) ToListen() models.Listen {
track := l.Track
func (l Listening) AsListen() models.Listen {
listen := models.Listen{
UserName: l.User.UserName,
Track: models.Track{
TrackName: track.Title,
ReleaseName: track.Album.Title,
ArtistNames: []string{track.Artist.Name},
TrackNumber: track.Position,
DiscNumber: track.DiscNumber,
RecordingMbid: models.MBID(track.RecordingMbid),
ReleaseMbid: models.MBID(track.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(track.Artist.ArtistMbid)},
Tags: track.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
},
Track: l.Track.AsTrack(),
}
listenedAt, err := time.Parse(time.RFC3339, l.CreationDate)
@ -167,33 +153,15 @@ func (l Listening) ToListen() models.Listen {
listen.ListenedAt = listenedAt
}
if len(track.Uploads) > 0 {
listen.Track.Duration = time.Duration(track.Uploads[0].Duration * int(time.Second))
}
return listen
}
func (f FavoriteTrack) ToLove() models.Love {
track := f.Track
recordingMbid := models.MBID(track.RecordingMbid)
func (f FavoriteTrack) AsLove() models.Love {
track := f.Track.AsTrack()
love := models.Love{
UserName: f.User.UserName,
RecordingMbid: recordingMbid,
Track: models.Track{
TrackName: track.Title,
ReleaseName: track.Album.Title,
ArtistNames: []string{track.Artist.Name},
TrackNumber: track.Position,
DiscNumber: track.DiscNumber,
RecordingMbid: recordingMbid,
ReleaseMbid: models.MBID(track.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(track.Artist.ArtistMbid)},
Tags: track.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
},
RecordingMbid: track.RecordingMbid,
Track: track,
}
created, err := time.Parse(time.RFC3339, f.CreationDate)
@ -201,9 +169,29 @@ func (f FavoriteTrack) ToLove() models.Love {
love.Created = created
}
if len(track.Uploads) > 0 {
love.Track.Duration = time.Duration(track.Uploads[0].Duration * int(time.Second))
}
return love
}
func (t Track) AsTrack() models.Track {
recordingMbid := models.MBID(t.RecordingMbid)
track := models.Track{
TrackName: t.Title,
ReleaseName: t.Album.Title,
ArtistNames: []string{t.Artist.Name},
TrackNumber: t.Position,
DiscNumber: t.DiscNumber,
RecordingMbid: recordingMbid,
ReleaseMbid: models.MBID(t.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(t.Artist.ArtistMbid)},
Tags: t.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
}
if len(t.Uploads) > 0 {
track.Duration = time.Duration(t.Uploads[0].Duration * int(time.Second))
}
return track
}