function resolve($request)
{
$query = implode(' - ', array($request->artist, $request->album, $request->track));
$params = array('Service' => 'AWSECommerceService', 'Version' => '2009-10-01', 'Timestamp' => date(DATE_ISO8601), 'AWSAccessKeyId' => $this->key, 'AssociateTag' => $this->tag, 'Operation' => 'ItemSearch', 'SearchIndex' => 'MP3Downloads', 'ResponseGroup' => 'ItemAttributes,Images', 'Keywords' => $query);
$params['Signature'] = $this->sign($params);
$xml = simplexml_load_file('http://' . $this->host . $this->path . '?' . http_build_query($params));
//print_r($xml);
if (!is_object($xml) || (string) $xml->Items->Request->IsValid != 'True') {
return array();
}
$items = array();
if (!empty($xml->Items->Item)) {
foreach ($xml->Items->Item as $item) {
$asin = (string) $item->ASIN;
$attr = $item->ItemAttributes;
$meta = array('score' => 1, 'source' => 'Amazon', 'artist' => (string) $attr->Creator, 'track' => (string) $attr->Title . ' [preview]', 'duration' => 30, 'trackno' => (string) $attr->TrackSequence, 'url' => 'http://www.amazon.com/gp/dmusic/get_sample_url.html?ASIN=' . $asin, 'info' => (string) $item->DetailPageURL);
foreach (array('LargeImage', 'MediumImage', 'SmallImage') as $image) {
if (isset($item->{$image})) {
$meta['image'] = (string) $item->{$image}->URL;
break;
}
}
$items[] = $meta;
}
}
return $items;
}