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;
}
}
}
?>