コード例 #1
0
 function lookup($isbn, $type = "medium")
 {
     // Hide warnings on results in safe mode
     //error_reporting(0);
     // Lookup amazon first
     require_once 'cloudfusion/cloudfusion.class.php';
     // Load cover options
     require_once '../classes/CoverOptsQuery.php';
     $opt = CoverOptsQuery::getAWS();
     if (empty($opt['aws_key']) || empty($opt['aws_secret_key'])) {
         $this->_lastError = 'MissingKeyError: Missing AWS keys in Admin > Cover Lookup Options, please fill them.';
         return false;
     }
     define('AWS_KEY', $opt['aws_key']);
     define('AWS_SECRET_KEY', $opt['aws_secret_key']);
     define('AWS_ACCOUNT_ID', $opt['aws_account_id']);
     // Remove trail data from ISBN
     $isbn = explode(' ', $isbn);
     $isbn = preg_replace("/[^x0-9]+/", '', $isbn[0]);
     try {
         $pas = new AmazonPAS();
         $response = $pas->item_lookup($isbn, array('IdType' => 'ISBN', 'SearchIndex' => 'Books', 'ResponseGroup' => 'Images'));
         if (isset($response->body->Error)) {
             $this->_lastError = $response->body->Error->Code . ': ' . $response->body->Error->Message;
             return false;
         }
         if ($type == "large") {
             if (!empty($response->body->Items->Item->LargeImage)) {
                 return '' . $response->body->Items->Item->LargeImage->URL;
             }
         }
         if (!empty($response->body->Items->Item->MediumImage)) {
             return '' . $response->body->Items->Item->MediumImage->URL;
         }
         $this->_lastError = 'ISBNNotFound: Couldn\'t find any information for this ISBN.';
         return false;
     } catch (Exception $e) {
         $this->_lastError = 'ConnectionError: Couldn\'t connect to AWS service.';
         return false;
     }
 }