diff --git a/internal/http/dj_handlers.go b/internal/http/dj_handlers.go index b246451..be522e5 100644 --- a/internal/http/dj_handlers.go +++ b/internal/http/dj_handlers.go @@ -68,7 +68,7 @@ func (dj *DJHandlers) PlaylistNext(w http.ResponseWriter, _ *http.Request) { Duration: oggtag.GetDuration(bs, be), MaxListeners: dj.listeners.Current(), StartAt: time.Now()} - // radio.CheckAndUpdateMostListenedSong(song, currentSong) + radio.CheckAndUpdateMostListenedSong(dj.songList.Current()) dj.songList.Add(song) }() } diff --git a/internal/radio/mostlistened.go b/internal/radio/mostlistened.go index 34853f8..09cf49e 100644 --- a/internal/radio/mostlistened.go +++ b/internal/radio/mostlistened.go @@ -46,15 +46,15 @@ var mostListened MostListenedSong // // So it would be fairer to give these listeners back to a song they was // listening to. -func CheckAndUpdateMostListenedSong(cur, prev *Song) { - if prev.Artist == "" { +func CheckAndUpdateMostListenedSong(cur *Song) { + if cur == nil || cur.Artist == "" { return } if cur.MaxListeners > mostListened.Listeners { mostListened = MostListenedSong{ Listeners: cur.MaxListeners, - Date: time.Now().UTC(), - Song: prev.ArtistTitle()} + Date: cur.StartAt, + Song: cur.ArtistTitle()} } mlsChanged = true }