# HG changeset patch
# User Charlie Root
# Date 1546687272 18000
# Node ID 3f400072bf14de91479134450bcf0d2beacc9c77
# Parent 0578c6e438d355f7cc77c7dda976fc7771b50701# Parent 2c0c95bd97a6c5051b85c80b3f85620735cd26ad
merge, involved ediff3 wrt getAmazonInfo.php
diff -r 0578c6e438d3 -r 3f400072bf14 .hgignore
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Sat Jan 05 06:21:12 2019 -0500
@@ -0,0 +1,2 @@
+test
+~$
diff -r 0578c6e438d3 -r 3f400072bf14 503.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/503.html Sat Jan 05 06:21:12 2019 -0500
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+YourNextRead: Site temporarily unavailable
+
+
+
+
+
+
+ Site temporarily unavailable
+ Please check back in an hour or so.
+
+
+
+ root
+
+
+Last modified: Tue Jan 1 08:16:45 EST 2019
+
+
+
diff -r 0578c6e438d3 -r 3f400072bf14 ca/index.php
--- a/ca/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/ca/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -60,7 +60,7 @@
{
echo "";
echo "";
-
+ echo "";
echo "";
echo "";
@@ -140,8 +140,25 @@
{
$bookDetails = getAmazonDet($isbn,1,'ca');
$bookXML = new SimpleXMLElement($bookDetails);
- $title = $bookXML->Items->Item[0]->ItemAttributes->Title;
- $author = $bookXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookXML->Items && $bookXML->Items->Item[0] &&
+ $bookXML->Items->Item[0]->ItemAttributes)
+ { $attrs=$bookXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $title = $attrs->Title; }
+ else {
+ $title ="[no Title]";
+ }
+ if ($attrs->Author) {
+ $author = $attrs->Author;
+ }
+ else {
+ $author ="[no Author]";
+ }
+ }
+ else {
+ $title ="[no Title]";
+ $author = "[no Author]";
+ }
}
$linkedBooks = include "../php/read/getLinkedBooks.php";
@@ -166,8 +183,21 @@
{
$bookLDetails = getAmazonDet($linkedISBN,1,'ca');
$bookLXML = new SimpleXMLElement($bookLDetails);
- $titleL = $bookLXML->Items->Item[0]->ItemAttributes->Title;
- $authorL = $bookLXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookLXML->Items &&
+ $bookLXML->Items->Item[0] &&
+ $bookLXML->Items->Item[0]->ItemAttributes) {
+ $attrs=$bookLXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $titleL = $attrs->Title; }
+ else {
+ $titleL = ""; }
+ if ($attrs->Author) {
+ $authorL = $attrs->Author; }
+ else {
+ $authorL = ""; }
+ }
+ else {
+ $titleL = ""; }
}
if($titleL != "")
{
@@ -204,6 +234,7 @@
echo "";
echo $launchScript;//"";
}
+
echo "";
echo "";
@@ -222,7 +253,7 @@
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
- }
+ }
}
}
else
@@ -252,6 +283,7 @@
echo "";
echo $launchScript;//"";
}
+
echo "";
echo "";
@@ -271,7 +303,7 @@
FB.Canvas.setSize(obj);
";
}
- }
+ }
?>
diff -r 0578c6e438d3 -r 3f400072bf14 de/index.php
--- a/de/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/de/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -124,7 +124,7 @@
$ret = 1;
$countryCode = 3;
- include "../../private/db.php";
+ include "../../private/db.php";
$query = "CALL b_getBookInfo('$isbn', $countryCode)";
//echo $query;
$res = mysqli_query($link, $query) or exit( mysqli_error( $link ));
@@ -138,10 +138,27 @@
}
else
{
- $bookDetails = getAmazonDet($isbn,1,'ca');
+ $bookDetails = getAmazonDet($isbn,1,'de');
$bookXML = new SimpleXMLElement($bookDetails);
- $title = $bookXML->Items->Item[0]->ItemAttributes->Title;
- $author = $bookXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookXML->Items && $bookXML->Items->Item[0] &&
+ $bookXML->Items->Item[0]->ItemAttributes)
+ { $attrs=$bookXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $title = $attrs->Title; }
+ else {
+ $title ="[no Title]";
+ }
+ if ($attrs->Author) {
+ $author = $attrs->Author;
+ }
+ else {
+ $author ="[no Author]";
+ }
+ }
+ else {
+ $title ="[no Title]";
+ $author = "[no Author]";
+ }
}
$linkedBooks = include "../php/read/getLinkedBooks.php";
@@ -166,8 +183,21 @@
{
$bookLDetails = getAmazonDet($linkedISBN,1,'de');
$bookLXML = new SimpleXMLElement($bookLDetails);
- $titleL = $bookLXML->Items->Item[0]->ItemAttributes->Title;
- $authorL = $bookLXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookLXML->Items &&
+ $bookLXML->Items->Item[0] &&
+ $bookLXML->Items->Item[0]->ItemAttributes) {
+ $attrs=$bookLXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $titleL = $attrs->Title; }
+ else {
+ $titleL = ""; }
+ if ($attrs->Author) {
+ $authorL = $attrs->Author; }
+ else {
+ $authorL = ""; }
+ }
+ else {
+ $titleL = ""; }
}
if($titleL != "")
{
@@ -273,7 +303,7 @@
FB.Canvas.setSize(obj);
";
}
- }
+ }
?>
diff -r 0578c6e438d3 -r 3f400072bf14 fr/index.php
--- a/fr/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/fr/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -117,7 +117,7 @@
}
else
{
- try{
+ try{
$isbn = substr($isbn, 5);
$chars = explode("/",$isbn);
$isbn = $chars[0];
@@ -140,8 +140,25 @@
{
$bookDetails = getAmazonDet($isbn,1,'fr');
$bookXML = new SimpleXMLElement($bookDetails);
- $title = $bookXML->Items->Item[0]->ItemAttributes->Title;
- $author = $bookXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookXML->Items && $bookXML->Items->Item[0] &&
+ $bookXML->Items->Item[0]->ItemAttributes)
+ { $attrs=$bookXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $title = $attrs->Title; }
+ else {
+ $title ="[no Title]";
+ }
+ if ($attrs->Author) {
+ $author = $attrs->Author;
+ }
+ else {
+ $author ="[no Author]";
+ }
+ }
+ else {
+ $title ="[no Title]";
+ $author = "[no Author]";
+ }
}
$linkedBooks = include "../php/read/getLinkedBooks.php";
@@ -166,8 +183,21 @@
{
$bookLDetails = getAmazonDet($linkedISBN,1,'fr');
$bookLXML = new SimpleXMLElement($bookLDetails);
- $titleL = $bookLXML->Items->Item[0]->ItemAttributes->Title;
- $authorL = $bookLXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookLXML->Items &&
+ $bookLXML->Items->Item[0] &&
+ $bookLXML->Items->Item[0]->ItemAttributes) {
+ $attrs=$bookLXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $titleL = $attrs->Title; }
+ else {
+ $titleL = ""; }
+ if ($attrs->Author) {
+ $authorL = $attrs->Author; }
+ else {
+ $authorL = ""; }
+ }
+ else {
+ $titleL = ""; }
}
if($titleL != "")
{
@@ -245,13 +275,13 @@
";
if($iPhone && !$iPad)
{
- echo "";
- echo "";
+ echo "";
+ echo "";
}
else
{
- echo "";
- echo $launchScript;//"";
+ echo "";
+ echo $launchScript;//"";
}
echo "";
@@ -273,7 +303,7 @@
FB.Canvas.setSize(obj);
";
}
- }
+ }
?>
diff -r 0578c6e438d3 -r 3f400072bf14 geoiptest.php
--- a/geoiptest.php Sun Jul 30 05:36:48 2017 -0400
+++ b/geoiptest.php Sat Jan 05 06:21:12 2019 -0500
@@ -1,8 +1,19 @@
diff -r 0578c6e438d3 -r 3f400072bf14 index.php
--- a/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -1,31 +1,42 @@
-
@@ -35,5 +46,6 @@
+
diff -r 0578c6e438d3 -r 3f400072bf14 php/read/aws_signed_request.php
--- a/php/read/aws_signed_request.php Sun Jul 30 05:36:48 2017 -0400
+++ b/php/read/aws_signed_request.php Sat Jan 05 06:21:12 2019 -0500
@@ -3,6 +3,49 @@
//20090627/Jaap van Ganswijk: This is a modified version, see the
//return statement some lines before the end of the last function.
+
+$Aassociates_id=array(
+ 'uk' => 'bookwhack-21',
+ 'us' => 'your02b-20',
+ 'ca' => 'book009-20',
+ 'de' => 'book04c-21',
+ 'fr' => 'book07f-21',
+ );
+
+$Aserver=array(
+ 'ca' => array(
+ 'ext' => 'ca' , //Canadian normal server
+ 'nor' => 'http://www.amazon.ca' , //Canadian normal server
+ 'xml' => 'http://xml.amazon.com' , //Canadian xml server
+ ),
+ 'de' => array(
+ 'ext' => 'de' , //German normal server
+ 'nor' => 'http://www.amazon.de' , //German normal server
+ 'xml' => 'http://xml-eu.amazon.com', //German xml server
+ ),
+ 'fr' => array(
+ 'ext' => 'fr' , //French normal server
+ 'nor' => 'http://www.amazon.fr' , //French normal server
+ 'xml' => 'http://xml-eu.amazon.com', //French xml server
+ ),
+ 'jp' => array(
+ 'ext' => 'jp' , //Japanese normal server, not co.jp!
+ 'nor' => 'http://www.amazon.co.jp' , //Japanese normal server
+ 'xml' => 'http://xml.amazon.com' , //Japanese xml server
+ ),
+ 'uk' => array(
+ 'ext' => 'co.uk' , //UK normal server
+ 'nor' => 'http://www.amazon.co.uk' , //UK normal server
+ 'xml' => 'http://xml-eu.amazon.com', //UK xml server
+ ),
+ 'us' => array(
+ 'ext' => 'com' , //USA normal server
+ 'nor' => 'http://www.amazon.com' , //USA normal server
+ 'xml' => 'http://xml.amazon.com' , //USA xml server
+ ),
+ );
+
+
if (!function_exists("aws_signed_request")) {
function aws_signed_request($region, $params, $public_key, $private_key)
{
diff -r 0578c6e438d3 -r 3f400072bf14 php/read/getAllSavedBooks.php
--- a/php/read/getAllSavedBooks.php Sun Jul 30 05:36:48 2017 -0400
+++ b/php/read/getAllSavedBooks.php Sat Jan 05 06:21:12 2019 -0500
@@ -32,6 +32,7 @@
$prevListName = "";
+if ($results) {
while($line = mysqli_fetch_assoc($results)) {
$listName = htmlspecialchars(trim($line["SavedListName"]));
@@ -58,12 +59,14 @@
$savedBooks++;
}
-
- if($savedBooks != 0)
- {
- $output .= "";
- $output .= "";
- }
+ $results->free();
+ }
+mysqli_close($link);
+if($savedBooks != 0)
+ {
+ $output .= "";
+ $output .= "";
+ }
$output .= "";
if(isset($ret))
@@ -71,7 +74,7 @@
else
echo $output;
-mysqli_close($link);
+
?>
\ No newline at end of file
diff -r 0578c6e438d3 -r 3f400072bf14 php/read/getBookDetails.php
--- a/php/read/getBookDetails.php Sun Jul 30 05:36:48 2017 -0400
+++ b/php/read/getBookDetails.php Sat Jan 05 06:21:12 2019 -0500
@@ -69,6 +69,7 @@
if ( mysqli_num_rows( $res ) > 0 )
{
$rows=mysqli_fetch_array($res, MYSQLI_ASSOC);
+ mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
$timestamp=$rows['Timestamp'];
//echo $timestamp;
date_default_timezone_set('UTC');
@@ -97,256 +98,253 @@
$output .= "Book";
}
}
- mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
- include "../../../private/db.php";
+ else {
+ mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
+ }
if($proceed == true)
- {
- include "aws_signed_request.php";
- //book does not exist already so look up all the info from browse nodes....
+ {
+ include "aws_signed_request.php";
+ include_once "../../xml/doAmazonRequest.inc";
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "nbd proceeding: $isbn\n",
+ FILE_APPEND);
+
+ //book does not exist already so look up all the info from browse nodes....
+
+ $Adefault=array(
+ 'language' =>'en', //what language to render the page in
+ 'locale' =>'us', //which server's products? available: ca,de,fr,jp,uk,us
+ 'page' =>1, //first page to show (we are counting from 1 not 0)
+ 'operation' =>'ItemLookup', //what to do? //ItemSearch
+ 'searchparameter' =>'ItemId', //what kind of search?
+ 'searchindex' => 'Books',
+ 'searchparameterdata'=>$isbn, //what to search for?
+ 'search' =>$isbn,
+ //here some debugging flags you can put at the end of the URL to call this script with, like: '?show_array=true'
+ 'show_array' =>false, //debug: show complete incoming array? You can use this to see what other information Amazon is sending
+ 'show_url' =>false, //debug: show XML request url to be send to Amazon?
+ 'show_xml' =>false, //debug: show incoming XML code from Amazon?
+ );
+ //change the debug options to true if you want to activate them or call the script with '?show_array=true' to see what actual information you're getting from Amazon and how little my standard script is actually showing of it
+
+ $Aassociates_id=array(
+ 'uk' => 'bookwhack-21',
+ 'us' => 'your02b-20',
+ 'ca' => 'book009-20',
+ 'de' => 'book04c-21',
+ 'fr' => 'book07f-21',
+ );
- $Adefault=array(
- 'language' =>'en', //what language to render the page in
- 'locale' =>'us', //which server's products? available: ca,de,fr,jp,uk,us
- 'page' =>1, //first page to show (we are counting from 1 not 0)
- 'operation' =>'ItemLookup', //what to do? //ItemSearch
- 'searchparameter' =>'ItemId', //what kind of search?
- 'searchindex' => 'Books',
- 'searchparameterdata'=>$isbn, //what to search for?
- 'search' =>$isbn,
- //here some debugging flags you can put at the end of the URL to call this script with, like: '?show_array=true'
- 'show_array' =>false, //debug: show complete incoming array? You can use this to see what other information Amazon is sending
- 'show_url' =>false, //debug: show XML request url to be send to Amazon?
- 'show_xml' =>false, //debug: show incoming XML code from Amazon?
- );
- //change the debug options to true if you want to activate them or call the script with '?show_array=true' to see what actual information you're getting from Amazon and how little my standard script is actually showing of it
+ $Aserver=array(
+ 'ca' => array(
+ 'ext' => 'ca' , //Canadian normal server
+ 'nor' => 'http://www.amazon.ca' , //Canadian normal server
+ 'xml' => 'http://xml.amazon.com' , //Canadian xml server
+ ),
+ 'de' => array(
+ 'ext' => 'de' , //German normal server
+ 'nor' => 'http://www.amazon.de' , //German normal server
+ 'xml' => 'http://xml-eu.amazon.com', //German xml server
+ ),
+ 'fr' => array(
+ 'ext' => 'fr' , //French normal server
+ 'nor' => 'http://www.amazon.fr' , //French normal server
+ 'xml' => 'http://xml-eu.amazon.com', //French xml server
+ ),
+ 'jp' => array(
+ 'ext' => 'jp' , //Japanese normal server, not co.jp!
+ 'nor' => 'http://www.amazon.co.jp' , //Japanese normal server
+ 'xml' => 'http://xml.amazon.com' , //Japanese xml server
+ ),
+ 'uk' => array(
+ 'ext' => 'co.uk' , //UK normal server
+ 'nor' => 'http://www.amazon.co.uk' , //UK normal server
+ 'xml' => 'http://xml-eu.amazon.com', //UK xml server
+ ),
+ 'us' => array(
+ 'ext' => 'com' , //USA normal server
+ 'nor' => 'http://www.amazon.com' , //USA normal server
+ 'xml' => 'http://xml.amazon.com' , //USA xml server
+ ),
+ );
- $Aassociates_id=array(
- 'uk' => 'bookwhack-21',
- 'us' => 'your02b-20',
- 'ca' => 'book009-20',
- 'de' => 'book04c-21',
- 'fr' => 'book07f-21',
- );
+ //for all parameters see if the user has overruled it or use the default
+ foreach ($Adefault as $i=>$d) {
+ $$i=isset($_GET[$i])?$_GET[$i]:$d;
+ }
- $Aserver=array(
- 'ca' => array(
- 'ext' => 'ca' , //Canadian normal server
- 'nor' => 'http://www.amazon.ca' , //Canadian normal server
- 'xml' => 'http://xml.amazon.com' , //Canadian xml server
- ),
- 'de' => array(
- 'ext' => 'de' , //German normal server
- 'nor' => 'http://www.amazon.de' , //German normal server
- 'xml' => 'http://xml-eu.amazon.com', //German xml server
- ),
- 'fr' => array(
- 'ext' => 'fr' , //French normal server
- 'nor' => 'http://www.amazon.fr' , //French normal server
- 'xml' => 'http://xml-eu.amazon.com', //French xml server
- ),
- 'jp' => array(
- 'ext' => 'jp' , //Japanese normal server, not co.jp!
- 'nor' => 'http://www.amazon.co.jp' , //Japanese normal server
- 'xml' => 'http://xml.amazon.com' , //Japanese xml server
- ),
- 'uk' => array(
- 'ext' => 'co.uk' , //UK normal server
- 'nor' => 'http://www.amazon.co.uk' , //UK normal server
- 'xml' => 'http://xml-eu.amazon.com', //UK xml server
- ),
- 'us' => array(
- 'ext' => 'com' , //USA normal server
- 'nor' => 'http://www.amazon.com' , //USA normal server
- 'xml' => 'http://xml.amazon.com' , //USA xml server
- ),
- );
- $public_key ="AKIAIHTNWC7L6LOUY4LQ";
- $private_key="zWQlIzndJDtXNfxEXH7K7YR7hzv3u77lOcqfqPde";
+ $parameters=array(
+ 'Operation' =>$operation ,
+ 'Keywords' =>urlencode($search) ,
+ "$searchparameter"=>$searchparameterdata ,
+ 'ItemPage' =>$page , //which page?
+ 'AssociateTag' =>$Aassociates_id[$locale],
+ 'ResponseGroup' =>'ItemAttributes,Images,SalesRank,BrowseNodes'
+ );
- //for all parameters see if the user has overruled it or use the default
- foreach ($Adefault as $i=>$d) {
- $$i=isset($_GET[$i])?$_GET[$i]:$d;
- }
+ if ($searchindex!='Books') {
+ $parameters['SearchIndex']=$searchindex;
+ }
- $parameters=array(
- 'Operation' =>$operation ,
- 'Keywords' =>urlencode($search) ,
- "$searchparameter"=>$searchparameterdata ,
- 'ItemPage' =>$page , //which page?
- 'AssociateTag' =>$Aassociates_id[$locale],
- 'ResponseGroup' =>'ItemAttributes,Images,SalesRank,BrowseNodes'
- );
-
- if ($searchindex!='Books') {
- // HST did this
- // Used to be in $parameters init above, but
- // that caused an error:
- // If idType equals ASIN, SearchIndex cannot be present
- //'SearchIndex' =>$searchindex , //Books for example.
- $parameters['SearchIndex']=$searchindex;
- }
-
-
- $ext=$Aserver[$locale]['ext'];
- $file_data=$ext;
- ksort($parameters);
- foreach ($parameters as $i=>$d) {
- $file_data.='&'.$i.'='.$d;
- }
-
- $url=aws_signed_request($ext,$parameters,$public_key,$private_key);
- //echo $url;
-
- $crl = curl_init();
- $timeout = 5;
- curl_setopt ($crl, CURLOPT_URL,$url);
- curl_setopt ($crl, CURLOPT_ENCODING , "gzip");
- curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
- $out = curl_exec($crl);
- curl_close($crl);
-
- //echo $out;
+ try {
+ $xml=doAmazonRequest($Aserver[$locale]['ext'],$parameters,6,'d');
+ //use this xml to pull out the necessary information and save it
+ set_error_handler(function () {
+ global $out,$isbn;
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "Caught one bd: ".$isbn,
+ FILE_APPEND);
+ file_put_contents('/var/ywww/debug/phpDebug',
+ print_r($out, TRUE)."\n",
+ FILE_APPEND);
+ } );
+ include "../../../private/db.php";
+
+ $title="";
+ $author="";
+ $binding="";
+ $dewey="";
+ $imageURL="";
+ $salesRank="";
+ $pubDate="";
+ $publisher="";
+
+ $title = $xml->Items->Item->ItemAttributes->Title;
+ $author = $xml->Items->Item->ItemAttributes->Author;
+ $binding = $xml->Items->Item->ItemAttributes->Binding;
+ $dewey = $xml->Items->Item->ItemAttributes->DeweyDecimalNumber;
+ if($dewey == "")
+ $dewey = "null";
+ $imageURL = $xml->Items->Item->MediumImage->URL;
+ $salesRank = $xml->Items->Item->SalesRank;
+ $pubDate = $xml->Items->Item->ItemAttributes->PublicationDate;
+ $publisher = $xml->Items->Item->ItemAttributes->Publisher;
+ restore_error_handler();
+ if ($publisher and strlen($publisher)>30) {
+ $publisher=substr($publisher,0,30);
+ }
+ if ($author and strlen($author)>30) {
+ $author=substr($author,0,30);
+ }
+ if ($title and strlen($title)>100) {
+ $title=substr($title,0,100);
+ }
+ $publisher=mysqli_real_escape_string($link,$publisher);
+ $author=mysqli_real_escape_string($link,$author);
+ $title=mysqli_real_escape_string($link,$title);
+ if (strlen($pubDate)==4) { $pubDate=$pubDate."-01-01";}
+ if (strlen($pubDate)==7) { $pubDate=$pubDate."-01";}
+ if (strlen($pubDate)==0) {
+ $pubDate="null";
+ }
+ else {
+ $pubDate="\"$pubDate\"";
+ }
+ /*echo $title;
+ echo $author;
+ echo $binding;
+ echo $dewey;
+ echo $imageURL;
+ echo $salesRank;
+ echo $pubDate;
+ echo $publisher;*/
- if (preg_match("",$out)) {
- $xml = new SimpleXMLElement($out);
- $resName=$xml->getName();
- $code=$xml->Error->Code;
- file_put_contents('/var/ywww/debug/phpDebug',"Losing gBD: $resName, $code\n",FILE_APPEND);
- if ($code=='RequestThrottled') {
- usleep(200000); // Try to reduce throttling until we get a
- // principled solution in place
- }
- else {
- file_put_contents('/var/ywww/debug/phpDebug',"parms bd: ".
- print_r($parameters,TRUE)."\n",FILE_APPEND);
- if ($code=="") {
- file_put_contents('/var/ywww/debug/phpDebug',"error elt:\n$out\n",FILE_APPEND);
- }
- }
- }
- else {
- $xml = new SimpleXMLElement($out);
- //use this xml to pull out the necessary information and save it
- set_error_handler(function () {
- global $out,$isbn;
- file_put_contents('/var/ywww/debug/phpDebug',
- "Caught one bd: ".$isbn,
- FILE_APPEND);
- file_put_contents('/var/ywww/debug/phpDebug',
- print_r($out, TRUE)."\n",
- FILE_APPEND);
- } );
-
- $title="";
- $author="";
- $binding="";
- $dewey="";
- $imageURL="";
- $salesRank="";
- $pubDate="";
- $publisher="";
-
- $title = $xml->Items->Item->ItemAttributes->Title;
- $author = $xml->Items->Item->ItemAttributes->Author;
- $binding = $xml->Items->Item->ItemAttributes->Binding;
- $dewey = $xml->Items->Item->ItemAttributes->DeweyDecimalNumber;
- if($dewey == "")
- $dewey = "null";
- $imageURL = $xml->Items->Item->MediumImage->URL;
- $salesRank = $xml->Items->Item->SalesRank;
- $pubDate = $xml->Items->Item->ItemAttributes->PublicationDate;
- $publisher = $xml->Items->Item->ItemAttributes->Publisher;
- restore_error_handler();
- /*echo $title;
- echo $author;
- echo $binding;
- echo $dewey;
- echo $imageURL;
- echo $salesRank;
- echo $pubDate;
- echo $publisher;*/
-
+ $genreID = "";
+ $genre = "";
+ $genArr = array();
+ $g1 = "null";
+ $g2 = "null";
+ $g3 = "null";
+ if(isset($xml->Items->Item->BrowseNodes->BrowseNode)){
+ for($i=0;$iItems->Item->BrowseNodes->BrowseNode);$i++){
+ //sexy recursive function
+ findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre);
+
+ if($genre != "")
+ $genArr[strval($genreID)] = strval($genre);
+ //$genArr[$i] = array(strval($genreID) => strval($genre));
+
+ //echo $genre;
+ //echo $genreID;
+
+ $genre = "";
$genreID = "";
- $genre = "";
- $genArr = array();
- $g1 = "null";
- $g2 = "null";
- $g3 = "null";
- if(isset($xml->Items->Item->BrowseNodes->BrowseNode)){
- for($i=0;$iItems->Item->BrowseNodes->BrowseNode);$i++){
- //sexy recursive function
- findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre);
-
- if($genre != "")
- $genArr[strval($genreID)] = strval($genre);
- //$genArr[$i] = array(strval($genreID) => strval($genre));
-
- //echo $genre;
- //echo $genreID;
-
- $genre = "";
- $genreID = "";
- }
+ }
- $g1 = "null";
- $g2 = "null";
- $g3 = "null";
- $loop = 1;
+ $g1 = "null";
+ $g2 = "null";
+ $g3 = "null";
+ $loop = 1;
- foreach ($genArr as $key => $value) {
- //echo "$key => $value";
- $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table
- //echo $queryG;
- $resG = mysqli_query($link, $queryG);
+ foreach ($genArr as $key => $value) {
+ //echo "$key => $value";
+ if ($key>2047) {
+ //HST added
+ break;
+ }
+ $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table
+ //echo $queryG;
+ $resG = mysqli_query($link, $queryG);
+
+ switch ($loop) {
+ case 1:
+ $g1 = $key;
+ break;
+ case 2:
+ $g2 = $key;
+ break;
+ case 3:
+ $g3 = $key;
+ break;
+ }
- switch ($loop) {
- case 1:
- $g1 = $key;
- break;
- case 2:
- $g2 = $key;
- break;
- case 3:
- $g3 = $key;
- break;
- }
-
- $loop++;
- }
- }
+ $loop++;
+ }
+ }
+
+ if($salesRank == "")
+ $salesRank = "null";
+
+ mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
+ include "../../../private/db.php";
- if($salesRank == "")
- $salesRank = "null";
-
- mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
- include "../../../private/db.php";
+ $title = strtr($title, '"', "'");
+ $queryInsert = "CALL b_addNewBook(\"$isbn\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,$pubDate,\"$publisher\",$g1,$g2,$g3,$loc)";
+ //echo $queryInsert;
- $title = strtr($title, '"', "'");
- $queryInsert = "CALL b_addNewBook(\"$isbn\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,\"$pubDate\",\"$publisher\",$g1,$g2,$g3,$loc)";
- //echo $queryInsert;
-
- $resG = mysqli_query($link, $queryInsert) or exit( mysqli_error( $link ));
- mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
+ $res = mysqli_query($link, $queryInsert);
+ if (!$res) {
+ $err=mysqli_error( $link );
+ mysqli_close($link);
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "anb failed: $err, $pubDate, $g2, $publisher, $title\n",
+ FILE_APPEND);
+ exit($err);
+ }
+ mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop
- $output .= "" . htmlspecialchars($isbn) . "";
- $output .= "" . htmlspecialchars($title) . "";
- $output .= "" . htmlspecialchars($author) . "";
- $output .= "" . htmlspecialchars($binding) . "";
- $output .= "" . htmlspecialchars($dewey) . "";
- $output .= "" . htmlspecialchars($imageURL) . "";
- $output .= "" . htmlspecialchars($salesRank) . "";
- $output .= "" . htmlspecialchars($pubDate) . "";
- $output .= "" . htmlspecialchars($publisher) . "";
- $output .= "" . htmlspecialchars($g1) . "";
- $output .= "" . htmlspecialchars($g2) . "";
- $output .= "" . htmlspecialchars($g3) . "";
- $output .= "Book";
- }
- }
-
+ $output .= "" . htmlspecialchars($isbn) . "";
+ $output .= "" . htmlspecialchars($title) . "";
+ $output .= "" . htmlspecialchars($author) . "";
+ $output .= "" . htmlspecialchars($binding) . "";
+ $output .= "" . htmlspecialchars($dewey) . "";
+ $output .= "" . htmlspecialchars($imageURL) . "";
+ $output .= "" . htmlspecialchars($salesRank) . "";
+ $output .= "" . htmlspecialchars($pubDate) . "";
+ $output .= "" . htmlspecialchars($publisher) . "";
+ $output .= "" . htmlspecialchars($g1) . "";
+ $output .= "" . htmlspecialchars($g2) . "";
+ $output .= "" . htmlspecialchars($g3) . "";
+ $output .= "Book";
+ }
+ catch (Exception $e) {
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "gBD: dAR failed:".$e->getMessage()."\n",
+ FILE_APPEND);
+ }
+ }
$output .= "";
echo $output;
diff -r 0578c6e438d3 -r 3f400072bf14 php/read/similar.php
--- a/php/read/similar.php Sun Jul 30 05:36:48 2017 -0400
+++ b/php/read/similar.php Sat Jan 05 06:21:12 2019 -0500
@@ -106,8 +106,26 @@
curl_setopt ($crl, CURLOPT_URL,$url);
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
+ $gotit=0;
+ $semaphore = new SyncSemaphore("Amazon");
+ $gotit = $semaphore->lock(1000);
+ if (!$gotit) {
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "Got it: ".(int)$gotit." 4\n",FILE_APPEND);
+ $gotit = $semaphore->lock(1000);
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "Got it: ".(int)$gotit." 4a\n",FILE_APPEND);
+ }
$ret = curl_exec($crl);
curl_close($crl);
+ usleep(500000);
+ if ($gotit) {
+ $semaphore->unlock();
+ }
+ else {
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "Unlocking 4\n",FILE_APPEND);
+ }
//echo $ret;
$xml = new SimpleXMLElement($ret);
diff -r 0578c6e438d3 -r 3f400072bf14 php/read/updateLink.php
--- a/php/read/updateLink.php Sun Jul 30 05:36:48 2017 -0400
+++ b/php/read/updateLink.php Sat Jan 05 06:21:12 2019 -0500
@@ -6,7 +6,10 @@
echo $change;
$dir = strval($_GET['dir']);
echo $dir;
-$userID = strval($_GET['userID']);
+$userID="";
+if (isset($_GET['userID'])) {
+ $userID = strval($_GET['userID']);
+ }
echo $userID;
include "../../../private/db.php";
diff -r 0578c6e438d3 -r 3f400072bf14 uk/index.php
--- a/uk/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/uk/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -127,21 +127,45 @@
include "../../private/db.php";
$query = "CALL b_getBookInfo('$isbn', $countryCode)";
//echo $query;
- $res = mysqli_query($link, $query) or exit( mysqli_error( $link ));
+ $res = mysqli_query($link, $query);
+ if (!$res) {
+ $err=mysqli_error( $link );
+ mysqli_close($link);
+ exit($err);
+ }
include "../xml/aws_signed_request.php";
include "../xml/getAmazonInfo.php";
if ( mysqli_num_rows( $res ) > 0 )
{
$rows=mysqli_fetch_array($res, MYSQLI_ASSOC);
+ mysqli_close($link);
$title = $rows["Title"];
$author = $rows["Author"];
}
else
{
+ mysqli_close($link);
$bookDetails = getAmazonDet($isbn,1,'uk');
$bookXML = new SimpleXMLElement($bookDetails);
- $title = $bookXML->Items->Item[0]->ItemAttributes->Title;
- $author = $bookXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookXML->Items && $bookXML->Items->Item[0] &&
+ $bookXML->Items->Item[0]->ItemAttributes)
+ { $attrs=$bookXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $title = $attrs->Title; }
+ else {
+ $title ="[no Title]";
+ }
+ if ($attrs->Author) {
+ $author = $attrs->Author;
+ }
+ else {
+ $author ="[no Author]";
+ }
+ }
+ else {
+ $title ="[no Title]";
+ $author = "[no Author]";
+ }
}
$linkedBooks = include "../php/read/getLinkedBooks.php";
@@ -158,16 +182,30 @@
if ( mysqli_num_rows( $res ) > 0 )
{
$rows=mysqli_fetch_array($res, MYSQLI_ASSOC);
+ mysqli_close($link);
$titleL = $rows["Title"];
$authorL = $rows["Author"];
- mysqli_close($link);
}
else
{
+ mysqli_close($link);
$bookLDetails = getAmazonDet($linkedISBN,1,'uk');
$bookLXML = new SimpleXMLElement($bookLDetails);
- $titleL = $bookLXML->Items->Item[0]->ItemAttributes->Title;
- $authorL = $bookLXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookLXML->Items &&
+ $bookLXML->Items->Item[0] &&
+ $bookLXML->Items->Item[0]->ItemAttributes) {
+ $attrs=$bookLXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $titleL = $attrs->Title; }
+ else {
+ $titleL = ""; }
+ if ($attrs->Author) {
+ $authorL = $attrs->Author; }
+ else {
+ $authorL = ""; }
+ }
+ else {
+ $titleL = ""; }
}
if($titleL != "")
{
diff -r 0578c6e438d3 -r 3f400072bf14 us/index.php
--- a/us/index.php Sun Jul 30 05:36:48 2017 -0400
+++ b/us/index.php Sat Jan 05 06:21:12 2019 -0500
@@ -133,15 +133,17 @@
if ( mysqli_num_rows( $res ) > 0 )
{
$rows=mysqli_fetch_array($res, MYSQLI_ASSOC);
+ mysqli_close($link);
$title = $rows["Title"];
$author = $rows["Author"];
}
else
{
+ mysqli_close($link);
$bookDetails = getAmazonDet($isbn,1,'us');
$bookXML = new SimpleXMLElement($bookDetails);
// HST added this
- if (preg_match("",$bookDetails)) {
+ if (preg_match("//",$bookDetails)) {
$resName=$bookXML->getName();
$code=$bookXML->Error->Code;
file_put_contents('/var/ywww/debug/phpDebug',"Losing 3: $resName, ".
@@ -151,16 +153,41 @@
// principled solution in place
}
$title = "";
+ $author = "";
}
else {
- $title = $bookXML->Items->Item[0]->ItemAttributes->Title;
- $author = $bookXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookXML->Items && $bookXML->Items->Item[0] &&
+ $bookXML->Items->Item[0]->ItemAttributes)
+ { $attrs=$bookXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $title = $attrs->Title; }
+ else {
+ $title ="[no Title]";
+ }
+ if ($attrs->Author) {
+ $author = $attrs->Author;
+ }
+ else {
+ $author ="[no Author]";
+ }
+ }
+ else {
+ $title ="[no Title]";
+ $author = "[no Author]";
+ }
}
}
- $linkedBooks = include "../php/read/getLinkedBooks.php";
+ $linkedBooks = include "../php/read/getLinkedBooks.php";
+ try {
$xml = new SimpleXMLElement($linkedBooks);
-
+ }
+ catch (Exception $e) {
+ file_put_contents('/var/ywww/debug/phpDebug',
+ "Bad XML?: ".$linkedBooks,
+ FILE_APPEND);
+ throw $e;
+ }
$recommended = "";
$linkedRecommended = "";
for($i=0;$iisbn);$i++){
@@ -181,16 +208,17 @@
if ( mysqli_num_rows( $res ) > 0 )
{
$rows=mysqli_fetch_array($res, MYSQLI_ASSOC);
+ mysqli_close($link);
$titleL = $rows["Title"];
$authorL = $rows["Author"];
- mysqli_close($link);
}
else
{
+ mysqli_close($link);
$bookLDetails = getAmazonDet($linkedISBN,1,'us');
$bookLXML = new SimpleXMLElement($bookLDetails);
// HST added this
- if (preg_match("",$bookLDetails)) {
+ if (preg_match("//",$bookLDetails)) {
$resName=$bookLXML->getName();
$code=$bookLXML->Error->Code;
file_put_contents('/var/ywww/debug/phpDebug',"Losing 2: $resName, ".
@@ -202,8 +230,21 @@
$titleL = "";
}
else {
- $titleL = $bookLXML->Items->Item[0]->ItemAttributes->Title;
- $authorL = $bookLXML->Items->Item[0]->ItemAttributes->Author;
+ if ($bookLXML->Items &&
+ $bookLXML->Items->Item[0] &&
+ $bookLXML->Items->Item[0]->ItemAttributes) {
+ $attrs=$bookLXML->Items->Item[0]->ItemAttributes;
+ if ($attrs->Title) {
+ $titleL = $attrs->Title; }
+ else {
+ $titleL = ""; }
+ if ($attrs->Author) {
+ $authorL = $attrs->Author; }
+ else {
+ $authorL = ""; }
+ }
+ else {
+ $titleL = ""; }
}
}
restore_error_handler();
@@ -327,5 +368,6 @@
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
} catch(err) {}
-
+
+