auth = $auth; $this->fullAuth = $fullAuth; $this->config = $config; } /** * Tune into a radio station using a lastfm radio url. (Requires full auth) * @param array $methodVars An array with the following required value: station and the following optional value: lang * @return array */ public function tune($methodVars) { // Only allow full authed calls if ( $this->fullAuth == TRUE ) { // Check for required variables if ( !empty($methodVars['station']) ) { $vars = array( 'method' => 'radio.tune', 'api_key' => $this->auth->apiKey, 'sk' => $this->auth->sessionKey ); $vars = array_merge($vars, $methodVars); $sig = $this->apiSig($this->auth->secret, $vars); $vars['api_sig'] = $sig; if ( $call = $this->apiPostCall($vars) ) { $tune['type'] = (string) $call->station->type; $tune['name'] = (string) $call->station->name; $tune['url'] = (string) $call->station->url; $tune['supportsdiscovery'] = (string) $call->station->supportsdiscovery; return $tune; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include eventId and status varialbes in the call for this method'); return FALSE; } } else { // Give a 92 error if not fully authed $this->handleError(92, 'Method requires full auth. Call auth.getSession using lastfmApiAuth class'); return FALSE; } } /** * Get a playlist of songs to play using the radio API. Must run radio.tune first. (Requires full auth) * @param array $methodVars An array with the following optional values: discovery and rtp * @return array */ public function getPlaylist($methodVars = Array()) { // Only allow full authed calls if ( $this->fullAuth == TRUE ) { $vars = array( 'method' => 'radio.getPlaylist', 'api_key' => $this->auth->apiKey, 'sk' => $this->auth->sessionKey ); $vars = array_merge($vars, $methodVars); $sig = $this->apiSig($this->auth->secret, $vars); $vars['api_sig'] = $sig; if ( $call = $this->apiPostCall($vars) ) { $playlist['version'] = (string) $call->playlist['version']; $playlist['title'] = (string) $call->playlist->title; $playlist['creator'] = (string) $call->playlist->creator; $playlist['date'] = strtotime((string) $call->playlist->date); $playlist['expire'] = (string) $call->playlist->link; if ( count($call->playlist->trackList) > 0 ) { $i = 0; foreach ( $call->playlist->trackList->track as $track ) { $playlist['tracklist'][$i]['location'] = (string) $track->location; $playlist['tracklist'][$i]['title'] = (string) $track->title; $playlist['tracklist'][$i]['identifier'] = (string) $track->identifier; $playlist['tracklist'][$i]['album'] = (string) $track->album; $playlist['tracklist'][$i]['creator'] = (string) $track->creator; $playlist['tracklist'][$i]['duration'] = (string) $track->duration; $playlist['tracklist'][$i]['image'] = (string) $track->image; $playlist['tracklist'][$i]['trackauth'] = (string) $track->extension->trackauth; $playlist['tracklist'][$i]['albumid'] = (string) $track->extension->albumid; $playlist['tracklist'][$i]['artistid'] = (string) $track->extension->artistid; $playlist['tracklist'][$i]['recording'] = (string) $track->extension->recording; $playlist['tracklist'][$i]['artistpage'] = (string) $track->extension->artistpage; $playlist['tracklist'][$i]['albumpage'] = (string) $track->extension->albumpage; $playlist['tracklist'][$i]['trackpage'] = (string) $track->extension->trackpage; $playlist['tracklist'][$i]['buyTrackURL'] = (string) $track->extension->buyTrackURL; $playlist['tracklist'][$i]['buyAlbumURL'] = (string) $track->extension->butAlbumURL; $playlist['tracklist'][$i]['freeTrackURL'] = (string) $track->extension->freeTrackURL; $i++; } } return $playlist; } else { return FALSE; } } else { // Give a 92 error if not fully authed $this->handleError(92, 'Method requires full auth. Call auth.getSession using lastfmApiAuth class'); return FALSE; } } } ?>