auth = $auth;
$this->fullAuth = $fullAuth;
$this->config = $config;
}
/**
* Set a user's attendance status for an event. (Requires full auth)
* @param array $methodVars An array with the following required values: eventId, status (0=Attending, 1=Maybe attending, 2=Not attending)
* @return boolean
*/
public function attend($methodVars) {
// Only allow full authed calls
if ( $this->fullAuth == TRUE ) {
// Check for required variables
if ( !empty($methodVars['event']) && !empty($methodVars['status']) ) {
$vars = array(
'method' => 'event.attend',
'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) ) {
return TRUE;
}
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 list of attendees for an event
* @param array $methodVars An array with the following required values: eventId
* @return array
*/
public function getAttendees($methodVars) {
// Check for required variables
if ( !empty($methodVars['event']) ) {
$vars = array(
'method' => 'event.getattendees',
'api_key' => $this->auth->apiKey
);
$vars = array_merge($vars, $methodVars);
if ( $call = $this->apiGetCall($vars) ) {
$attendees['id'] = (string) $call->attendees['event'];
$attendees['total'] = (string) $call->attendees['total'];
$i = 0;
foreach ( $call->attendees->user as $user ) {
$attendees['attendees'][$i]['name'] = (string) $user->name;
$attendees['attendees'][$i]['realname'] = (string) $user->realname;
$attendees['attendees'][$i]['images']['small'] = (string) $user->image[0];
$attendees['attendees'][$i]['images']['medium'] = (string) $user->image[1];
$attendees['attendees'][$i]['images']['large'] = (string) $user->image[2];
$attendees['attendees'][$i]['url'] = (string) $user->url;
$i++;
}
return $attendees;
}
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;
}
}
/**
* Get the metadata for an event on Last.fm. Includes attendance and lineup information
* @param array $methodVars An array with the following required values: eventId
* @return array
*/
public function getInfo($methodVars) {
// Check for required variables
if ( !empty($methodVars['event']) ) {
$vars = array(
'method' => 'event.getinfo',
'api_key' => $this->auth->apiKey
);
$vars = array_merge($vars, $methodVars);
if ( $call = $this->apiGetCall($vars) ) {
$info['id'] = (string) $call->event->id;
$info['title'] = (string) $call->event->title;
$ii = 0;
foreach ( $call->event->artists->artist as $artist ) {
$info['artists'][$ii] = (string) $artist;
$ii++;
}
$info['headliner'] = (string) $call->event->artists->headliner;
$info['venue']['name'] = (string) $call->event->venue->name;
$info['venue']['location']['city'] = (string) $call->event->venue->location->city;
$info['venue']['location']['country'] = (string) $call->event->venue->location->country;
$info['venue']['location']['street'] = (string) $call->event->venue->location->street;
$info['venue']['location']['postcode'] = (string) $call->event->venue->location->postalcode;
$geopoint = $call->event->venue->location->children('http://www.w3.org/2003/01/geo/wgs84_pos#');
$info['venue']['location']['geopoint']['lat'] = (string) $geopoint->point->lat;
$info['venue']['location']['geopoint']['long'] = (string) $geopoint->point->long;
$info['venue']['location']['timezone'] = (string) $call->event->venue->location->timezone;
$info['venue']['url'] = (string) $call->venue->url;
$info['startdate'] = strtotime(trim((string) $call->event->startDate));
$info['description'] = (string) $call->event->description;
$info['image']['small'] = (string) $call->event->image[0];
$info['image']['medium'] = (string) $call->event->image[1];
$info['image']['large'] = (string) $call->event->image[2];
$info['attendance'] = (string) $call->event->attendance;
$info['reviews'] = (string) $call->event->reviews;
$info['tag'] = (string) $call->event->tag;
$info['url'] = (string) $call->event->url;
return $info;
}
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;
}
}
/**
* Get shouts for this event
* @param array $methodVars An array with the following required values: eventId
* @return array
*/
public function getShouts($methodVars) {
// Check for required variables
if ( !empty($methodVars['event']) ) {
$vars = array(
'method' => 'event.getshouts',
'api_key' => $this->auth->apiKey
);
$vars = array_merge($vars, $methodVars);
if ( $call = $this->apiGetCall($vars) ) {
$shouts['id'] = (string) $call->shouts['event'];
$shouts['total'] = (string) $call->shouts['total'];
$i = 0;
foreach ( $call->shouts->shout as $shout ) {
$shouts['shouts'][$i]['body'] = (string) $shout->body;
$shouts['shouts'][$i]['author'] = (string) $shout->author;
$shouts['shouts'][$i]['date'] = strtotime((string) $shout->date);
$i++;
}
return $shouts;
}
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;
}
}
/**
* Share an event with one or more Last.fm users or other friends. (Requires full auth)
* @param array $methodVars An array with the following required values: eventId, recipient and option value: message
* @return boolean
*/
public function share($methodVars) {
// Only allow full authed calls
if ( $this->fullAuth == TRUE ) {
// Check for required variables
if ( !empty($methodVars['event']) && !empty($methodVars['recipient']) ) {
$vars = array(
'method' => 'event.share',
'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) ) {
return TRUE;
}
else {
return FALSE;
}
}
else {
// Give a 91 error if incorrect variables are used
$this->handleError(91, 'You must include eventId and recipient variables 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;
}
}
/**
* Shout in this event's shoutbox (Requires full auth)
* @param array $methodVars An array with the following required values: eventId, message
* @return boolean
*/
public function shout($methodVars) {
// Only allow full authed calls
if ( $this->fullAuth == TRUE ) {
// Check for required variables
if ( !empty($methodVars['event']) && !empty($methodVars['message']) ) {
$vars = array(
'method' => 'event.shout',
'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) ) {
return TRUE;
}
else {
return FALSE;
}
}
else {
// Give a 91 error if incorrect variables are used
$this->handleError(91, 'You must include eventId and message variables 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;
}
}
}
?>