ws = $ws; else { $this->ws = new mbWebService(); $this->ownWs = true; } $this->clientId = $clientId; } function getUserByName( $name ) { $metadata = $this->getFromWebService( "user", "", null, mbUserFilter().name($name) ); $list = $metadata->getUserList(true); if ( count($list) > 0 ) { return $list[0]; } throw mbResponseError("response didn't contain user data"); } function getArtists( mbArtistFilter $artist_filters ) { $metadata = $this->getFromWebService( "artist", "", null, $artist_filters ); return $metadata->getArtistResults2(true); } function getReleases( mbReleaseFilter $release_filters ) { $metadata = $this->getFromWebService( "release", "", null, $release_filters ); return $metadata->getReleaseResults2(true); } function getTracks( mbTrackFilter $track_filters ) { $metadata = $this->getFromWebService( "track", "", null, $track_filters ); return $metadata->getTrackResults2(true); } function getArtistById( $aID, mbArtistIncludes $artist_includes ) { try { $id = extractUuid($aID); } catch ( mbValueError $e ) { throw new mbRequestError($e->getMessage(),$e->getCode()); } $metadata = $this->getFromWebService( "artist", $id, $artist_includes ); $artist = $metadata->getArtist(true); return $artist; } function getReleaseById( $rID, mbReleaseIncludes $release_includes ) { try { $id = extractUuid($rID); } catch ( mbValueError $e ) { throw new mbRequestError($e->getMessage(),$e->getCode()); } $metadata = $this->getFromWebService( "release", $id, $release_includes ); $release = $metadata->getRelease(true); return $release; } function getTrackById( $tID, mbTrackIncludes $track_includes ) { try { $id = extractUuid($tID); } catch ( mbValueError $e ) { throw new mbRequestError($e->getMessage(),$e->getCode()); } $metadata = $this->getFromWebService( "track", $id, $track_includes ); $track = $metadata->getTrack(true); return $track; } protected function getFromWebService( $entity, $id, $includes=null, $filters=null ) { $includeList = $includes ? $includes->createIncludeTags() : null; $filterList = $filters ? $filters->createParameters() : null; $content = $this->ws->get( $entity, $id, $includeList, $filterList ); try { $parser = new mbXmlParser(); $parsed_content = $parser->parse($content); return $parsed_content; } catch ( mbParseError $e ) { throw new mbResponseError( $e->getMessage(), $e->getCode() ); } } function submitPuids( array $tracks2puids ) { if ( empty($this->clientId) ) { throw WebServiceError("Please supply a client ID"); } $params = array( array( 'client', $this->clientId ) ); foreach ( $tracks2puids as $puid => $track ) { $params[] = array( 'puid', extractUuid($puid).' '.$track ); } $this->ws->post("track", "", urlencode($params) ); } } ?>