App\services\Lastfm::updateNowPlaying PHP Method

updateNowPlaying() public method

Update a track's "now playing" on Last.fm.
public updateNowPlaying ( string $artist, string $track, string $album, integer | float $duration, string $sk ) : boolean
$artist string Name of the artist
$track string Name of the track
$album string Name of the album
$duration integer | float Duration of the track, in seconds
$sk string The session key
return boolean
    public function updateNowPlaying($artist, $track, $album, $duration, $sk)
    {
        $params = compact('artist', 'track', 'duration', 'sk');
        $params['method'] = 'track.updateNowPlaying';
        if ($album) {
            $params['album'] = $album;
        }
        try {
            return (bool) $this->post('/', $this->buildAuthCallParams($params), false);
        } catch (Exception $e) {
            Log::error($e);
            return false;
        }
    }

Usage Example

 /**
  * Handle the event.
  *
  * @param SongStartedPlaying $event
  */
 public function handle(SongStartedPlaying $event)
 {
     if (!$this->lastfm->enabled() || !($sessionKey = $event->user->getLastfmSessionKey()) || $event->song->album->artist->isUnknown()) {
         return;
     }
     $this->lastfm->updateNowPlaying($event->song->album->artist->name, $event->song->title, $event->song->album->name === Album::UNKNOWN_NAME ? null : $event->song->album->name, $event->song->length, $sessionKey);
 }