Mercurial > hg > ywww
comparison xml/getAmazonInfo.php @ 19:84a412b8122c
try to protect against a range of missing info
| author | Charlie Root |
|---|---|
| date | Thu, 30 Aug 2018 17:18:12 -0400 |
| parents | c41a5802b26c |
| children | 46382face560 |
comparison
equal
deleted
inserted
replaced
| 18:c41a5802b26c | 19:84a412b8122c |
|---|---|
| 106 //$lastReqTime=(int)(microtime(true)*1000); // milliseconds | 106 //$lastReqTime=(int)(microtime(true)*1000); // milliseconds |
| 107 curl_close($crl); | 107 curl_close($crl); |
| 108 | 108 |
| 109 /*$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><ItemLookupErrorResponse xmlns=\"http://ecs.amazonaws.com/doc/2009-03-31/\"><Error><Code>AccountLimitExceeded</Code><Message>Account limit of 2056 requests per hour exceeded.</Message></Error><RequestID>290ed059-730c-4789-93b4-6d21e11053d3</RequestID></ItemLookupErrorResponse>");*/ | 109 /*$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><ItemLookupErrorResponse xmlns=\"http://ecs.amazonaws.com/doc/2009-03-31/\"><Error><Code>AccountLimitExceeded</Code><Message>Account limit of 2056 requests per hour exceeded.</Message></Error><RequestID>290ed059-730c-4789-93b4-6d21e11053d3</RequestID></ItemLookupErrorResponse>");*/ |
| 110 $review = ""; | 110 $review = ""; |
| 111 $review1 = ""; | |
| 112 $review2 = ""; | |
| 113 $review3 = ""; | |
| 111 // HST added this | 114 // HST added this |
| 112 if (preg_match("<Error>",$output)) { | 115 if (preg_match("<Error>",$output)) { |
| 113 $xml = new SimpleXMLElement($output); | 116 $xml = new SimpleXMLElement($output); |
| 114 $resName=$xml->getName(); | 117 $resName=$xml->getName(); |
| 115 $code=$xml->Error->Code; | 118 $code=$xml->Error->Code; |
| 143 // /var/ywww/xml/getAmazonInfo.php on line [109] | 146 // /var/ywww/xml/getAmazonInfo.php on line [109] |
| 144 // See the dumped structure at the end of this file for the | 147 // See the dumped structure at the end of this file for the |
| 145 // cause | 148 // cause |
| 146 restore_error_handler(); | 149 restore_error_handler(); |
| 147 //echo $review; | 150 //echo $review; |
| 148 $review1 = ""; | |
| 149 $review2 = ""; | |
| 150 $review3 = ""; | |
| 151 } | 151 } |
| 152 if ($review != "") | 152 if ($review != "") |
| 153 { | 153 { |
| 154 $text = @file_get_contents($review . "&truncate=300"); | 154 $text = @file_get_contents($review . "&truncate=300"); |
| 155 $removeTop1 = preg_replace('~<div class="crIFrameHeaderLeftColumn">(.*?)<div class="crIFrameHeaderHistogram">~si', '', $text); | 155 $removeTop1 = preg_replace('~<div class="crIFrameHeaderLeftColumn">(.*?)<div class="crIFrameHeaderHistogram">~si', '', $text); |
| 258 //echo $errorCode; | 258 //echo $errorCode; |
| 259 | 259 |
| 260 if($errorCode != "AccountLimitExceeded") | 260 if($errorCode != "AccountLimitExceeded") |
| 261 { | 261 { |
| 262 if($go == 1) { | 262 if($go == 1) { |
| 263 $item = $xml->Items->Item[0]; | |
| 264 if ($item && $item->ItemAttributes && $item->ItemAttributes->Title) { | |
| 265 $title = $item->ItemAttributes->Title; } | |
| 266 else { $title = "[no title]"; }; | |
| 263 file_put_contents('/var/ywww/debug/phpDebug',"win: ". | 267 file_put_contents('/var/ywww/debug/phpDebug',"win: ". |
| 264 $xml->Items->Item->ItemAttributes->Title."\n", | 268 $title."\n", |
| 265 FILE_APPEND); | 269 FILE_APPEND); |
| 266 return $output; | 270 return $output; |
| 267 } | 271 } |
| 268 else | 272 else |
| 273 { | |
| 274 if ($xml->Items->Item) { | |
| 275 $title = $xml->Items->Item[0]->ItemAttributes->Title; | |
| 276 $author = $xml->Items->Item[0]->ItemAttributes->Author; | |
| 277 $binding = $xml->Items->Item[0]->ItemAttributes->Binding; | |
| 278 $dewey = $xml->Items->Item[0]->ItemAttributes->DeweyDecimalNumber; | |
| 279 if($dewey == "") | |
| 280 $dewey = "null"; | |
| 281 $imageURL = $xml->Items->Item[0]->MediumImage->URL; | |
| 282 $salesRank = $xml->Items->Item[0]->SalesRank; | |
| 283 $pubDate = $xml->Items->Item[0]->ItemAttributes->PublicationDate; | |
| 284 $publisher = $xml->Items->Item[0]->ItemAttributes->Publisher; | |
| 285 } | |
| 286 else { | |
| 287 $title = $salesRank = ""; | |
| 288 $dewey = "null"; | |
| 289 } | |
| 290 | |
| 291 $genreID = ""; | |
| 292 $genre = ""; | |
| 293 $genArr = array(); | |
| 294 | |
| 295 if ($xml->Items->Item[0] && $xml->Items->Item[0]->BrowseNodes) { | |
| 296 for($i=0;$i<sizeof($xml->Items->Item->BrowseNodes->BrowseNode);$i++){ | |
| 297 //sexy recursive function | |
| 298 findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre); | |
| 299 | |
| 300 if($genre != "") | |
| 301 $genArr[strval($genreID)] = strval($genre); | |
| 302 //$genArr[$i] = array(strval($genreID) => strval($genre)); | |
| 303 | |
| 304 //echo $genre; | |
| 305 //echo $genreID; | |
| 306 | |
| 307 $genre = ""; | |
| 308 $genreID = ""; | |
| 309 } | |
| 310 } | |
| 311 | |
| 312 $g1 = "null"; | |
| 313 $g2 = "null"; | |
| 314 $g3 = "null"; | |
| 315 $loop = 1; | |
| 316 | |
| 317 foreach ($genArr as $key => $value) { | |
| 318 //echo "$key => $value"; | |
| 319 $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table | |
| 320 //echo $queryG; | |
| 321 include "../../private/db.php"; | |
| 322 $resG = mysqli_query($link, $queryG); | |
| 323 mysqli_close($link); | |
| 324 | |
| 325 switch ($loop) { | |
| 326 case 1: | |
| 327 $g1 = $key; | |
| 328 break; | |
| 329 case 2: | |
| 330 $g2 = $key; | |
| 331 break; | |
| 332 case 3: | |
| 333 $g3 = $key; | |
| 334 break; | |
| 335 } | |
| 336 | |
| 337 $loop++; | |
| 338 } | |
| 339 | |
| 340 if($salesRank == "") | |
| 341 $salesRank = "null"; | |
| 342 | |
| 343 $title = strtr($title, '"', "'"); | |
| 344 include "../../private/db.php"; | |
| 345 $review1 = mysqli_real_escape_string($link,$review1); | |
| 346 $review2 = mysqli_real_escape_string($link,$review2); | |
| 347 $review3 = mysqli_real_escape_string($link,$review3); | |
| 348 | |
| 349 if($title != "") | |
| 269 { | 350 { |
| 270 $title = $xml->Items->Item->ItemAttributes->Title; | 351 $queryInsert = "CALL b_addNewBook(\"$searchparameterdata\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,\"$pubDate\",\"$publisher\",$g1,$g2,$g3,$loc)"; |
| 271 $author = $xml->Items->Item->ItemAttributes->Author; | 352 //echo $queryInsert; |
| 272 $binding = $xml->Items->Item->ItemAttributes->Binding; | 353 $queryInsertReviews = "CALL b_insertReviews(\"$searchparameterdata\",\"$review1\",\"$review2\",\"$review3\")"; |
| 273 $dewey = $xml->Items->Item->ItemAttributes->DeweyDecimalNumber; | |
| 274 if($dewey == "") | |
| 275 $dewey = "null"; | |
| 276 $imageURL = $xml->Items->Item->MediumImage->URL; | |
| 277 $salesRank = $xml->Items->Item->SalesRank; | |
| 278 $pubDate = $xml->Items->Item->ItemAttributes->PublicationDate; | |
| 279 $publisher = $xml->Items->Item->ItemAttributes->Publisher; | |
| 280 | |
| 281 $genreID = ""; | |
| 282 $genre = ""; | |
| 283 $genArr = array(); | |
| 284 | |
| 285 for($i=0;$i<sizeof($xml->Items->Item->BrowseNodes->BrowseNode);$i++){ | |
| 286 //sexy recursive function | |
| 287 findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre); | |
| 288 | 354 |
| 289 if($genre != "") | 355 $resG = mysqli_query($link, $queryInsert) or exit( mysqli_error( $link )); |
| 290 $genArr[strval($genreID)] = strval($genre); | 356 if($review1 != "" && $review2 != "" && $review3 != "") |
| 291 //$genArr[$i] = array(strval($genreID) => strval($genre)); | 357 $resG = mysqli_query($link, $queryInsertReviews) or exit( mysqli_error( $link )); |
| 292 | |
| 293 //echo $genre; | |
| 294 //echo $genreID; | |
| 295 | |
| 296 $genre = ""; | |
| 297 $genreID = ""; | |
| 298 } | |
| 299 | |
| 300 $g1 = "null"; | |
| 301 $g2 = "null"; | |
| 302 $g3 = "null"; | |
| 303 $loop = 1; | |
| 304 | |
| 305 foreach ($genArr as $key => $value) { | |
| 306 //echo "$key => $value"; | |
| 307 $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table | |
| 308 //echo $queryG; | |
| 309 include "../../private/db.php"; | |
| 310 $resG = mysqli_query($link, $queryG); | |
| 311 mysqli_close($link); | |
| 312 | |
| 313 switch ($loop) { | |
| 314 case 1: | |
| 315 $g1 = $key; | |
| 316 break; | |
| 317 case 2: | |
| 318 $g2 = $key; | |
| 319 break; | |
| 320 case 3: | |
| 321 $g3 = $key; | |
| 322 break; | |
| 323 } | |
| 324 | |
| 325 $loop++; | |
| 326 } | |
| 327 | |
| 328 if($salesRank == "") | |
| 329 $salesRank = "null"; | |
| 330 | |
| 331 $title = strtr($title, '"', "'"); | |
| 332 include "../../private/db.php"; | |
| 333 $review1 = mysqli_real_escape_string($link,$review1); | |
| 334 $review2 = mysqli_real_escape_string($link,$review2); | |
| 335 $review3 = mysqli_real_escape_string($link,$review3); | |
| 336 | |
| 337 if($title != "") | |
| 338 { | |
| 339 $queryInsert = "CALL b_addNewBook(\"$searchparameterdata\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,\"$pubDate\",\"$publisher\",$g1,$g2,$g3,$loc)"; | |
| 340 //echo $queryInsert; | |
| 341 $queryInsertReviews = "CALL b_insertReviews(\"$searchparameterdata\",\"$review1\",\"$review2\",\"$review3\")"; | |
| 342 | |
| 343 $resG = mysqli_query($link, $queryInsert) or exit( mysqli_error( $link )); | |
| 344 if($review1 != "" && $review2 != "" && $review3 != "") | |
| 345 $resG = mysqli_query($link, $queryInsertReviews) or exit( mysqli_error( $link )); | |
| 346 | 358 |
| 347 mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop | 359 mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop |
| 348 } | |
| 349 | |
| 350 echo $output; | |
| 351 } | 360 } |
| 361 | |
| 362 echo $output; | |
| 363 } | |
| 352 } | 364 } |
| 353 else | 365 else |
| 354 { | 366 { |
| 355 //look up info from db | 367 //look up info from db |
| 356 include "../../private/db.php"; | 368 include "../../private/db.php"; |
