auth("read"); $userData = $api->auth_checkToken($_SESSION['phpFlickr_auth_token']); if ($api->getErrorMsg() !== false) { die("Error: ".$api->getErrorMsg()); } //Don't need user details, but it's fun to have anyway $userNSID = $userData['user']['nsid']; $userName = $userData['user']['username']; $userFullName = $userData['user']['fullname']; $userToken = $userData['token']; //Find the total number of pages we'll need to request $userInfo = $api->people_getInfo($userNSID); if ($api->getErrorMsg() !== false) { die("Error: ".$api->getErrorMsg()); } $userPhotoCount = $userInfo['photos']['count']; $pages = ceil($userPhotoCount / $max_per_page); //Get this db started if (!$connection = @ mysql_connect($mysql_server, $mysql_user, $mysql_pass)) die("Can't connect to the database!"); if (!mysql_select_db($mysql_db, $connection)) die("Error " . mysql_errno() . " : " . mysql_error()); //Set a loop for the total number of pages for ( $page = 1; $page <= $pages; $page += 1) { $photos = $api->photos_search(array("user_id"=>$userNSID, "per_page"=>$max_per_page, "page"=>$page, "sort"=>"date-posted-asc", "extras"=>"date_upload,date_taken,geo")); if ($api->getErrorMsg() !== false) { print "Error: ".$api->getErrorMsg()."

"; next; } if (isset($photos['photo'])) { foreach ($photos['photo'] as $photo) { $photoID = 0; $msg = ""; $photoFlickrID = $photo['id']; $photoServer = $photo['server']; $photoSecret = $photo['secret']; $photoTitle = $photo['title']; $photoTitle_f = $photoTitle; $photoTitle_f = preg_replace('/\s+/', '-', $photoTitle_f); $photoTitle_f = preg_replace('/[^-\w]/', '', $photoTitle_f); $photoDateTaken = $photo['datetaken']; $photoDateAdded = $photo['dateupload']; $photoDateAdded_f = date("Y-m-d H:i:s",$photoDateAdded); $photoLatitude = $photo['latitude']; $photoLongitude = $photo['longitude']; $isPublic = $photo['ispublic']; $photoDescription = ""; $photoURL = "http://static.flickr.com/{$photoServer}/{$photoFlickrID}_{$photoSecret}_o.jpg"; //Insert this photo into the db, grab the photoID $selquery = "SELECT PhotoID FROM photos WHERE FlickrID = '{$photoFlickrID}'"; if (!$photoexists = @ mysql_query ($selquery, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); if (mysql_num_rows($photoexists) == 0) { $photoTitle = mysql_real_escape_string($photoTitle, $connection); $insquery = "INSERT INTO Photos SET FlickrID = '$photoFlickrID', Title = '$photoTitle', DateCreated = '$photoDateAdded_f', DateTaken = '$photoDateTaken', Latitude = $photoLatitude, Longitude = $photoLongitude, Public = $isPublic"; if (!$add = @ mysql_query ($insquery, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); $selmax = "SELECT MAX(PhotoID) AS MaxID FROM photos"; if (!$result = @ mysql_query ($selmax, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); while($newID = mysql_fetch_row($result)) { $photoID = $newID[0]; } $msg .= "Added photo $photoTitle to the db. "; } else { while($oldID = mysql_fetch_row($photoexists)) { $photoID = $oldID[0]; //ignore this one for now } next; } if ($photoID == 0) { print "Error. PhotoID wasn't found."; next; } //Save the file to disk $photoMonth = date("m",$photoDateAdded); $photoYear = date("Y",$photoDateAdded); $photoYearDir = $photodir . $photoYear; $photoMonthDir = $photoYearDir . "\\" . $photoMonth . "\\"; if (!is_dir($photoYearDir)) { mkdir($photoYearDir, 0777, TRUE); } if (!is_dir($photoFileDir)) { mkdir($photoMonthDir, 0777, TRUE); } if ($photoTitle_f == "") { $photoTitle_f = $photoID; } $photoFile = $photoMonthDir . $photoTitle_f . ".jpg"; if(!file_exists($photoFile)) { file_put_contents($photoFile, file_get_contents($photoURL)); $msg .= "Saved file $photoFile to disk. "; } //Capture the caption $photoinfo = $api->photos_getInfo($photoFlickrID); if ($api->getErrorMsg() !== false) { print "Error: ".$api->getErrorMsg()."

"; next; } $photoDescription = $photoinfo['description']; //Save file location and caption to db $photoDescription_f = mysql_real_escape_string($photoDescription, $connection); $photoFile_f = mysql_real_escape_string($photoFile, $connection); $upquery = "UPDATE photos SET Description = '$photoDescription_f', File = '$photoFile_f' WHERE PhotoID = $photoID"; if (!$update = @ mysql_query ($upquery, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); //Save the tags if (isset($photoinfo['tags'])) { foreach ($photoinfo['tags']['tag'] as $tag) { $thisTag = $tag['_content']; $isMachineTag = $tag['machine_tag']; $selquery = "SELECT TagID FROM tags WHERE PhotoID = $photoID AND Tag = '$thisTag'"; if (!$tagexists = @ mysql_query ($selquery, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); if (mysql_num_rows($tagexists) == 0) { $insquery = "INSERT INTO tags SET PhotoID = $photoID, Tag = '$thisTag', MachineTag = $isMachineTag"; if (!$add = @ mysql_query ($insquery, $connection)) print "Error " . mysql_errno() . " : " . mysql_error(); } } } print $msg."
"; //print out what just happened with this photo flush(); ob_flush(); //flush output buffer, doesn't work on Windows :( sleep(1); //take a breather } } } ?>