auth = $auth; $this->fullAuth = $fullAuth; $this->config = $config; } /** * Get all events in a specific location by country or city name. * @param array $methodVars An array with the following required values: location and optional values: distance, page * @return array */ public function getEvents($methodVars) { // Check for required variables if ( !empty($methodVars['location']) ) { $vars = array( 'method' => 'geo.getevents', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $events['location'] = (string) $call->events['location']; $events['currentPage'] = (string) $call->events['page']; $events['totalPages'] = (string) $call->events['totalpages']; $events['totalResults'] = (string) $call->events['total']; $i = 0; foreach ( $call->events->event as $event ) { $events['events'][$i]['id'] = (string) $event->id; $events['events'][$i]['title'] = (string) $event->title; $ii = 0; foreach ( $event->artists->artist as $artist ) { $events['events'][$i]['artists'][$ii] = (string) $artist; $ii++; } $events['events'][$i]['headliner'] = (string) $event->artists->headliner; $events['events'][$i]['venue']['name'] = (string) $event->venue->name; $events['events'][$i]['venue']['location']['city'] = (string) $event->venue->location->city; $events['events'][$i]['venue']['location']['country'] = (string) $event->venue->location->country; $events['events'][$i]['venue']['location']['street'] = (string) $event->venue->location->street; $events['events'][$i]['venue']['location']['postalcode'] = (string) $event->venue->location->postalcode; $geoTags = $event->venue->location->children('http://www.w3.org/2003/01/geo/wgs84_pos#'); $events['events'][$i]['venue']['location']['point']['lat'] = (string) $geoTags->point->lat; $events['events'][$i]['venue']['location']['point']['long'] = (string) $geoTags->point->long; $events['events'][$i]['venue']['location']['timezone'] = (string) $event->venue->location->timezone; $events['events'][$i]['venue']['url'] = (string) $event->venue->url; $events['events'][$i]['startDate'] = strtotime(trim((string) $event->startDate)); $events['events'][$i]['startTime'] = (string) $event->startTime; $events['events'][$i]['description'] = (string) $event->description; $events['events'][$i]['attendance'] = (string) $event->attendance; $events['events'][$i]['reviews'] = (string) $event->reviews; $events['events'][$i]['tag'] = (string) $event->tag; $events['events'][$i]['url'] = (string) $event->url; $i++; } return $events; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a location varialbe in the call for this method'); return FALSE; } } /** * Get the most popular artists on Last.fm by country * @param array $methodVars An array with the following required values: country * @return array */ public function getTopArtists($methodVars) { // Check for required variables if ( !empty($methodVars['country']) ) { $vars = array( 'method' => 'geo.gettopartists', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->topartists->artist as $artist ) { $topArtists[$i]['name'] = (string) $artist->name; $topArtists[$i]['rank'] = (string) $artist['rank']; $topArtists[$i]['playcount'] = (string) $artist->playcount; $topArtists[$i]['mbid'] = (string) $artist->mbid; $topArtists[$i]['url'] = (string) $artist->url; $topArtists[$i]['streamable'] = (string) $artist->streamable; $topArtists[$i]['image']['small'] = (string) $artist->image[0]; $topArtists[$i]['image']['medium'] = (string) $artist->image[1]; $topArtists[$i]['image']['large'] = (string) $artist->image[2]; $i++; } return $topArtists; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a country varialbe in the call for this method'); return FALSE; } } /** * Get the most popular tracks on Last.fm last week by country * @param array $methodVars An array with the following required values: country * @return array */ public function getTopTracks($methodVars) { // Check for required variables if ( !empty($methodVars['country']) ) { $vars = array( 'method' => 'geo.gettoptracks', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->toptracks->track as $track ) { $topTracks[$i]['name'] = (string) $track->name; $topTracks[$i]['rank'] = (string) $track['rank']; $topTracks[$i]['playcount'] = (string) $track->playcount; $topTracks[$i]['mbid'] = (string) $track->mbid; $topTracks[$i]['url'] = (string) $track->url; $topTracks[$i]['streamable'] = (string) $track->streamable; $topTracks[$i]['fulltrack'] = (string) $track->streamable['fulltrack']; $topTracks[$i]['artist']['name'] = (string) $track->artist->name; $topTracks[$i]['artist']['mbid'] = (string) $track->artist->mbid; $topTracks[$i]['artist']['url'] = (string) $track->artist->url; $topTracks[$i]['image']['small'] = (string) $track->image[0]; $topTracks[$i]['image']['medium'] = (string) $track->image[1]; $topTracks[$i]['image']['large'] = (string) $track->image[2]; $i++; } return $topTracks; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a country varialbe in the call for this method'); return FALSE; } } } ?>