auth = $auth; $this->fullAuth = $fullAuth; $this->config = $config; } /** * Get a list of members for this group * @param array $methodVars An array with the following required values: group * @return array */ public function getMembers($methodVars) { // Check for required variables if ( !empty($methodVars['group']) ) { $vars = array( 'method' => 'group.getmembers', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; $members['for'] = (string) $call->members['for']; $members['page'] = (string) $call->members['page']; $members['perPage'] = (string) $call->members['perPage']; $members['totalPages'] = (string) $call->members['totalPages']; foreach ( $call->members->user as $user ) { $members['members'][$i]['name'] = (string) $user->name; $members['members'][$i]['realname'] = (string) $user->realname; $members['members'][$i]['url'] = (string) $user->url; $members['members'][$i]['image']['small'] = (string) $user->image[0]; $members['members'][$i]['image']['medium'] = (string) $user->image[1]; $members['members'][$i]['image']['large'] = (string) $user->image[2]; $i++; } return $members; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a group variable in the call for this method'); return FALSE; } } /** * Get an album chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group * @param array $methodVars An array with the following required values: group and optional values: from, to * @return array */ public function getWeeklyAlbumChart($methodVars) { // Check for required variables if ( !empty($methodVars['group']) ) { $vars = array( 'method' => 'group.getweeklyalbumchart', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->weeklyalbumchart->album as $album ) { $albums[$i]['name'] = (string) $album->name; $albums[$i]['rank'] = (string) $album['rank']; $albums[$i]['artist']['name'] = (string) $album->artist; $albums[$i]['artist']['mbid'] = (string) $album->artist['mbid']; $albums[$i]['playcount'] = (string) $album->playcount; $albums[$i]['url'] = (string) $album->url; $i++; } return $albums; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a group variable in the call for this method'); return FALSE; } } /** * Get an artist chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group * @param array $methodVars An array with the following required values: group and optional values: from, to * @return array */ public function getWeeklyArtistChart($methodVars) { // Check for required variables if ( !empty($methodVars['group']) ) { $vars = array( 'method' => 'group.getweeklyartistchart', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->weeklyartistchart->artist as $artist ) { $artists[$i]['name'] = (string) $artist->name; $artists[$i]['rank'] = (string) $artist['rank']; $artists[$i]['mbid'] = (string) $artist->mbid; $artists[$i]['playcount'] = (string) $artist->playcount; $artists[$i]['url'] = (string) $artist->url; $i++; } return $artists; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a group variable in the call for this method'); return FALSE; } } /** * Get a list of available charts for this group, expressed as date ranges which can be sent to the chart services * @param array $methodVars An array with the following required values: group * @return array */ public function getWeeklyChartList($methodVars) { // Check for required variables if ( !empty($methodVars['group']) ) { $vars = array( 'method' => 'group.getweeklychartlist', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->weeklychartlist->chart as $chart ) { $chartList[$i]['from'] = (string) $chart['from']; $chartList[$i]['to'] = (string) $chart['to']; $i++; } return $chartList; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a group variable in the call for this method'); return FALSE; } } /** * Get a track chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group * @param array $methodVars An array with the following required values: group and optional values: from, to * @return array */ public function getWeeklyTrackChart($methodVars) { // Check for required variables if ( !empty($methodVars['group']) ) { $vars = array( 'method' => 'group.getweeklytrackchart', 'api_key' => $this->auth->apiKey ); $vars = array_merge($vars, $methodVars); if ( $call = $this->apiGetCall($vars) ) { $i = 0; foreach ( $call->weeklytrackchart->track as $track ) { $tracks[$i]['name'] = (string) $track->name; $tracks[$i]['rank'] = (string) $track['rank']; $tracks[$i]['artist']['name'] = (string) $track->artist; $tracks[$i]['artist']['mbid'] = (string) $track->artist['mbid']; $tracks[$i]['playcount'] = (string) $track->playcount; $tracks[$i]['url'] = (string) $track->url; $i++; } return $tracks; } else { return FALSE; } } else { // Give a 91 error if incorrect variables are used $this->handleError(91, 'You must include a group variable in the call for this method'); return FALSE; } } } ?>