From 775673cf18c5501e86cdad9735000652ef429f1f Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Thu, 8 May 2014 20:50:18 +0200 Subject: [PATCH] Added loggint to Photo --- php/modules/Photo.php | 107 ++++++++++++++++++++++++++++++++---------- 1 file changed, 81 insertions(+), 26 deletions(-) diff --git a/php/modules/Photo.php b/php/modules/Photo.php index 064235b..dda485b 100755 --- a/php/modules/Photo.php +++ b/php/modules/Photo.php @@ -89,10 +89,15 @@ class Photo extends Module { # Import if not uploaded via web if (!is_uploaded_file($tmp_name)) { - if (!@copy($tmp_name, $path)) exit('Error: Could not copy photo to uploads!'); - else @unlink($tmp_name); + if (!@copy($tmp_name, $path)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not copy photo to uploads'); + exit('Error: Could not copy photo to uploads!'); + } else @unlink($tmp_name); } else { - if (!@move_uploaded_file($tmp_name, $path)) exit('Error: Could not move photo to uploads!'); + if (!@move_uploaded_file($tmp_name, $path)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not move photo to uploads'); + exit('Error: Could not move photo to uploads!'); + } } # Read infos @@ -106,14 +111,20 @@ class Photo extends Module { # Set orientation based on EXIF data if ($file['type']==='image/jpeg'&&isset($info['orientation'])&&$info['orientation']!==''&&isset($info['width'])&&isset($info['height'])) { - if (!$this->adjustFile($path, $info)) exit('Error: Could not adjust photo!'); + if (!$this->adjustFile($path, $info)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not adjust photo'); + exit('Error: Could not adjust photo!'); + } } # Set original date if ($info['takestamp']!=='') @touch($path, $info['takestamp']); # Create Thumb - if (!$this->createThumb($path, $photo_name)) exit('Error: Could not create thumbnail for photo!'); + if (!$this->createThumb($path, $photo_name)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not create thumbnail for photo'); + exit('Error: Could not create thumbnail for photo!'); + } # Save to DB $query = "INSERT INTO lychee_photos (id, title, url, description, tags, type, width, height, size, iso, aperture, make, model, shutter, focal, takestamp, thumbUrl, album, public, star) @@ -140,7 +151,10 @@ class Photo extends Module { '" . $star . "');"; $result = $this->database->query($query); - if (!$result) exit('Error: Could not save photo in database!'); + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + exit('Error: Could not save photo in database!'); + } } @@ -154,7 +168,7 @@ class Photo extends Module { private function createThumb($url, $filename, $width = 200, $height = 200) { # Check dependencies - $this->dependencies(isset($this->settings, $url, $filename)); + $this->dependencies(isset($this->database, $this->settings, $url, $filename)); # Call plugins $this->plugins(__METHOD__, 0, func_get_args()); @@ -203,16 +217,14 @@ class Photo extends Module { $startHeight = 0; } - # Fallback for older version - if ($info['mime']==='image/webp'&&floatval(phpversion())<5.5) return false; - # Create new image switch($info['mime']) { case 'image/jpeg': $sourceImg = imagecreatefromjpeg($url); break; case 'image/png': $sourceImg = imagecreatefrompng($url); break; case 'image/gif': $sourceImg = imagecreatefromgif($url); break; - case 'image/webp': $sourceImg = imagecreatefromwebp($url); break; - default: return false; break; + default: Log::error($this->database, __METHOD__, __LINE__, 'Type of photo is not supported'); + return false; + break; } # Create thumb @@ -500,7 +512,10 @@ class Photo extends Module { # Get extension $extension = $this->getExtension($photo->url); - if ($extension===false) return false; + if ($extension===false) { + Log::error($this->database, __METHOD__, __LINE__, 'Invalid photo extension'); + return false; + } # Parse title if ($photo->title=='') $photo->title = 'Untitled'; @@ -547,7 +562,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$result) return false; + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -570,7 +588,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$result) return false; + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -604,7 +625,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if ($error) return false; + if ($error) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -658,7 +682,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$result) return false; + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -677,7 +704,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$result) return false; + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -693,7 +723,10 @@ class Photo extends Module { # Parse tags $tags = preg_replace('/(\ ,\ )|(\ ,)|(,\ )|(,{1,}\ {0,})|(,$|^,)/', ',', $tags); $tags = preg_replace('/,$|^,|(\ ){0,}$/', '', $tags); - if (strlen($tags)>1000) return false; + if (strlen($tags)>1000) { + Log::error($this->database, __METHOD__, __LINE__, 'Length of tags higher than 1000'); + return false; + } # Set tags $result = $this->database->query("UPDATE lychee_photos SET tags = '$tags' WHERE id IN ($this->photoIDs);"); @@ -701,7 +734,10 @@ class Photo extends Module { # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$result) return false; + if (!$result) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } return true; } @@ -716,6 +752,10 @@ class Photo extends Module { # Get photos $photos = $this->database->query("SELECT id, url, thumbUrl FROM lychee_photos WHERE id IN ($this->photoIDs);"); + if (!$photos) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } # For each photo while ($photo = $photos->fetch_object()) { @@ -724,21 +764,36 @@ class Photo extends Module { $thumbUrl2x = explode(".", $photo->thumbUrl); $thumbUrl2x = $thumbUrl2x[0] . '@2x.' . $thumbUrl2x[1]; - # Delete files - if (file_exists(LYCHEE_UPLOADS_BIG . $photo->url)&&!unlink(LYCHEE_UPLOADS_BIG . $photo->url)) return false; - if (file_exists(LYCHEE_UPLOADS_THUMB . $photo->thumbUrl)&&!unlink(LYCHEE_UPLOADS_THUMB . $photo->thumbUrl)) return false; - if (file_exists(LYCHEE_UPLOADS_THUMB . $thumbUrl2x)&&!unlink(LYCHEE_UPLOADS_THUMB . $thumbUrl2x)) return false; + # Delete big + if (file_exists(LYCHEE_UPLOADS_BIG . $photo->url)&&!unlink(LYCHEE_UPLOADS_BIG . $photo->url)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not delete photo in uploads/big/'); + return false; + } + + # Delete thumb + if (file_exists(LYCHEE_UPLOADS_THUMB . $photo->thumbUrl)&&!unlink(LYCHEE_UPLOADS_THUMB . $photo->thumbUrl)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not delete photo in uploads/thumb/'); + return false; + } + + # Delete thumb@2x + if (file_exists(LYCHEE_UPLOADS_THUMB . $thumbUrl2x)&&!unlink(LYCHEE_UPLOADS_THUMB . $thumbUrl2x)) { + Log::error($this->database, __METHOD__, __LINE__, 'Could not delete high-res photo in uploads/thumb/'); + return false; + } # Delete db entry $delete = $this->database->query("DELETE FROM lychee_photos WHERE id = '$photo->id';"); - if (!$delete) return false; + if (!$delete) { + Log::error($this->database, __METHOD__, __LINE__, $this->database->error); + return false; + } } # Call plugins $this->plugins(__METHOD__, 1, func_get_args()); - if (!$photos) return false; return true; }